Advertisement
2607

s21_math_testc.c

Dec 10th, 2021
1,513
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 6.54 KB | None | 0 0
  1. #include "s21_math.h"
  2.  
  3. #include <check.h>
  4. #include <math.h>
  5. #include <stdio.h>
  6.  
  7.  
  8. // логарифм, синус, косинус - идеально
  9. // экспонента - посмотреть на большие числа
  10. // тангенс - пипополам
  11. // аркиснус и арккосинус выдают -nan вместо nan
  12. START_TEST(s21_abs_test) {}
  13. END_TEST
  14.  
  15. START_TEST(s21_acos_test) {}
  16. END_TEST
  17.  
  18. START_TEST(s21_asin_test) {}
  19. END_TEST
  20.  
  21. START_TEST(s21_atan_test) {}
  22. END_TEST
  23.  
  24. START_TEST(s21_ceil_test) {}
  25. END_TEST
  26.  
  27. START_TEST(s21_cos_test) {
  28.     int boolean = 0;
  29.     long double E = 0.0000001;
  30.     long double a = cos(0);
  31.     long double b = s21_cos(0);
  32.     if (fabs(a - b) < E)
  33.         boolean = 1;
  34.     else
  35.         boolean = 0;
  36.     ck_assert_msg(boolean, "PI_POPOLAM");
  37.     a = cos(s21_PI_2);
  38.     b = s21_cos(s21_PI_2);
  39.     if (fabs(a - b) < E)
  40.         boolean = 1;
  41.     else
  42.         boolean = 0;
  43.     ck_assert_msg(boolean, "PI_POPOLAM");
  44.  
  45.     a = cos(1000000000);
  46.     b = s21_cos(1000000000);
  47.     if (fabs(a - b) < E)
  48.         boolean = 1;
  49.     else
  50.         boolean = 0;
  51.     ck_assert_msg(boolean, "PI_POPOLAM");
  52.  
  53.     // boolean = s21_memcmp(s21_memchr(testStr, 'B', 5), memchr(testStr, 'B', 5), 4) == 0;
  54.     // ck_assert_double_eq(4.5, 4.5);
  55.     // ck_assert_double_eq_tol(4.500032, 4.50055, 0.1);
  56.     a = cos(s21_PI);
  57.     b = s21_cos(s21_PI);
  58.     if (fabs(a - b) < E)
  59.         boolean = 1;
  60.     else
  61.         boolean = 0;
  62.     ck_assert_msg(boolean, "PI_POPOLAM");
  63.  
  64.     a = cos(-999999999);
  65.     b = s21_cos(-999999999);
  66.     if (fabs(a - b) < E)
  67.         boolean = 1;
  68.     else
  69.         boolean = 0;
  70.     ck_assert_msg(boolean, "PI_POPOLAM");
  71.  
  72.     a = cos(1.234567);
  73.     b = s21_cos(1.234567);
  74.     if (fabs(a - b) < E)
  75.         boolean = 1;
  76.     else
  77.         boolean = 0;
  78.     ck_assert_msg(boolean, "PI_POPOLAM");
  79. }
  80. END_TEST
  81.  
  82. START_TEST(s21_exp_test) {
  83.     int boolean = 0;
  84.     long double E = 0.0000001;
  85.     long double a = exp(0.1);
  86.     long double b = s21_exp(0.1);
  87.     if (fabs(a - b) < E)
  88.         boolean = 1;
  89.     else
  90.         boolean = 0;
  91.     ck_assert_msg(boolean, "PI_POPOLAM");
  92.  
  93.     a = exp(0);
  94.     b = s21_exp(0);
  95.     if (fabs(a - b) < E)
  96.         boolean = 1;
  97.     else
  98.         boolean = 0;
  99.     ck_assert_msg(boolean, "PI_POPOLAM");
  100.  
  101.     a = exp(10);
  102.     b = s21_exp(10);
  103.     if (fabs(a - b) < E)
  104.         boolean = 1;
  105.     else
  106.         boolean = 0;
  107.     ck_assert_msg(boolean, "PI_POPOLAM");
  108.  
  109.     a = exp(-10);
  110.     b = s21_exp(-10);
  111.     if (fabs(a - b) < E)
  112.         boolean = 1;
  113.     else
  114.         boolean = 0;
  115.     ck_assert_msg(boolean, "PI_POPOLAM");
  116.  
  117.     a = exp(-1.23456);
  118.     b = s21_exp(-1.23456);
  119.     if (fabs(a - b) < E)
  120.         boolean = 1;
  121.     else
  122.         boolean = 0;
  123.     ck_assert_msg(boolean, "PI_POPOLAM");
  124.  
  125.     a = exp(-1000000000);
  126.     b = s21_exp(-1000000000);
  127.     if (fabs(a - b) < E)
  128.         boolean = 1;
  129.     else
  130.         boolean = 0;
  131.     ck_assert_msg(boolean, "PI_POPOLAM");
  132.  
  133. }
  134. END_TEST
  135.  
  136. START_TEST(s21_fabs_test) {}
  137. END_TEST
  138.  
  139. START_TEST(s21_floor_test) {}
  140. END_TEST
  141.  
  142. START_TEST(s21_fmod_test) {}
  143. END_TEST
  144.  
  145. START_TEST(s21_log_test) {
  146.     int boolean = 0;
  147.     long double E = 0.0000001;
  148.     long double a = log(0.1);
  149.     long double b = s21_log(0.1);
  150.     if (fabs(a - b) < E)
  151.         boolean = 1;
  152.     else
  153.         boolean = 0;
  154.     ck_assert_msg(boolean, "PI_POPOLAM");
  155.  
  156.     a = log(1);
  157.     b = s21_log(1);
  158.     if (fabs(a - b) < E)
  159.         boolean = 1;
  160.     else
  161.         boolean = 0;
  162.     ck_assert_msg(boolean, "PI_POPOLAM");
  163.  
  164.     a = log(1000000000000);
  165.     b = s21_log(1000000000000);
  166.     if (fabs(a - b) < E)
  167.         boolean = 1;
  168.     else
  169.         boolean = 0;
  170.     ck_assert_msg(boolean, "PI_POPOLAM");
  171.  
  172.     a = log(0.000001);
  173.     b = s21_log(0.000001);
  174.     if (fabs(a - b) < E)
  175.         boolean = 1;
  176.     else
  177.         boolean = 0;
  178.     ck_assert_msg(boolean, "PI_POPOLAM");
  179. }
  180. END_TEST
  181.  
  182. START_TEST(s21_pow_test) {}
  183. END_TEST
  184.  
  185. START_TEST(s21_sin_test) {
  186.     int boolean = 0;
  187.     long double E = 0.0000001;
  188.     long double a = sin(0);
  189.     long double b = s21_sin(0);
  190.     if (fabs(a - b) < E)
  191.         boolean = 1;
  192.     else
  193.         boolean = 0;
  194.     ck_assert_msg(boolean, "PI_POPOLAM");
  195.     a = sin(s21_PI_2);
  196.     b = s21_sin(s21_PI_2);
  197.     if (fabs(a - b) < E)
  198.         boolean = 1;
  199.     else
  200.         boolean = 0;
  201.     ck_assert_msg(boolean, "PI_POPOLAM");
  202.  
  203.     a = sin(1000000000);
  204.     b = s21_sin(1000000000);
  205.     if (fabs(a - b) < E)
  206.         boolean = 1;
  207.     else
  208.         boolean = 0;
  209.     ck_assert_msg(boolean, "PI_POPOLAM");
  210.  
  211.     // boolean = s21_memcmp(s21_memchr(testStr, 'B', 5), memchr(testStr, 'B', 5), 4) == 0;
  212.     // ck_assert_double_eq(4.5, 4.5);
  213.     // ck_assert_double_eq_tol(4.500032, 4.50055, 0.1);
  214.     a = sin(s21_PI);
  215.     b = s21_sin(s21_PI);
  216.     if (fabs(a - b) < E)
  217.         boolean = 1;
  218.     else
  219.         boolean = 0;
  220.     ck_assert_msg(boolean, "PI_POPOLAM");
  221.  
  222.     a = sin(-999999999);
  223.     b = s21_sin(-999999999);
  224.     if (fabs(a - b) < E)
  225.         boolean = 1;
  226.     else
  227.         boolean = 0;
  228.     ck_assert_msg(boolean, "PI_POPOLAM");
  229.  
  230.     a = sin(1.234567);
  231.     b = s21_sin(1.234567);
  232.     if (fabs(a - b) < E)
  233.         boolean = 1;
  234.     else
  235.         boolean = 0;
  236.     ck_assert_msg(boolean, "PI_POPOLAM");
  237.  
  238. }
  239. END_TEST
  240.  
  241. START_TEST(s21_sqrt_test) {}
  242. END_TEST
  243.  
  244. START_TEST(s21_tan_test) {}
  245. END_TEST
  246.  
  247. Suite *s21_string_suite(void) {
  248.     Suite *suite;
  249.     TCase *getCase;
  250.  
  251.     suite = suite_create("String");
  252.     getCase = tcase_create("core");
  253.  
  254.     tcase_add_test(getCase, s21_abs_test);
  255.     tcase_add_test(getCase, s21_acos_test);
  256.     tcase_add_test(getCase, s21_asin_test);
  257.     tcase_add_test(getCase, s21_atan_test);
  258.     tcase_add_test(getCase, s21_ceil_test);
  259.     tcase_add_test(getCase, s21_cos_test);
  260.     tcase_add_test(getCase, s21_exp_test);
  261.     tcase_add_test(getCase, s21_fabs_test);
  262.     tcase_add_test(getCase, s21_floor_test);
  263.     tcase_add_test(getCase, s21_fmod_test);
  264.     tcase_add_test(getCase, s21_log_test);
  265.     tcase_add_test(getCase, s21_pow_test);
  266.     tcase_add_test(getCase, s21_sin_test);
  267.     tcase_add_test(getCase, s21_sqrt_test);
  268.     tcase_add_test(getCase, s21_tan_test);
  269.     suite_add_tcase(suite, getCase);
  270.  
  271.     return suite;
  272. }
  273.  
  274. int main(void) {
  275.     int amountOfFailed = 0;
  276.     Suite *suite;
  277.     SRunner *runner;
  278.  
  279.     suite = s21_string_suite();
  280.     runner = srunner_create(suite);
  281.  
  282.     srunner_run_all(runner, CK_NORMAL);
  283.     amountOfFailed = srunner_ntests_failed(runner);
  284.     srunner_free(runner);
  285.  
  286.     return (amountOfFailed == 0) ? 0 : 1;
  287. }
  288.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement