note description: "[ Testing suite for the DECIMAL Class covering the +, -, *, and / operation capabilities. ]" author: "Connor Dear, Jonathan Ostroff" date: "June 18 2019" revision: "1.00" class DECIMAL_PRIMARY_OPERATION_TEST inherit ES_TEST create make feature {NONE} -- Initialization make do add_boolean_case (agent t1) add_boolean_case (agent t2) add_boolean_case (agent t3) add_boolean_case (agent t4) add_boolean_case (agent t5) add_boolean_case (agent t6) add_boolean_case (agent t7) add_boolean_case (agent t8) add_boolean_case (agent t9) add_boolean_case (agent t10) add_boolean_case (agent t11) add_boolean_case (agent t12) end feature -- Tests t1: BOOLEAN local d1: DECIMAL d2: DECIMAL answer: DECIMAL do comment ("t1: plus - Positive + _______") create d1.make_from_string ("123.123") create d2.make_from_string ("42.5") answer := d1 + d2 Result := answer.precise_out ~ "165.623" check Result end Result := answer.out ~ "165.62" check Result end create d1.make_from_string ("1285") create d2.make_from_string ("1387") answer := d1 + d2 Result := answer.precise_out ~ "2672" check Result end Result := answer.out ~ "2672.00" check Result end create d1.make_from_string ("99.9") create d2.make_from_string ("2.1") answer := d1 + d2 Result := equal (answer.precise_out, "102") check Result end Result := equal (answer.out, "102.00") check Result end create d1.make_from_string ("100000000000.0000000000001") create d2.make_from_string ("1000.001100110011023") answer := d1 + d2 Result := equal (answer.precise_out, "100000001000.001100110011123") check Result end Result := equal (answer.out, "100000001000.00") check Result end create d1.make_from_string ("198.00") create d2.make_from_string ("2") answer := d1 + d2 Result := equal (answer.precise_out, "200") check Result end Result := equal (answer.out, "200.00") check Result end create d1.make_from_string ("098.1") create d2.make_from_string ("0013.9") answer := d1 + d2 Result := equal (answer.precise_out, "112") check Result end Result := equal (answer.out, "112.00") check Result end create d1.make_from_string ("202") create d2.make_from_string ("-02.0000") answer := d1 + d2 Result := equal (answer.precise_out, "200") check Result end Result := equal (answer.out, "200.00") check Result end end t2: BOOLEAN -- Negative + _______ local d1, d2, answer: DECIMAL do comment ("t2: plus - Negative + _________") create d1.make_from_string ("177.00") create d2.make_from_string ("-000177.0") answer := d1 + d2 Result := equal (answer.precise_out, "0") check Result end Result := equal (answer.out, "0.00") check Result end create d1.make_from_string ("-127.00000000") create d2.make_from_string ("-3") answer := d1 + d2 Result := equal (answer.precise_out, "-130") check Result end Result := equal (answer.out, "-130.00") check Result end end t3: BOOLEAN -- Zero + ________ local d1, d2, answer: DECIMAL do comment ("t3: plus - Zero + _______") create d1.make_from_string ("0") create d2.make_from_string ("5") answer := d1 + d2 Result := equal (answer.precise_out, "5") check Result end Result := equal (answer.out, "5.00") check Result end create d1.make_from_string ("0") create d2.make_from_string ("-5") answer := d1 + d2 Result := equal (answer.precise_out, "-5") check Result end Result := equal (answer.out, "-5.00") check Result end create d1.make_from_string ("-0") create d2.make_from_string ("-0") answer := d1 + d2 Result := equal (answer.precise_out, "0") check Result end Result := equal (answer.out, "0.00") check Result end end t4: BOOLEAN local d1, d2, answer: DECIMAL do comment ("t4: minus - Positive, Negative, and Zero Cases") create d1.make_from_string ("1285") create d2.make_from_string ("1387") answer := d1 - d2 Result := equal (answer.precise_out, "-102") check Result end Result := equal (answer.out, "-102.00") check Result end create d1.make_from_string ("177.00") create d2.make_from_string ("-000177.0") answer := d1 - d2 Result := equal (answer.precise_out, "354") check Result end Result := equal (answer.out, "354.00") check Result end create d1.make_from_string ("177.00") create d2.make_from_string ("0177.00000000") answer := d1 - d2 Result := equal (answer.precise_out, "0") check Result end Result := equal (answer.out, "0.00") check Result end create d1.make_from_string ("99.9") create d2.make_from_string ("2.1") answer := d1 - d2 Result := equal (answer.precise_out, "97.8") check Result end Result := equal (answer.out, "97.80") check Result end create d1.make_from_string ("99.90000000001") create d2.make_from_string ("0000000000000.100000000110000000090000") answer := d1 - d2 Result := equal (answer.precise_out, "99.79999999989999999991") check Result end Result := equal (answer.out, "99.80") check Result end create d1.make_from_string ("12") create d2.make_from_string ("125.456") answer := d1 - d2 Result := equal (answer.precise_out, "-113.456") check Result end Result := equal (answer.out, "-113.46") check Result end end t5: BOOLEAN -- minus Negative - _________ local d1, d2, answer: DECIMAL do comment ("t5: minus - Negative - ________") create d1.make_from_string ("-12") create d2.make_from_string ("125.456") answer := d1 - d2 Result := equal (answer.precise_out, "-137.456") check Result end Result := equal (answer.out, "-137.46") check Result end create d1.make_from_string ("-12") create d2.make_from_string ("-125.456") answer := d1 - d2 Result := equal (answer.precise_out, "113.456") check Result end Result := equal (answer.out, "113.46") check Result end end t6: BOOLEAN -- minus Zero - _______ local d1, d2, answer: DECIMAL do comment ("t6: minus - Zero - _______") create d1.make_from_string ("0") create d2.make_from_string ("125.456") answer := d1 - d2 Result := equal (answer.precise_out, "-125.456") check Result end Result := equal (answer.out, "-125.46") check Result end create d1.make_from_string ("0") create d2.make_from_string ("-125.456") answer := d1 - d2 Result := equal (answer.precise_out, "125.456") check Result end Result := equal (answer.out, "125.46") check Result end create d1.make_from_string ("0") create d2.make_from_string ("0") answer := d1 - d2 Result := equal (answer.precise_out, "0") check Result end Result := equal (answer.out, "0.00") check Result end end t7: BOOLEAN -- multiplication Positive * ______ local d1, d2, answer: DECIMAL do comment ("t7: multipilication - Positive * _________") create d1.make_from_string ("1.2") create d2.make_from_string ("30021.232") answer := d1 * d2 Result := answer.precise_out ~ "36025.4784" check Result end Result := answer.out ~ "36025.48" check Result end create d1.make_from_string ("1.2") create d2.make_from_string ("5") answer := d1 * d2 Result := answer.precise_out ~ "6" check Result end Result := answer.out ~ "6.00" check Result end create d1.make_from_string ("1.2") create d2.make_from_string ("-30021.232") answer := d1 * d2 Result := answer.precise_out ~ "-36025.4784" check Result end Result := answer.out ~ "-36025.48" check Result end create d1.make_from_string ("1.2") create d2.make_from_string ("-5") answer := d1 * d2 Result := answer.precise_out ~ "-6" check Result end Result := answer.out ~ "-6.00" check Result end create d1.make_from_string ("1.2") create d2.make_from_string ("0") answer := d1 * d2 Result := answer.precise_out ~ "0" check Result end Result := answer.out ~ "0.00" check Result end create d1.make_from_string ("23425.234243") create d2.make_from_string ("793847.89223423445") answer := d1 * d2 Result := equal (answer.precise_out, "18596072828.89876261503027135") check Result end Result := equal (answer.out, "18596072828.90") check Result end end t8: BOOLEAN -- multiplication Negative * ______ local d1, d2, answer: DECIMAL do comment ("t8: multipilication - Negative * _________") create d1.make_from_string ("-1.2") create d2.make_from_string ("30021.232") answer := d1 * d2 Result := answer.precise_out ~ "-36025.4784" check Result end Result := answer.out ~ "-36025.48" check Result end create d1.make_from_string ("-1.2") create d2.make_from_string ("5") answer := d1 * d2 Result := answer.precise_out ~ "-6" check Result end Result := answer.out ~ "-6.00" check Result end create d1.make_from_string ("-5") create d2.make_from_string ("1.2") answer := d1 * d2 Result := answer.precise_out ~ "-6" check Result end Result := answer.out ~ "-6.00" check Result end create d1.make_from_string ("-2") create d2.make_from_string ("5") answer := d1 * d2 Result := answer.precise_out ~ "-10" check Result end Result := answer.out ~ "-10.00" check Result end create d1.make_from_string ("-1.2") create d2.make_from_string ("-30021.232") answer := d1 * d2 Result := answer.precise_out ~ "36025.4784" check Result end Result := answer.out ~ "36025.48" check Result end create d1.make_from_string ("-1.2") create d2.make_from_string ("-5") answer := d1 * d2 Result := answer.precise_out ~ "6" check Result end Result := answer.out ~ "6.00" check Result end create d1.make_from_string ("-1.2") create d2.make_from_string ("0") answer := d1 * d2 Result := answer.precise_out ~ "0" check Result end Result := answer.out ~ "0.00" check Result end end t9: BOOLEAN -- multiplication Zero * ______ local d1, d2, answer: DECIMAL do comment ("t9: multipilication - Zero * _________") create d1.make_from_string ("0") create d2.make_from_string ("521.24224") answer := d1 * d2 Result := answer.precise_out ~ "0" check Result end Result := answer.out ~ "0.00" check Result end create d1.make_from_string ("0") create d2.make_from_string ("5") answer := d1 * d2 Result := answer.precise_out ~ "0" check Result end Result := answer.out ~ "0.00" check Result end create d1.make_from_string ("0") create d2.make_from_string ("-5.125") answer := d1 * d2 Result := answer.precise_out ~ "0" check Result end Result := answer.out ~ "0.00" check Result end create d1.make_from_string ("0") create d2.make_from_string ("-5") answer := d1 * d2 Result := answer.precise_out ~ "0" check Result end Result := answer.out ~ "0.00" check Result end end t10: BOOLEAN -- Division - Positive / _______ local d1, d2, answer: DECIMAL do comment ("t10: divide - Positive / ______ (repeating & non-repeating") create d1.make_from_string ("1.000") create d2.make_from_string ("3.0") answer := d1 / d2 Result := answer.precise_out.starts_with ("0.33333333333333333333333333333333333") check Result end Result := equal (answer.out, "0.33") check Result end create d1.make_from_string ("3") create d2.make_from_string ("1.0") answer := d1 / d2 Result := equal (answer.precise_out, "3") check Result end Result := equal (answer.out, "3.00") check Result end create d1.make_from_string ("2") create d2.make_from_string ("-0.6666666667") answer := d1 / d2 Result := answer.precise_out.starts_with ("-2.9999999998500000000074999999996") check Result end Result := equal (answer.out, "-3.00") create d1.make_from_string ("426356") create d2.make_from_string ("-28") answer := d1 / d2 Result := equal (answer.precise_out, "-15227") check Result end Result := equal (answer.out, "-15227.00") create d1.make_from_string ("0.3333333333333333333333333333333333333333333333") create d2.make_from_string ("3.00000000000000000000000") answer := d1 / d2 Result := answer.precise_out.starts_with ("0.11111111111111111111111111111111111") check Result end Result := equal (answer.out, "0.11") check Result end end t11: BOOLEAN -- Division - Negative / ________ local d1, d2, answer: DECIMAL do comment ("t11: divide - Negative / ________") create d1.make_from_string ("-1") create d2.make_from_string ("-0.500000") answer := d1 / d2 Result := equal (answer.precise_out, "2") check Result end Result := equal (answer.out, "2.00") check Result end create d1.make_from_string ("-000810.0000000") create d2.make_from_string ("9.00000000000000000000000000") answer := d1 / d2 Result := equal (answer.precise_out, "-90") check Result end Result := equal (answer.out, "-90.00") create d1.make_from_string ("-1.2345678974534548454548454") create d2.make_from_string ("10") answer := d1 / d2 Result := answer.precise_out.starts_with ("-0.12345678974534548454548454") check Result end Result := equal (answer.out, "-0.12") end t12: BOOLEAN -- Division - Zero / ______ local d1, d2, answer: DECIMAL do comment ("t12: divide - Zero / ________") create d1.make_from_string ("-0") create d2.make_from_string ("1") answer := d1 / d2 Result := equal (answer.precise_out, "0") check Result end Result := equal (answer.out, "0.00") create d1.make_from_string ("0") create d2.make_from_string ("-1") answer := d1 / d2 Result := equal (answer.precise_out, "0") check Result end Result := equal (answer.out, "0.00") end end -- class DECIMAL_PRIMARY_OPERATION_TEST
Generated by ISE EiffelStudio