Moved Eule to its own repository
This commit is contained in:
87
Test/Math_Clamp.cpp
Normal file
87
Test/Math_Clamp.cpp
Normal file
@@ -0,0 +1,87 @@
|
||||
#include "CppUnitTest.h"
|
||||
#include "../Eule/Math.h"
|
||||
|
||||
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
|
||||
using namespace Eule;
|
||||
|
||||
/** Equivalence classes:
|
||||
* -- min < v < max -> v
|
||||
* -- v < min < max -> min
|
||||
* -- min < max < v -> max
|
||||
* -- v == min < max -> min
|
||||
* -- min < v == max -> max
|
||||
* -- v < max == min -> max
|
||||
* -- max == min < v -> max
|
||||
* -- min == v == max -> max
|
||||
* -- max < v < min -> min
|
||||
*/
|
||||
|
||||
namespace _Math
|
||||
{
|
||||
TEST_CLASS(_Clamp)
|
||||
{
|
||||
public:
|
||||
// min < v < max -> v
|
||||
TEST_METHOD(min_lt_v_lt_max)
|
||||
{
|
||||
Assert::AreEqual(6.0, Math::Clamp(6.0, 4.0, 9.0));
|
||||
return;
|
||||
}
|
||||
|
||||
// v < min < max -> min
|
||||
TEST_METHOD(v_lt_min_max)
|
||||
{
|
||||
Assert::AreEqual(6.0, Math::Clamp(4.0, 6.0, 9.0));
|
||||
return;
|
||||
}
|
||||
|
||||
// min < max < v -> max
|
||||
TEST_METHOD(min_lt_max_lt_v)
|
||||
{
|
||||
Assert::AreEqual(9.0, Math::Clamp(12.0, 6.0, 9.0));
|
||||
return;
|
||||
}
|
||||
|
||||
// v == min < max -> min
|
||||
TEST_METHOD(v_eq_min_lt_max)
|
||||
{
|
||||
Assert::AreEqual(6.0, Math::Clamp(6.0, 6.0, 9.0));
|
||||
return;
|
||||
}
|
||||
|
||||
// min < v == max -> max
|
||||
TEST_METHOD(min_lt_v_eq_max)
|
||||
{
|
||||
Assert::AreEqual(9.0, Math::Clamp(9.0, 6.0, 9.0));
|
||||
return;
|
||||
}
|
||||
|
||||
// v < max == min -> max
|
||||
TEST_METHOD(v_lt_max_eq_min)
|
||||
{
|
||||
Assert::AreEqual(9.0, Math::Clamp(9.0, 6.0, 9.0));
|
||||
return;
|
||||
}
|
||||
|
||||
// max == min < v -> max
|
||||
TEST_METHOD(max_eq_min_lt_v)
|
||||
{
|
||||
Assert::AreEqual(9.0, Math::Clamp(15.0, 9.0, 9.0));
|
||||
return;
|
||||
}
|
||||
|
||||
// min == v == max -> max
|
||||
TEST_METHOD(min_eq_v_eq_max)
|
||||
{
|
||||
Assert::AreEqual(15.0, Math::Clamp(15.0, 15.0, 15.0));
|
||||
return;
|
||||
}
|
||||
|
||||
// max < v < min -> min
|
||||
TEST_METHOD(max_lt_v_lt_min)
|
||||
{
|
||||
Assert::AreEqual(7.0, Math::Clamp(4.0, 7.0, 3.0));
|
||||
return;
|
||||
}
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user