X-Git-Url: https://git.ucc.asn.au/?p=ipdf%2Fcode.git;a=blobdiff_plain;f=src%2Ftests%2Fparanoidcalculator.cpp;h=c8f75246205c9ec0c4c4e9e54e3bb348279c4c42;hp=9c5a88a3edaa396040188d5131e6ca5121598221;hb=77137590512d969da2d54d9ba53d76836a290c6a;hpb=dfba002efc3b5f126ddb69e63b9a7dafdd9eacda diff --git a/src/tests/paranoidcalculator.cpp b/src/tests/paranoidcalculator.cpp index 9c5a88a..c8f7524 100644 --- a/src/tests/paranoidcalculator.cpp +++ b/src/tests/paranoidcalculator.cpp @@ -17,17 +17,22 @@ int main(int argc, char ** argv) Debug("FLT_MAX = %.40f", FLT_MAX); Debug("FLT_MIN = %.40f", FLT_MIN); Debug("FLT_EPSILON = %.40f", FLT_EPSILON); - - ParanoidNumber a("0.3"); - Debug("start at {%s} = %lf", a.Str().c_str(), a.ToDouble()); - cout << "0.3 "; - float fa = 0.3; - double da = 0.3; + Debug("Sizeof ParanoidNumber::digit_t is %u", sizeof(ParanoidNumber::digit_t)); + Debug("Sizeof ParanoidNumber is %u", sizeof(ParanoidNumber)); + Debug("Sizeof double is %u", sizeof(double)); + Debug("Sizeof ParanoidNumber* %u", sizeof(ParanoidNumber*)); + + string token(""); + cin >> token; + ParanoidNumber a(token.c_str()); + double da = a.ToDouble(); + float fa = da; while (cin.good()) { + Debug("a is {%s} \"%.40lf\"", a.Str().c_str(), a.ToDouble()); char op; cin >> op; - string token(""); + token = ""; for (char c = cin.peek(); cin.good() && !iswspace(c); c = cin.peek()) { if (c == '+' || c == '-' || c == '*' || c == '/') @@ -37,11 +42,14 @@ int main(int argc, char ** argv) token += c; c = cin.get(); } - Debug("String is %s", token.c_str()); + + //Debug("String is \"%s\"", token.c_str()); float fb = strtof(token.c_str(), NULL); double db = strtod(token.c_str(), NULL); ParanoidNumber b(token.c_str()); - Debug("b is {%s} %lf", b.Str().c_str(), b.ToDouble()); + + Debug("b is {%s} \"%lf\"", b.Str().c_str(), b.ToDouble()); + Debug("db is %lf", db); switch (op) { case '+': @@ -66,10 +74,12 @@ int main(int argc, char ** argv) break; } - Debug("a is: %s", a.Str().c_str()); - Debug("a as double: %.40f\n", a.ToDouble()); - Debug("floats give: %.40f\n", fa); - Debug("double gives: %.40f\n", da); + Debug("a is: {%s}", a.Str().c_str()); + Debug("a as double: %.40lf", a.ToDouble()); + //Debug("a as float: %.40f", a.ToFloat()); + //Debug("a as int64_t: %ld", a.Convert()); + //Debug("floats give: %.40f", fa); + Debug("double gives: %.40lf", da); }