%description: Tests the BigDecimal operator+. %includes: #include #include %global: using namespace omnetpp::common; static void add(const char *x, const char *y) { EV << x << "," << y; EV << ": "; try { BigDecimal xx = BigDecimal::parse(x); BigDecimal yy = BigDecimal::parse(y); EV << xx + yy << "\n"; } catch (std::exception& e) { EV << "ERROR: " << e.what() << "\n"; } } %activity: #define T(x,y) add(#x, #y); EV << "\n"; T(0,0); T(0,0.000000000000000001); T(0.000000000000000001, 0.000000000000000001) T(-0.000000000000000001,0); T(-123456789012345678,0); T(123456789012345678,123456789012345678) T(-123456789012345678,-123456789012345678) T(0,123456789012345678); T(0.123456789012345678, 0.123456789012345678); T(0.99999999999999999, 1); T(0.999999999999999999, 1); T(0.99999999999999999, 123456789012345678); T(-1, -0.999999999999999999); T(90.210190538889,785.4248266628098885) T(+Inf,1234567890123456789); T(-Inf,-1234567890123456789); T(-Inf,-Inf); T(+Inf,+Inf); T(-Inf,+Inf) // NaN T(NaN,0); T(0,NaN); T(NaN,NaN); EV << ".\n"; %contains: stdout 0,0: 0 0,0.000000000000000001: 0.000000000000000001 0.000000000000000001,0.000000000000000001: 0.000000000000000002 -0.000000000000000001,0: -0.000000000000000001 -123456789012345678,0: -123456789012345678 123456789012345678,123456789012345678: 246913578024691356 -123456789012345678,-123456789012345678: -246913578024691356 0,123456789012345678: 123456789012345678 0.123456789012345678,0.123456789012345678: 0.246913578024691356 0.99999999999999999,1: 1.99999999999999999 0.999999999999999999,1: 1.999999999999999999 0.99999999999999999,123456789012345678: 123456789012345664 -1,-0.999999999999999999: -1.999999999999999999 90.210190538889,785.4248266628098885: 875.6350172016988885 +Inf,1234567890123456789: +Inf -Inf,-1234567890123456789: -Inf -Inf,-Inf: -Inf +Inf,+Inf: +Inf -Inf,+Inf: NaN NaN,0: NaN 0,NaN: NaN NaN,NaN: NaN .