cpp/CPP02/ex02/main.cpp
2024-12-04 17:29:31 +01:00

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;
}