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();
+}

Reply via email to