From 776b1f4a84dc243822d15eaff18cf534a1d05053 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Tue, 9 Apr 2019 13:17:06 +0300 Subject: [PATCH] crt-test: Add tests for modf --- test/crt-test.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/test/crt-test.c b/test/crt-test.c index 3db39ed..a1440ff 100644 --- a/test/crt-test.c +++ b/test/crt-test.c @@ -275,6 +275,42 @@ int main(int argc, char* argv[]) { TEST_FLT_NAN(fmal(F(2), F(NAN), F(4))); TEST_FLT_NAN(fmal(F(2), F(3), F(NAN))); + double retd; + TEST_FLT_ACCURACY(modf(F(2.1), &retd), 0.1, 0.001); + TEST_FLT(retd, 2); + TEST_FLT_ACCURACY(modf(F(-2.1), &retd), -0.1, 0.001); + TEST_FLT(retd, -2); + TEST_FLT(modf(F(INFINITY), &retd), 0); + TEST_FLT(retd, INFINITY); + TEST_FLT(modf(F(-INFINITY), &retd), 0); + TEST_FLT(retd, -INFINITY); + TEST_FLT_NAN(modf(F(NAN), &retd)); + TEST_FLT_NAN(retd); + + float retf; + TEST_FLT_ACCURACY(modff(F(2.1), &retf), 0.1, 0.001); + TEST_FLT(retf, 2); + TEST_FLT_ACCURACY(modff(F(-2.1), &retf), -0.1, 0.001); + TEST_FLT(retf, -2); + TEST_FLT(modff(F(INFINITY), &retf), 0); + TEST_FLT(retf, INFINITY); + TEST_FLT(modff(F(-INFINITY), &retf), 0); + TEST_FLT(retf, -INFINITY); + TEST_FLT_NAN(modff(F(NAN), &retf)); + TEST_FLT_NAN(retf); + + long double retl; + TEST_FLT_ACCURACY(modfl(F(2.1), &retl), 0.1, 0.001); + TEST_FLT(retl, 2); + TEST_FLT_ACCURACY(modfl(F(-2.1), &retl), -0.1, 0.001); + TEST_FLT(retl, -2); + TEST_FLT(modfl(F(INFINITY), &retl), 0); + TEST_FLT(retl, INFINITY); + TEST_FLT(modfl(F(-INFINITY), &retl), 0); + TEST_FLT(retl, -INFINITY); + TEST_FLT_NAN(modfl(F(NAN), &retl)); + TEST_FLT_NAN(retl); + TEST_FLT(fmod(F(3.9), F(4.0)), 3.9); TEST_FLT_ACCURACY(fmod(F(7.9), F(4.0)), 3.9, 0.001); TEST_FLT(fmod(F(-3.9), F(4.0)), -3.9);