mirror of https://github.com/alibaba/MNN.git
				
				
				
			
		
			
	
	
		
			52 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C++
		
	
	
	
		
		
			
		
	
	
			52 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C++
		
	
	
	
|  | //
 | ||
|  | //  checkFile.cpp
 | ||
|  | //  MNN
 | ||
|  | //
 | ||
|  | //  Created by MNN on 2019/01/22.
 | ||
|  | //  Copyright © 2018, Alibaba Group Holding Limited
 | ||
|  | //
 | ||
|  | 
 | ||
|  | #include <assert.h>
 | ||
|  | #include <stdio.h>
 | ||
|  | #include <stdlib.h>
 | ||
|  | #include <cmath>
 | ||
|  | #include <fstream>
 | ||
|  | 
 | ||
|  | using namespace std; | ||
|  | 
 | ||
|  | int main(int argc, char* argv[]) { | ||
|  |     if (argc < 3) { | ||
|  |         printf("Usage: ./checkFile.out XXX.txt YYY.txt tolerance\n"); | ||
|  |         return 0; | ||
|  |     } | ||
|  | 
 | ||
|  |     // read args
 | ||
|  |     const char* file1 = argv[1]; | ||
|  |     const char* file2 = argv[2]; | ||
|  |     float tolerance   = 0.001; | ||
|  |     if (argc > 3) { | ||
|  |         tolerance = atof(argv[3]); | ||
|  |     } | ||
|  | 
 | ||
|  |     // open file
 | ||
|  |     std::ifstream input1(file1); | ||
|  |     assert(!input1.fail()); | ||
|  |     std::ifstream input2(file2); | ||
|  |     assert(!input2.fail()); | ||
|  | 
 | ||
|  |     // compare
 | ||
|  |     float v1, v2; | ||
|  |     int pos = 0; | ||
|  |     while (input1 >> v1) { | ||
|  |         auto& valid = input2 >> v2; | ||
|  |         if (::fabsf(v1 - v2) > tolerance) { | ||
|  |             printf("Error for %d, v1=%.6f, v2=%.6f\n", pos, v1, v2); | ||
|  |         } | ||
|  |         pos++; | ||
|  |         if (!valid) { | ||
|  |             break; | ||
|  |         } | ||
|  |     } | ||
|  |     return 0; | ||
|  | } |