comparison test-data/src/compare_files.py @ 0:14fd6f3b0898 draft

planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/tools/extract_sequence_file/ commit ffb68b2ddd94854a34a2533105f7bc08884c6e38-dirty
author bebatut
date Wed, 27 Jan 2016 02:50:51 -0500
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:14fd6f3b0898
1 #!/usr/bin/python
2 # -*- coding: utf-8 -*-
3
4 import sys
5 import os
6 import argparse
7
8 def readfile(filepath):
9 content = []
10 with open(filepath, 'r') as open_file:
11 for row in open_file.readlines():
12 content.append(row[:-1].split(" "))
13 return content
14
15 def compare_content(expected, observed, comparison):
16 if len(expected) != len(observed):
17 string = comparison + ': '
18 string += 'difference in line number\n'
19 string += '\t\texpected:' + str(len(expected)) + '\n'
20 string += '\t\tobserved:' + str(len(observed)) + '\n'
21 raise ValueError(string)
22
23 for i in range(len(expected)):
24 if expected[i] != observed[i]:
25 string = comparison + ': '
26 string += 'difference in line ' + str(i) + '\n'
27 string += '\t' + ' '.join(expected[i]) + '\n'
28 string += '\t' + ' '.join(observed[i]) + '\n'
29 raise ValueError(string)
30
31 def test_file(filepath):
32 if not os.path.exists(filepath):
33 string = os.path.basename(__file__) + ':' + filepath
34 string += ' does not exist'
35 raise ValueError(string)
36
37 def compare_files(expected_filepath, observed_filepath, comparison):
38 test_file(expected_filepath)
39 test_file(observed_filepath)
40
41 expected_file_content = readfile(expected_filepath)
42 observed_file_content = readfile(observed_filepath)
43 compare_content(expected_file_content, observed_file_content, comparison)
44
45 if __name__ == "__main__":
46 parser = argparse.ArgumentParser()
47 parser.add_argument('--exp_file', required=True)
48 parser.add_argument('--obs_file', required=True)
49 parser.add_argument('--comparison', required=True)
50 args = parser.parse_args()
51
52 compare_files(args.exp_file, args.obs_file, args.comparison)