self.orphan_count (),
self.geometric_distance ())
+def scheme_float (s) :
+ if 'nan' not in s :
+ return float(s)
+ return float(s.split('.')[0])
+
def read_signature_file (name):
print 'reading', name
entries = open (name).read ().split ('\n')
def string_to_tup (s):
- return tuple (map (float, s.split (' ')))
+ return tuple (map (scheme_float, s.split (' ')))
def string_to_entry (s):
fields = s.split('@')
def print_results (self, threshold):
self.write_text_result_page ('', threshold)
-def compare_trees (dir1, dir2, dest_dir, threshold):
+def compare_tree_pairs (tree_pairs, dest_dir, threshold):
data = ComparisonData ()
- data.compare_trees (dir1, dir2)
+ for dir1, dir2 in tree_pairs:
+ data.compare_trees (dir1, dir2)
data.read_sources ()
-
data.print_results (threshold)
if os.path.isdir (dest_dir):
os.environ["HOME"] + "/src/lilypond-stable/scripts/build/", '*.py')
-def test_compare_trees ():
+def test_compare_tree_pairs ():
system ('rm -rf dir1 dir2')
system ('mkdir dir1 dir2')
system ('cp 20{-*.signature,.ly,.png,.eps,.log,.profile} dir1')
system ('cp 19multipage.log dir1/log-differ.log')
system ('cp 19multipage.log dir2/log-differ.log && echo different >> dir2/log-differ.log && echo different >> dir2/log-differ.log')
- compare_trees ('dir1', 'dir2', 'compare-dir1dir2', options.threshold)
+ compare_tree_pairs (['dir1', 'dir2'], 'compare-dir1dir2', options.threshold)
def test_basic_compare ():
if do_clean:
test_basic_compare ()
- test_compare_trees ()
+ test_compare_tree_pairs ()
################################################################
#
def main ():
p = optparse.OptionParser ("output-distance - compare LilyPond formatting runs")
- p.usage = 'output-distance.py [options] tree1 tree2'
+ p.usage = 'output-distance.py [options] tree1 tree2 [tree3 tree4]...'
p.add_option ('', '--test-self',
dest="run_test",
run_tests ()
sys.exit (0)
- if len (args) != 2:
- p.print_usage()
+ if len (args) % 2:
+ p.print_usage ()
sys.exit (2)
- name = options.output_dir
- if not name:
- name = args[0].replace ('/', '')
- name = os.path.join (args[1], 'compare-' + shorten_string (name))
+ out = options.output_dir
+ if not out:
+ out = args[0].replace ('/', '')
+ out = os.path.join (args[1], 'compare-' + shorten_string (out))
- compare_trees (args[0], args[1], name, options.threshold)
+ compare_tree_pairs (zip (args[0::2], args[1::2]), out, options.threshold)
if __name__ == '__main__':
- main()
+ main ()