Module Name: src Committed By: maya Date: Wed Aug 31 14:05:10 UTC 2016
Modified Files: src/distrib/sets/lists/debug: mi src/distrib/sets/lists/tests: mi src/tests/lib/libm: Makefile Added Files: src/tests/lib/libm: t_casinh.c Log Message: Add failing test for casinh To generate a diff of this commit: cvs rdiff -u -r1.165 -r1.166 src/distrib/sets/lists/debug/mi cvs rdiff -u -r1.684 -r1.685 src/distrib/sets/lists/tests/mi cvs rdiff -u -r1.39 -r1.40 src/tests/lib/libm/Makefile cvs rdiff -u -r0 -r1.1 src/tests/lib/libm/t_casinh.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/distrib/sets/lists/debug/mi diff -u src/distrib/sets/lists/debug/mi:1.165 src/distrib/sets/lists/debug/mi:1.166 --- src/distrib/sets/lists/debug/mi:1.165 Mon Aug 22 08:49:33 2016 +++ src/distrib/sets/lists/debug/mi Wed Aug 31 14:05:09 2016 @@ -1,4 +1,4 @@ -# $NetBSD: mi,v 1.165 2016/08/22 08:49:33 maya Exp $ +# $NetBSD: mi,v 1.166 2016/08/31 14:05:09 maya Exp $ ./etc/mtree/set.debug comp-sys-root ./usr/lib comp-sys-usr compatdir ./usr/lib/i18n/libBIG5_g.a comp-c-debuglib debuglib,compatfile @@ -2095,6 +2095,7 @@ ./usr/libdata/debug/usr/tests/lib/libm/t_acos.debug tests-lib-debug debug,atf,compattestfile ./usr/libdata/debug/usr/tests/lib/libm/t_asin.debug tests-lib-debug debug,atf,compattestfile ./usr/libdata/debug/usr/tests/lib/libm/t_atan.debug tests-lib-debug debug,atf,compattestfile +./usr/libdata/debug/usr/tests/lib/libm/t_casinh.debug tests-lib-debug debug,atf,compattestfile ./usr/libdata/debug/usr/tests/lib/libm/t_cbrt.debug tests-lib-debug debug,atf,compattestfile ./usr/libdata/debug/usr/tests/lib/libm/t_ceil.debug tests-lib-debug debug,atf,compattestfile ./usr/libdata/debug/usr/tests/lib/libm/t_cos.debug tests-lib-debug debug,atf,compattestfile Index: src/distrib/sets/lists/tests/mi diff -u src/distrib/sets/lists/tests/mi:1.684 src/distrib/sets/lists/tests/mi:1.685 --- src/distrib/sets/lists/tests/mi:1.684 Mon Aug 22 08:49:33 2016 +++ src/distrib/sets/lists/tests/mi Wed Aug 31 14:05:10 2016 @@ -1,4 +1,4 @@ -# $NetBSD: mi,v 1.684 2016/08/22 08:49:33 maya Exp $ +# $NetBSD: mi,v 1.685 2016/08/31 14:05:10 maya Exp $ # # Note: don't delete entries from here - mark them as "obsolete" instead. # @@ -2902,6 +2902,7 @@ ./usr/tests/lib/libm/t_acos tests-lib-tests compattestfile,atf ./usr/tests/lib/libm/t_asin tests-lib-tests compattestfile,atf ./usr/tests/lib/libm/t_atan tests-lib-tests compattestfile,atf +./usr/tests/lib/libm/t_casinh tests-lib-tests compattestfile,atf ./usr/tests/lib/libm/t_cbrt tests-lib-tests compattestfile,atf ./usr/tests/lib/libm/t_ceil tests-lib-tests compattestfile,atf ./usr/tests/lib/libm/t_cos tests-lib-tests compattestfile,atf Index: src/tests/lib/libm/Makefile diff -u src/tests/lib/libm/Makefile:1.39 src/tests/lib/libm/Makefile:1.40 --- src/tests/lib/libm/Makefile:1.39 Tue Aug 23 10:03:44 2016 +++ src/tests/lib/libm/Makefile Wed Aug 31 14:05:10 2016 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.39 2016/08/23 10:03:44 christos Exp $ +# $NetBSD: Makefile,v 1.40 2016/08/31 14:05:10 maya Exp $ .include <bsd.own.mk> @@ -15,6 +15,7 @@ CPPFLAGS.t_fmod.c+= -I${.CURDIR}/../libc TESTS_C+= t_acos TESTS_C+= t_asin TESTS_C+= t_atan +TESTS_C+= t_casinh TESTS_C+= t_cbrt TESTS_C+= t_ceil TESTS_C+= t_cos Added files: Index: src/tests/lib/libm/t_casinh.c diff -u /dev/null src/tests/lib/libm/t_casinh.c:1.1 --- /dev/null Wed Aug 31 14:05:10 2016 +++ src/tests/lib/libm/t_casinh.c Wed Aug 31 14:05:10 2016 @@ -0,0 +1,78 @@ +/* $NetBSD: t_casinh.c,v 1.1 2016/08/31 14:05:10 maya Exp $ */ + +/* + * Written by Maya Rashish + * Public domain. + * + * Testing special values of casinh + * Values from ISO/IEC 9899:201x G.6.2.2 + */ + +#include <atf-c.h> +#include <complex.h> +#include <math.h> + +#define RE(z) (((double *)(&z))[0]) +#define IM(z) (((double *)(&z))[1]) + +static const struct { + double input_re; + double input_im; + double result_re; + double result_im; +} values[] = { + { +0, +0, +0, +0}, + { +5.032E3, +INFINITY, +INFINITY, +M_PI/2}, + { +INFINITY, +5.023E3, +INFINITY, +0}, + { +INFINITY, +INFINITY, +INFINITY, +M_PI/4}, +#ifdef __HAVE_NANF + { +INFINITY, +NAN, +INFINITY, +NAN}, + { +5.032E3, +NAN, +NAN, +NAN}, /* + FE_INVALID optionally raised */ + { +NAN, +0, +NAN, +0}, + { +NAN, -5.023E3, +NAN, +NAN}, /* + FE_INVALID optionally raised */ + { +NAN, +INFINITY, +INFINITY, +NAN}, /* sign of real part of result unspecified */ + { +NAN, +NAN, +NAN, +NAN}, +#endif +}; + +#ifdef __HAVE_NANF +#define both_nan(a,b) (isnan(a) && isnan(b)) +#else +#define both_nan(a,b) 0 +#endif + +#define crude_equality(a,b) ((a == b) || both_nan(a,b)) + +#define ATF_COMPLEX_EQUAL(a,b) do { \ + ATF_CHECK(crude_equality(creal(a),creal(b)) && \ + crude_equality(cimag(a), cimag(b))); \ +} while (0/*CONSTCOND*/) + + +ATF_TC(casinh); +ATF_TC_HEAD(casinh, tc) +{ + atf_tc_set_md_var(tc, "descr","Check casinh family - special values"); +} + +ATF_TC_BODY(casinh, tc) +{ + complex double input; + complex double result; + unsigned int i; + for (i = 0; i < __arraycount(values); i++) { + RE(input) = values[i].input_re; + IM(input) = values[i].input_im; + RE(result) = values[i].result_re; + IM(result) = values[i].result_im; + ATF_COMPLEX_EQUAL(casinh(input), result); + } +} + +ATF_TP_ADD_TCS(tp) +{ + + ATF_TP_ADD_TC(tp, casinh); + + return atf_no_error(); +}