note description: "[ Testing suite for the RATIONAL Class covering the +, -, *, and // operation capabilities. ]" author: "Connor Dear, Jonathan Ostroff" date: "June 10 2019" revision: "1.00" class RATIONAL_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) end feature -- Tests -- Addition Segment (1 - 2) t1: BOOLEAN local r1, r2, r3, r4: RATIONAL do comment ("t1: Addition - Positive and Negative Cases") r1 := create {attached RATIONAL}.make_from_string ("10/2") r2 := create {attached RATIONAL}.make_from_string ("22/2") r3 := create {attached RATIONAL}.make_from_string ("-3/4") r4 := create {attached RATIONAL}.make_from_string ("1/-2") Result := r1 + r2 ~ create {RATIONAL}.make_from_string ("32/2") check Result end Result := r1 + r3 ~ create {RATIONAL}.make_from_string ("17/4") check Result end Result := r3 + r2 ~ create {RATIONAL}.make_from_string ("41/4") check Result end Result := r3 + r4 ~ create {RATIONAL}.make_from_string ("-5/4") end t2: BOOLEAN local r1, r2, zero: RATIONAL do comment ("t2: Addition - Zero Cases") r1 := create {attached RATIONAL}.make_from_string ("1/5") r2 := create {attached RATIONAL}.make_from_string ("-4/5") zero := create {attached RATIONAL}.make_from_string ("0/1") Result := r1 + zero ~ r1 check Result end Result := r2 + zero ~ r2 check Result end Result := create {RATIONAL}.make_from_string ("0") + zero ~ create {RATIONAL}.make_from_string ("0") end t3: BOOLEAN local r1, r2, r3, r4: RATIONAL do comment ("t3: Subtraction - Positive and Negative Cases") r1 := create {attached RATIONAL}.make_from_string ("1/2") r2 := create {attached RATIONAL}.make_from_string ("3/4") r3 := create {attached RATIONAL}.make_from_string ("-1/3") r4 := create {attached RATIONAL}.make_from_string ("2/-3") Result := r1 - r2 ~ create {RATIONAL}.make_from_string ("-1/4") check Result end Result := r1 - r3 ~ create {RATIONAL}.make_from_string ("5/6") check Result end Result := r3 - r2 ~ create {RATIONAL}.make_from_string ("-13/12") check Result end Result := r3 - r4 ~ create {RATIONAL}.make_from_string ("1/3") end t4: BOOLEAN local r1, r2, zero: RATIONAL do comment ("t4: Subtraction - Zero Cases") r1 := create {attached RATIONAL}.make_from_string ("1/3") r2 := create {attached RATIONAL}.make_from_string ("-2/3") zero := create {attached RATIONAL}.make_from_string ("0") Result := r1 - zero ~ r1 check Result end Result := r2 - zero ~ r2 check Result end Result := create {RATIONAL}.make_from_string ("0") - zero ~ create {RATIONAL}.make_from_string ("0") end t5: BOOLEAN local r1, r2, r3, r4: RATIONAL do comment ("t5: Multiplication - Positive and Negative Cases") r1 := create {attached RATIONAL}.make_from_string ("1/3") r2 := create {attached RATIONAL}.make_from_string ("3/4") r3 := create {attached RATIONAL}.make_from_string ("-1/2") r4 := create {attached RATIONAL}.make_from_string ("2/-3") Result := r1 * r2 ~ create {RATIONAL}.make_from_string ("3/12") check Result end Result := r1 * r3 ~ create {RATIONAL}.make_from_string ("-1/6") check Result end Result := r3 * r2 ~ create {RATIONAL}.make_from_string ("-3/8") check Result end Result := r3 * r4 ~ create {RATIONAL}.make_from_string ("2/6") end t6: BOOLEAN local r1, r2, zero: RATIONAL do comment ("t6: Multiplication - Zero Cases") r1 := create {attached RATIONAL}.make_from_string ("2/3") r2 := create {attached RATIONAL}.make_from_string ("-4/5") zero := create {attached RATIONAL}.make_from_string ("0/1") Result := r1 * zero ~ create {RATIONAL}.make_from_string ("0/3") check Result end Result := r2 * zero ~ create {RATIONAL}.make_from_string ("0/5") check Result end Result := create {RATIONAL}.make_from_string ("0/1") * zero ~ create {RATIONAL}.make_from_string ("0/1") end t7: BOOLEAN local r1, r2, r3, r4: RATIONAL do comment ("t7: Division - Positive and Negative Cases") r1 := create {attached RATIONAL}.make_from_string ("1/3") r2 := create {attached RATIONAL}.make_from_string ("1/4") r3 := create {attached RATIONAL}.make_from_string ("-2/3") r4 := create {attached RATIONAL}.make_from_string ("-3/4") Result := r2 // r1 ~ create {RATIONAL}.make_from_string ("3/4") check Result end Result := r1 // r3 ~ create {RATIONAL}.make_from_string ("3/-6") check Result end Result := r4 // r2 ~ create {RATIONAL}.make_from_string ("-12/4") check Result end Result := r4 // r3 ~ create {RATIONAL}.make_from_string ("-9/-8") end t8: BOOLEAN local r1, r2, zero: RATIONAL do comment ("t8: Division - Zero Cases") r1 := create {attached RATIONAL}.make_from_string ("2/3") r2 := create {attached RATIONAL}.make_from_string ("-1/4") zero := create {attached RATIONAL}.make_from_string ("0/1") assert_equal ("fail", zero.out, "0") Result := zero // r1 ~ create {RATIONAL}.make_from_string ("0") check Result end Result := zero // r2 ~ create {RATIONAL}.make_from_string ("0") check Result end end end -- class RATIONAL_PRIMARY_OPERATION_TEST
Generated by ISE EiffelStudio