Example #1
0
    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 )
Example #2
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" )