def test_process_cf_match( self ): # TEI cf_match = ["tei:section"] report = {} report['result_forest_0'] = [ self.tei_data1 ] report['result_parse_tree_0'] = [] report['pos2types0'] = [] report['pos2refs0'] = [] report['result_forest_1'] = [ self.tei_data2 ] report['result_parse_tree_1'] = [] report['pos2types1'] = [] report['pos2refs1'] = [] xudiff = XUDiff() report = xudiff.process_cf_match( cf_match, "", report ) self.assertEqual( len( report['result_parse_tree_0'] ), 2 ) self.assertEqual( len( report['pos2types0'] ), 2 ) self.assertTrue( len( report['pos2types0'][0] ) > 0 ) self.assertTrue( len( report['pos2types0'][1] ) > 0 ) self.assertEqual( len( report['pos2refs0'] ), 2 ) self.assertTrue( len( report['pos2refs0'][0] ) > 0 ) self.assertTrue( len( report['pos2refs0'][1] ) > 0 ) self.assertEqual( len( report['result_parse_tree_1'] ), 2 ) self.assertEqual( len( report['pos2types1'] ), 2 ) self.assertTrue( len( report['pos2types1'][0] ) > 0 ) self.assertTrue( len( report['pos2types1'][1] ) > 0 ) self.assertEqual( len( report['pos2refs1'] ), 2 ) self.assertTrue( len( report['pos2refs1'][0] ) > 0 ) self.assertTrue( len( report['pos2refs1'][1] ) > 0 ) # IOS cf_match = ["ios:config"] report = {} report['result_forest_0'] = [ self.ios_data1 ] report['result_parse_tree_0'] = [] report['pos2types0'] = [] report['pos2refs0'] = [] report['result_forest_1'] = [ self.ios_data1 ] report['result_parse_tree_1'] = [] report['pos2types1'] = [] report['pos2refs1'] = [] xudiff = XUDiff() report = xudiff.process_cf_match( cf_match, "", report ) self.assertEqual( len( report['result_parse_tree_0'] ), 1 ) self.assertEqual( len( report['pos2types0'] ), 1 ) self.assertTrue( len( report['pos2types0'][0] ) > 0 ) self.assertEqual( len( report['pos2refs0'] ), 1 ) self.assertTrue( len( report['pos2refs0'][0] ) > 0 ) self.assertEqual( len( report['result_parse_tree_1'] ), 1 ) self.assertEqual( len( report['pos2types1'] ), 1 ) self.assertTrue( len( report['pos2types1'][0] ) > 0 ) self.assertEqual( len( report['pos2refs1'] ), 1 ) self.assertTrue( len( report['pos2refs1'][0] ) > 0 )
from xutools.tools import XUDiff as XUD import optparse import pprint import sys p = optparse.OptionParser() p.add_option("-c", "--count", dest="count_type" ) (options, args) = p.parse_args() if ( len(args) < 3 ): print "Usage: xudiff [ --count <count_type> ] <xpath> <file1> <file2>" sys.exit(-1) xpath = args[0] file_paths = args[1:] report = XUD.xudiff_main( xpath, file_paths, options.count_type ) # the position of start nodes in T1, T2 i = len(report['l0']) j = len(report['l1']) edit_script = XUD.output_edit_script( i, j, 1, 1, report ) if options.count_type == None: unit = "" else: unit = options.count_type sys.stdout.write("\n" + "Distance: " + str( report['forest_dist'][i,j] ) + " " + unit + "\n" ) sys.stdout.write("\n".join( edit_script ) + "\n" )