Module Name:    src
Committed By:   jruoho
Date:           Tue Sep 13 07:03:37 UTC 2011

Modified Files:
        src/tests/lib/libm: t_ldexp.c

Log Message:
Test ldexp(x, n) == x * exp2(n) && ldexpf(x, n) == x * exp2f(n).


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/tests/lib/libm/t_ldexp.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/tests/lib/libm/t_ldexp.c
diff -u src/tests/lib/libm/t_ldexp.c:1.4 src/tests/lib/libm/t_ldexp.c:1.5
--- src/tests/lib/libm/t_ldexp.c:1.4	Mon Sep 12 17:46:39 2011
+++ src/tests/lib/libm/t_ldexp.c	Tue Sep 13 07:03:36 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: t_ldexp.c,v 1.4 2011/09/12 17:46:39 jruoho Exp $ */
+/* $NetBSD: t_ldexp.c,v 1.5 2011/09/13 07:03:36 jruoho Exp $ */
 
 /*-
  * Copyright (c) 2011 The NetBSD Foundation, Inc.
@@ -29,7 +29,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: t_ldexp.c,v 1.4 2011/09/12 17:46:39 jruoho Exp $");
+__RCSID("$NetBSD: t_ldexp.c,v 1.5 2011/09/13 07:03:36 jruoho Exp $");
 
 #include <math.h>
 #include <limits.h>
@@ -41,6 +41,27 @@
 /*
  * ldexp(3)
  */
+ATF_TC(ldexp_exp2);
+ATF_TC_HEAD(ldexp_exp2, tc)
+{
+	atf_tc_set_md_var(tc, "descr", "Test ldexp(x, n) == x * exp2(n)");
+}
+
+ATF_TC_BODY(ldexp_exp2, tc)
+{
+#ifndef __vax__
+	const double n[] = { 1, 2, 3, 25, 50, 100, 123, 321, 500 };
+	const double x = 12.1288221;
+	double y;
+	size_t i;
+
+	for (i = 0; i < __arraycount(n); i++) {
+		y = ldexp(x, n[i]);
+		ATF_CHECK(x * exp2(n[i]));
+	}
+#endif
+}
+
 ATF_TC(ldexp_nan);
 ATF_TC_HEAD(ldexp_nan, tc)
 {
@@ -143,6 +164,27 @@
 #endif
 }
 
+ATF_TC(ldexpf_exp2f);
+ATF_TC_HEAD(ldexpf_exp2f, tc)
+{
+	atf_tc_set_md_var(tc, "descr", "Test ldexpf(x, n) == x * exp2f(n)");
+}
+
+ATF_TC_BODY(ldexpf_exp2f, tc)
+{
+#ifndef __vax__
+	const float n[] = { 1, 2, 3, 25, 50, 100, 123, 321, 500 };
+	const float x = 12.1288221;
+	float y;
+	size_t i;
+
+	for (i = 0; i < __arraycount(n); i++) {
+		y = ldexpf(x, n[i]);
+		ATF_CHECK(x * exp2f(n[i]));
+	}
+#endif
+}
+
 ATF_TC(ldexpf_nan);
 ATF_TC_HEAD(ldexpf_nan, tc)
 {
@@ -252,12 +294,14 @@
 ATF_TP_ADD_TCS(tp)
 {
 
+	ATF_TP_ADD_TC(tp, ldexp_exp2);
 	ATF_TP_ADD_TC(tp, ldexp_nan);
 	ATF_TP_ADD_TC(tp, ldexp_inf_neg);
 	ATF_TP_ADD_TC(tp, ldexp_inf_pos);
 	ATF_TP_ADD_TC(tp, ldexp_zero_neg);
 	ATF_TP_ADD_TC(tp, ldexp_zero_pos);
 
+	ATF_TP_ADD_TC(tp, ldexpf_exp2f);
 	ATF_TP_ADD_TC(tp, ldexpf_nan);
 	ATF_TP_ADD_TC(tp, ldexpf_inf_neg);
 	ATF_TP_ADD_TC(tp, ldexpf_inf_pos);

Reply via email to