separate unit tests

This commit is contained in:
Rudy Huyn 2019-04-13 00:55:12 -07:00
commit b1c95abf87

View file

@ -19,7 +19,8 @@ namespace CalculatorEngineTests
{ {
ChangeConstants(10, 128); ChangeConstants(10, 128);
} }
TEST_METHOD(ModuloTest)
TEST_METHOD(TestModuloOperandsNotModified)
{ {
// Verify results but also check that operands are not modified // Verify results but also check that operands are not modified
Rational rat25(25); Rational rat25(25);
@ -42,9 +43,12 @@ namespace CalculatorEngineTests
VERIFY_ARE_EQUAL(res, 3); VERIFY_ARE_EQUAL(res, 3);
VERIFY_ARE_EQUAL(ratminus25, -25); VERIFY_ARE_EQUAL(ratminus25, -25);
VERIFY_ARE_EQUAL(rat4, 4); VERIFY_ARE_EQUAL(rat4, 4);
}
TEST_METHOD(TestModuloInteger)
{
// Check with integers // Check with integers
res = Mod(Rational(426), Rational(56478)); auto res = Mod(Rational(426), Rational(56478));
VERIFY_ARE_EQUAL(res, 426); VERIFY_ARE_EQUAL(res, 426);
res = Mod(Rational(56478), Rational(426)); res = Mod(Rational(56478), Rational(426));
VERIFY_ARE_EQUAL(res, 246); VERIFY_ARE_EQUAL(res, 246);
@ -58,9 +62,12 @@ namespace CalculatorEngineTests
VERIFY_ARE_EQUAL(res, 0); VERIFY_ARE_EQUAL(res, 0);
res = Mod(Rational(1000), Rational(-250)); res = Mod(Rational(1000), Rational(-250));
VERIFY_ARE_EQUAL(res, 0); VERIFY_ARE_EQUAL(res, 0);
}
TEST_METHOD(TestModuloZero)
{
// Test with Zero // Test with Zero
res = Mod(Rational(343654332), Rational(0)); auto res = Mod(Rational(343654332), Rational(0));
VERIFY_ARE_EQUAL(res, 343654332); VERIFY_ARE_EQUAL(res, 343654332);
res = Mod(Rational(0), Rational(8756)); res = Mod(Rational(0), Rational(8756));
VERIFY_ARE_EQUAL(res, 0); VERIFY_ARE_EQUAL(res, 0);
@ -70,9 +77,12 @@ namespace CalculatorEngineTests
VERIFY_ARE_EQUAL(res, 0); VERIFY_ARE_EQUAL(res, 0);
res = Mod(Rational(Number(1, 0, { 23242 }), Number(1, 0, { 2 })), Rational(Number(1, 0, { 0 }), Number(1, 0, { 23 }))); res = Mod(Rational(Number(1, 0, { 23242 }), Number(1, 0, { 2 })), Rational(Number(1, 0, { 0 }), Number(1, 0, { 23 })));
VERIFY_ARE_EQUAL(res, 11621); VERIFY_ARE_EQUAL(res, 11621);
}
TEST_METHOD(TestModuloRational)
{
// Test with rational numbers // Test with rational numbers
res = Mod(Rational(Number(1, 0, { 250 }), Number(1, 0, { 100 })), Rational(89)); auto res = Mod(Rational(Number(1, 0, { 250 }), Number(1, 0, { 100 })), Rational(89));
VERIFY_ARE_EQUAL(res.ToString(10, FMT_FLOAT, 8), L"2.5"); VERIFY_ARE_EQUAL(res.ToString(10, FMT_FLOAT, 8), L"2.5");
res = Mod(Rational(Number(1, 0, { 3330 }), Number(1, 0, { 1332 })), Rational(1)); res = Mod(Rational(Number(1, 0, { 3330 }), Number(1, 0, { 1332 })), Rational(1));
VERIFY_ARE_EQUAL(res.ToString(10, FMT_FLOAT, 8), L"0.5"); VERIFY_ARE_EQUAL(res.ToString(10, FMT_FLOAT, 8), L"0.5");
@ -94,7 +104,7 @@ namespace CalculatorEngineTests
VERIFY_ARE_EQUAL(res.ToString(10, FMT_FLOAT, 8), L"-0.32"); VERIFY_ARE_EQUAL(res.ToString(10, FMT_FLOAT, 8), L"-0.32");
} }
TEST_METHOD(RemainderTest) TEST_METHOD(TestRemainerOperandsNotModified)
{ {
//Verify results but also check that operands are not modified //Verify results but also check that operands are not modified
Rational rat25(25); Rational rat25(25);
@ -117,10 +127,12 @@ namespace CalculatorEngineTests
VERIFY_ARE_EQUAL(res, -1); VERIFY_ARE_EQUAL(res, -1);
VERIFY_ARE_EQUAL(ratminus25, -25); VERIFY_ARE_EQUAL(ratminus25, -25);
VERIFY_ARE_EQUAL(rat4, 4); VERIFY_ARE_EQUAL(rat4, 4);
}
TEST_METHOD(TestRemainerInteger)
{
// Check with integers // Check with integers
res = Rational(426) % Rational(56478); auto res = Rational(426) % Rational(56478);
VERIFY_ARE_EQUAL(res, 426); VERIFY_ARE_EQUAL(res, 426);
res = Rational(56478) % Rational(426); res = Rational(56478) % Rational(426);
VERIFY_ARE_EQUAL(res, 246); VERIFY_ARE_EQUAL(res, 246);
@ -134,9 +146,12 @@ namespace CalculatorEngineTests
VERIFY_ARE_EQUAL(res, 0); VERIFY_ARE_EQUAL(res, 0);
res = Rational(24) % Rational(24); res = Rational(24) % Rational(24);
VERIFY_ARE_EQUAL(res, 0); VERIFY_ARE_EQUAL(res, 0);
}
TEST_METHOD(TestRemainerZero)
{
// Test with Zero // Test with Zero
res = Rational(0) % Rational(3654); auto res = Rational(0) % Rational(3654);
VERIFY_ARE_EQUAL(res, 0); VERIFY_ARE_EQUAL(res, 0);
res = Rational(0) % Rational(-242); res = Rational(0) % Rational(-242);
VERIFY_ARE_EQUAL(res, 0); VERIFY_ARE_EQUAL(res, 0);
@ -176,9 +191,12 @@ namespace CalculatorEngineTests
Assert::Fail(); Assert::Fail();
} }
} }
}
TEST_METHOD(TestRemainerRational)
{
//Test with rational numbers //Test with rational numbers
res = Rational(Number(1, 0, { 250 }), Number(1, 0, { 100 })) % Rational(89); auto res = Rational(Number(1, 0, { 250 }), Number(1, 0, { 100 })) % Rational(89);
VERIFY_ARE_EQUAL(res.ToString(10, FMT_FLOAT, 8), L"2.5"); VERIFY_ARE_EQUAL(res.ToString(10, FMT_FLOAT, 8), L"2.5");
res = Rational(Number(1, 0, { 3330 }), Number(1, 0, { 1332 })) % Rational(1); res = Rational(Number(1, 0, { 3330 }), Number(1, 0, { 1332 })) % Rational(1);
VERIFY_ARE_EQUAL(res.ToString(10, FMT_FLOAT, 8), L"0.5"); VERIFY_ARE_EQUAL(res.ToString(10, FMT_FLOAT, 8), L"0.5");