88 lines
3 KiB
C++
88 lines
3 KiB
C++
#include "Fixed.hpp"
|
|
|
|
void ft_test(bool test, std::string text) {
|
|
if (test)
|
|
std::cout << "test: " + text + ", bool: \033[1;32mTrue\033[0m" << std::endl;
|
|
else
|
|
std::cout << "test: " + text + ", bool: \033[1;31mFalse\033[0m" << std::endl;
|
|
}
|
|
|
|
void bool_test(Fixed nbr1, Fixed nbr2, std::string name1, std::string name2) {
|
|
ft_test(nbr1 == nbr2, name1 + " == " + name2);
|
|
ft_test(nbr1 != nbr2, name1 + " != " + name2);
|
|
ft_test(nbr1 <= nbr2, name1 + " <= " + name2);
|
|
ft_test(nbr1 >= nbr2, name1 + " >= " + name2);
|
|
ft_test(nbr1 < nbr2, name1 + " < " + name2);
|
|
ft_test(nbr1 > nbr2, name1 + " > " + name2);
|
|
}
|
|
|
|
void operator_test(Fixed nbr1, Fixed nbr2, std::string name1, std::string name2) {
|
|
|
|
std::cout << "result: " << nbr1 * nbr2 << " waiting: " << nbr1.toFloat() * nbr2.toFloat() << std::endl;
|
|
ft_test(nbr1 * nbr2 == nbr1.toFloat() * nbr2.toFloat(), name1 + " * " + name2);
|
|
std::cout << "result: " << nbr1 / nbr2 << " waiting: " << nbr1.toFloat() / nbr2.toFloat() << std::endl;
|
|
ft_test(nbr1 / nbr2 == nbr1.toFloat() / nbr2.toFloat(), name1 + " / " + name2);
|
|
std::cout << "result: " << nbr1 + nbr2 << " waiting: " << nbr1.toFloat() + nbr2.toFloat() << std::endl;
|
|
ft_test(nbr1 + nbr2 == nbr1.toFloat() + nbr2.toFloat(), name1 + " + " + name2);
|
|
std::cout << "result: " << nbr1 - nbr2 << " waiting: " << nbr1.toFloat() - nbr2.toFloat() << std::endl;
|
|
ft_test(nbr1 - nbr2 == nbr1.toFloat() - nbr2.toFloat(), name1 + " - " + name2);
|
|
}
|
|
|
|
int main( void ) {
|
|
|
|
/* BOOL */
|
|
{
|
|
std::cout << "\n--BOOL TEST--" << std::endl;
|
|
Fixed a(10);
|
|
Fixed b(10.1f);
|
|
Fixed c(9.9f);
|
|
|
|
std::cout << "a:" << a << std::endl;
|
|
std::cout << "b:" << b << std::endl;
|
|
std::cout << "c:" << c << std::endl;
|
|
std::cout << "\n-------------------------------\n" << std::endl;
|
|
bool_test(a, b, "a", "b");
|
|
std::cout << "\n-------------------------------\n" << std::endl;
|
|
bool_test(a, c, "a", "c");
|
|
std::cout << "\n-------------------------------\n"<< std::endl;
|
|
bool_test(b, c, "b", "c");
|
|
}
|
|
|
|
/* OPERATOR */
|
|
{
|
|
std::cout << "\n--OPERATOR TEST--" << std::endl;
|
|
Fixed a(2);
|
|
Fixed b(41.1f);
|
|
Fixed c(-2.9f);
|
|
|
|
std::cout << "a:" << a << std::endl;
|
|
std::cout << "b:" << b << std::endl;
|
|
std::cout << "c:" << c << std::endl;
|
|
|
|
std::cout << "\n-------------------------------\n" << std::endl;
|
|
operator_test(a, b, "a", "b");
|
|
std::cout << "\n-------------------------------\n" << std::endl;
|
|
operator_test(a, c, "a", "c");
|
|
std::cout << "\n-------------------------------\n"<< std::endl;
|
|
operator_test(b, c, "b", "c");
|
|
}
|
|
|
|
std::cout << "\n-------------------------------\n" << std::endl;
|
|
|
|
/* OTHER */
|
|
{
|
|
Fixed a;
|
|
Fixed const b( Fixed( 5.05f ) * Fixed( 2 ) );
|
|
std::cout << "a:" << a << std::endl;
|
|
std::cout << "++a:" << ++a << std::endl;
|
|
std::cout << "a:" << a << std::endl;
|
|
std::cout << "a++:" << a++ << std::endl;
|
|
std::cout << "a:" << a << std::endl;
|
|
std::cout << "b:" << b << std::endl;
|
|
std::cout << "max(a,b):" << Fixed::max( a, b ) << std::endl;
|
|
std::cout << "min(a,b):" << Fixed::min( a, b ) << std::endl;
|
|
}
|
|
|
|
return 0;
|
|
}
|