changeset 3510:0e5829f1fb75

gcc -O? thinks a*0.0 != 0.0 so we need a better cmp
author michael
date Sun, 16 Dec 2001 00:31:44 +0000
parents 21c7b77b3e83
children 70a686041bbe
files liba52/compare.c
diffstat 1 files changed, 50 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/liba52/compare.c	Sun Dec 16 00:31:44 2001 +0000
@@ -0,0 +1,50 @@
+// File written by Michael Niedermayer and its under GPL
+// simple file compare program, it finds the number of rounding errors 
+// and dies if there is a larger error ( ABS(a-b)>1 )
+
+#include <stdio.h>
+
+// FIXME no checks but its just for debuging so who cares ;)
+
+int main(int argc, char **argv)
+{
+	FILE *f0, *f1;
+	int dif=0;
+	
+	if(argc!=3) 
+	{
+		printf("compare <file1> <file2>\n");
+		exit(2);
+	}
+	
+	f0= fopen(argv[1], "rb");
+	f1= fopen(argv[2], "rb");
+	
+	for(;;)
+	{
+		int c0= fgetc(f0);
+		int c1= fgetc(f1);
+		int d= c0-c1;
+		if(c0<0 && c1<0) break;
+		if(c0<0 || c1<0)
+		{
+			printf("FATAL error, files have different size!\n");
+			exit(1);
+		}
+		
+		if(d<0) d=-d; // ABS
+		if(d>1)
+		{
+			printf("FATAL error, too large differnce found!\n");
+			exit(1);
+		}
+		
+		if(d) dif++;
+	}
+	
+	fclose(f0);
+	fclose(f1);
+	
+	printf("%d (+/-1)differences found\n", dif);
+	exit(0);
+}
\ No newline at end of file