changeset 883:e6e610efdba8

added basic float2int and int2float tests
author thomask
date Fri, 03 Mar 2006 11:57:30 +0000
parents 534a591a0225
children 32f8ee5796a1
files run/i/ieee_754_flt2int_A.d run/i/ieee_754_flt2int_B.d run/i/ieee_754_flt2int_C.d run/i/ieee_754_flt2int_D.d run/i/ieee_754_flt2int_E.d run/i/ieee_754_flt2int_F.d run/i/ieee_754_int2flt_A.d run/i/ieee_754_int2flt_B.d run/i/ieee_754_int2flt_C.d run/i/ieee_754_int2flt_D.d run/i/ieee_754_int2flt_E.d run/i/ieee_754_int2flt_F.d run/i/ieee_754_int2flt_G.d
diffstat 13 files changed, 452 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/i/ieee_754_flt2int_A.d	Fri Mar 03 11:57:30 2006 +0000
@@ -0,0 +1,43 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.i.ieee_754_flt2int_A;
+
+int main(){
+	size_t border;
+	
+	if((long.sizeof * 8) - 1 < real.dig * 3){
+		border = (long.sizeof * 8) - 1;
+	}else{
+		border = real.dig * 3;
+	}
+
+	for(size_t i = 0; i < border; i++){
+		real a = 1.0;
+		for(size_t j = i; j > 0; j--){
+			a *= 2.0;
+		}
+		long b = cast(long) a;
+		real c = a;
+
+		if(c != a){
+			assert(0);
+		}
+	}
+
+	for(size_t i = 0; i < border; i++){
+		real a = -1.0;
+		for(size_t j = i; j > 0; j--){
+			a *= 2.0;
+		}
+		long b = cast(long) a;
+		real c = a;
+
+		if(c != a){
+			assert(0);
+		}
+	}
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/i/ieee_754_flt2int_B.d	Fri Mar 03 11:57:30 2006 +0000
@@ -0,0 +1,43 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.i.ieee_754_flt2int_B;
+
+int main(){
+	size_t border;
+	
+	if((long.sizeof * 8) - 1 < double.dig * 3){
+		border = (long.sizeof * 8) - 1;
+	}else{
+		border = double.dig * 3;
+	}
+
+	for(size_t i = 0; i < border; i++){
+		double a = 1.0;
+		for(size_t j = i; j > 0; j--){
+			a *= 2.0;
+		}
+		long b = cast(long) a;
+		double c = a;
+
+		if(c != a){
+			assert(0);
+		}
+	}
+
+	for(size_t i = 0; i < border; i++){
+		double a = -1.0;
+		for(size_t j = i; j > 0; j--){
+			a *= 2.0;
+		}
+		long b = cast(long) a;
+		double c = a;
+
+		if(c != a){
+			assert(0);
+		}
+	}
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/i/ieee_754_flt2int_C.d	Fri Mar 03 11:57:30 2006 +0000
@@ -0,0 +1,43 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.i.ieee_754_flt2int_C;
+
+int main(){
+	size_t border;
+	
+	if((long.sizeof * 8) - 1 < float.dig * 3){
+		border = (long.sizeof * 8) - 1;
+	}else{
+		border = float.dig * 3;
+	}
+
+	for(size_t i = 0; i < border; i++){
+		float a = 1.0;
+		for(size_t j = i; j > 0; j--){
+			a *= 2.0;
+		}
+		long b = cast(long) a;
+		float c = a;
+
+		if(c != a){
+			assert(0);
+		}
+	}
+
+	for(size_t i = 0; i < border; i++){
+		float a = -1.0;
+		for(size_t j = i; j > 0; j--){
+			a *= 2.0;
+		}
+		long b = cast(long) a;
+		float c = a;
+
+		if(c != a){
+			assert(0);
+		}
+	}
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/i/ieee_754_flt2int_D.d	Fri Mar 03 11:57:30 2006 +0000
@@ -0,0 +1,30 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.i.ieee_754_flt2int_D;
+
+int main(){
+	size_t border;
+	
+	if(ulong.sizeof * 8 < float.dig * 3){
+		border = ulong.sizeof * 8;
+	}else{
+		border = float.dig * 3;
+	}
+
+	for(size_t i = 0; i < border; i++){
+		float a = 1.0;
+		for(size_t j = i; j > 0; j--){
+			a *= 2.0;
+		}
+		ulong b = cast(ulong) a;
+		float c = a;
+
+		if(c != a){
+			assert(0);
+		}
+	}
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/i/ieee_754_flt2int_E.d	Fri Mar 03 11:57:30 2006 +0000
@@ -0,0 +1,30 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.i.ieee_754_flt2int_E;
+
+int main(){
+	size_t border;
+	
+	if(ulong.sizeof * 8 < double.dig * 3){
+		border = ulong.sizeof * 8;
+	}else{
+		border = double.dig * 3;
+	}
+
+	for(size_t i = 0; i < border; i++){
+		double a = 1.0;
+		for(size_t j = i; j > 0; j--){
+			a *= 2.0;
+		}
+		ulong b = cast(ulong) a;
+		double c = a;
+
+		if(c != a){
+			assert(0);
+		}
+	}
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/i/ieee_754_flt2int_F.d	Fri Mar 03 11:57:30 2006 +0000
@@ -0,0 +1,30 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.i.ieee_754_flt2int_F;
+
+int main(){
+	size_t border;
+	
+	if(ulong.sizeof * 8 < real.dig * 3){
+		border = ulong.sizeof * 8;
+	}else{
+		border = real.dig * 3;
+	}
+
+	for(size_t i = 0; i < border; i++){
+		real a = 1.0;
+		for(size_t j = i; j > 0; j--){
+			a *= 2.0;
+		}
+		ulong b = cast(ulong) a;
+		real c = a;
+
+		if(c != a){
+			assert(0);
+		}
+	}
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/i/ieee_754_int2flt_A.d	Fri Mar 03 11:57:30 2006 +0000
@@ -0,0 +1,38 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.i.ieee_754_int2flt_A;
+
+int main(){
+	size_t border;
+	
+	if((int.sizeof * 8) - 1 < real.dig * 3){
+		border = (int.sizeof * 8) - 1;
+	}else{
+		border = real.dig * 3;
+	}
+
+	for(int i = 0; i < border; i++){
+		int test = 1 << i;
+		real r = test;
+		int result = cast(int)r;
+
+		if(result != test){
+			assert(0);
+		}
+	}
+
+	for(int i = 0; i < border; i++){
+		int test = 1 << i;
+		test *= -1;
+		real r = test;
+		int result = cast(int)r;
+
+		if(result != test){
+			assert(0);
+		}
+	}
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/i/ieee_754_int2flt_B.d	Fri Mar 03 11:57:30 2006 +0000
@@ -0,0 +1,38 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.i.ieee_754_int2flt_B;
+
+int main(){
+	size_t border;
+	
+	if((long.sizeof * 8) - 1 < real.dig * 3){
+		border = (long.sizeof * 8) - 1;
+	}else{
+		border = real.dig * 3;
+	}
+
+	for(long i = 0; i < border; i++){
+		long test = 1 << i;
+		real r = test;
+		long result = cast(long)r;
+
+		if(result != test){
+			assert(0);
+		}
+	}
+
+	for(long i = 0; i < border; i++){
+		long test = 1 << i;
+		test *= -1;
+		real r = test;
+		long result = cast(long)r;
+
+		if(result != test){
+			assert(0);
+		}
+	}
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/i/ieee_754_int2flt_C.d	Fri Mar 03 11:57:30 2006 +0000
@@ -0,0 +1,38 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.i.ieee_754_int2flt_C;
+
+int main(){
+	size_t border;
+	
+	if((long.sizeof * 8) - 1 < double.dig * 3){
+		border = (long.sizeof * 8) - 1;
+	}else{
+		border = double.dig * 3;
+	}
+
+	for(long i = 0; i < border; i++){
+		long test = 1 << i;
+		double r = test;
+		long result = cast(long)r;
+
+		if(result != test){
+			assert(0);
+		}
+	}
+
+	for(long i = 0; i < border; i++){
+		long test = 1 << i;
+		test *= -1;
+		double r = test;
+		long result = cast(long)r;
+
+		if(result != test){
+			assert(0);
+		}
+	}
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/i/ieee_754_int2flt_D.d	Fri Mar 03 11:57:30 2006 +0000
@@ -0,0 +1,38 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.i.ieee_754_int2flt_D;
+
+int main(){
+	size_t border;
+	
+	if((long.sizeof * 8) - 1 < float.dig * 3){
+		border = (long.sizeof * 8) - 1;
+	}else{
+		border = float.dig * 3;
+	}
+
+	for(long i = 0; i < border; i++){
+		long test = 1 << i;
+		float r = test;
+		long result = cast(long)r;
+
+		if(result != test){
+			assert(0);
+		}
+	}
+
+	for(long i = 0; i < border; i++){
+		long test = 1 << i;
+		test *= -1;
+		float r = test;
+		long result = cast(long)r;
+
+		if(result != test){
+			assert(0);
+		}
+	}
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/i/ieee_754_int2flt_E.d	Fri Mar 03 11:57:30 2006 +0000
@@ -0,0 +1,27 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.i.ieee_754_int2flt_E;
+
+int main(){
+	size_t border;
+	
+	if(ulong.sizeof * 8 < float.dig * 3){
+		border = ulong.sizeof * 8;
+	}else{
+		border = float.dig * 3;
+	}
+
+	for(ulong i = 0; i < border; i++){
+		ulong test = 1 << i;
+		float r = test;
+		ulong result = cast(ulong)r;
+
+		if(result != test){
+			assert(0);
+		}
+	}
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/i/ieee_754_int2flt_F.d	Fri Mar 03 11:57:30 2006 +0000
@@ -0,0 +1,27 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.i.ieee_754_int2flt_F;
+
+int main(){
+	size_t border;
+	
+	if(ulong.sizeof * 8 < double.dig * 3){
+		border = ulong.sizeof * 8;
+	}else{
+		border = double.dig * 3;
+	}
+
+	for(ulong i = 0; i < border; i++){
+		ulong test = 1 << i;
+		double r = test;
+		ulong result = cast(ulong)r;
+
+		if(result != test){
+			assert(0);
+		}
+	}
+
+	return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/i/ieee_754_int2flt_G.d	Fri Mar 03 11:57:30 2006 +0000
@@ -0,0 +1,27 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.i.ieee_754_int2flt_G;
+
+int main(){
+	size_t border;
+	
+	if((ulong.sizeof * 8) < real.dig * 3){
+		border = ulong.sizeof * 8;
+	}else{
+		border = real.dig * 3;
+	}
+
+	for(ulong i = 0; i < border; i++){
+		ulong test = 1 << i;
+		real r = test;
+		ulong result = cast(ulong)r;
+
+		if(result != test){
+			assert(0);
+		}
+	}
+
+	return 0;
+}