Files
libopenshot/tests/Fraction_Tests.cpp
2011-10-11 08:44:27 -05:00

70 lines
1.5 KiB
C++

#include "UnitTest++.h"
#include "../include/OpenShot.h"
using namespace std;
using namespace openshot;
TEST(Fraction_Default_Constructor)
{
// Create a default fraction (should be 1/1)
Fraction f1;
// Check default fraction
CHECK_EQUAL(1, f1.num);
CHECK_EQUAL(1, f1.den);
CHECK_CLOSE(1.0f, f1.ToFloat(), 0.00001);
CHECK_CLOSE(1.0f, f1.ToDouble(), 0.00001);
// reduce fraction
f1.Reduce();
// Check the reduced fraction
CHECK_EQUAL(1, f1.num);
CHECK_EQUAL(1, f1.den);
CHECK_CLOSE(1.0f, f1.ToFloat(), 0.00001);
CHECK_CLOSE(1.0f, f1.ToDouble(), 0.00001);
}
TEST(Fraction_640_480)
{
// Create fraction
Fraction f1(640, 480);
// Check fraction
CHECK_EQUAL(640, f1.num);
CHECK_EQUAL(480, f1.den);
CHECK_CLOSE(1.33333f, f1.ToFloat(), 0.00001);
CHECK_CLOSE(1.33333f, f1.ToDouble(), 0.00001);
// reduce fraction
f1.Reduce();
// Check the reduced fraction
CHECK_EQUAL(4, f1.num);
CHECK_EQUAL(3, f1.den);
CHECK_CLOSE(1.33333f, f1.ToFloat(), 0.00001);
CHECK_CLOSE(1.33333f, f1.ToDouble(), 0.00001);
}
TEST(Fraction_1280_720)
{
// Create fraction
Fraction f1(1280, 720);
// Check fraction
CHECK_EQUAL(1280, f1.num);
CHECK_EQUAL(720, f1.den);
CHECK_CLOSE(1.77777f, f1.ToFloat(), 0.00001);
CHECK_CLOSE(1.77777f, f1.ToDouble(), 0.00001);
// reduce fraction
f1.Reduce();
// Check the reduced fraction
CHECK_EQUAL(16, f1.num);
CHECK_EQUAL(9, f1.den);
CHECK_CLOSE(1.77777f, f1.ToFloat(), 0.00001);
CHECK_CLOSE(1.77777f, f1.ToDouble(), 0.00001);
}