diff options
author | tlatorre <tlatorre@uchicago.edu> | 2019-06-02 13:00:29 -0400 |
---|---|---|
committer | tlatorre <tlatorre@uchicago.edu> | 2019-06-02 13:00:29 -0400 |
commit | 02174afc5f27a6b255762f52b7e30af41941be0d (patch) | |
tree | 64f3f9557cc01d9479eb847c095b56d7761a562b | |
parent | c04cbe24486e020f0172bd119f7eacf99db1a9e5 (diff) | |
download | sddm-02174afc5f27a6b255762f52b7e30af41941be0d.tar.gz sddm-02174afc5f27a6b255762f52b7e30af41941be0d.tar.bz2 sddm-02174afc5f27a6b255762f52b7e30af41941be0d.zip |
add a test for fast_acos()
-rw-r--r-- | src/test.c | 27 |
1 files changed, 27 insertions, 0 deletions
@@ -2074,6 +2074,32 @@ err: return 1; } +int test_fast_acos(char *err) +{ + /* Tests that the fast_acos() function returns values within 0.1% of acos(). */ + size_t i; + double x, result, expected; + + init_genrand(0); + + for (i = 0; i < 100; i++) { + x = genrand_real2()*2 - 1; + + result = fast_acos(x); + expected = acos(x); + + if (!isclose(result, expected, 0, 1e-3)) { + sprintf(err, "fast_acos() returned %.5g, but expected %.5g", result, expected); + goto err; + } + } + + return 0; + +err: + return 1; +} + struct tests { testFunction *test; char *name; @@ -2125,6 +2151,7 @@ struct tests { {test_argmax, "test_argmax"}, {test_argmin, "test_argmin"}, {test_electron_get_angular_pdf_norm, "test_electron_get_angular_pdf_norm"}, + {test_fast_acos, "test_fast_acos"}, }; int main(int argc, char **argv) |