def run(f1_n,f2_n): t1 = codeParser(f1_n) t2 = codeParser(f2_n) vars1 = t1.get_varTypes() vars2 = t2.get_varTypes() t = aligner(vars1,vars2) return t.align()
def calculate_cost(f_test,f_query): #print f_test #print f_query cost = 1000000 try: t = aligner(f_test,f_query) cost = t.methodSignature() except: pass #if cost == 0: #print f_test #print cost return cost
def work(device, queue_in, queue_out): config = tf.ConfigProto() config.allow_soft_placement = True config.gpu_options.allow_growth = True session = tf.Session(config=config) extractor_ = extractor(session, [device], 1) aligner_ = aligner(session, [device], 1) for image in queue_in: image = np.stack([image], axis=0) image = aligner_.align(image) features = extractor_.extract(image) #print(len(features)) for feature in features: queue_out.append(feature)
def calculate_cost(f_test,f_originals,bool_correct): ''' Iterate through all training code and return min cost to correct or max cost to incorrect ''' cost_list = list() for original in f_originals: original = '../'+original.replace('\n','') if original != '../': t = aligner(f_test,original) try: cost_list.append(t.methodSignature()) except (IndexError,ZeroDivisionError) as e: pass # we want to return the max cost for incorrext and the min cost for correct if len(cost_list) > 0: if bool_correct: return min(cost_list) else: return max(cost_list) else: return 'N/A'
#! /usr/local/bin/python from codeParser import codeParser from aligner import aligner f1_n = '../raw_code/test_1' f2_n = '../raw_code/test_2' #f1_n = '../../code_corpus/regular_code/XmlResponsesSaxParser.java_30_code_mod' t1 = codeParser(f1_n) t2 = codeParser(f2_n) vars1 = t1.get_varTypes() vars2 = t2.get_varTypes() t = aligner(vars1,vars2) print t.align()
#! /usr/local/bin/python from aligner import aligner f1 = {'otherVar':'otherType','stringOne': 'String', 'boolOne ': 'boolean', 'intOne': 'int', 'otherIntOne':'int'} f2 = {'intTwo': 'int', 'boolTwo ': 'boolean', 'stringTwo': 'String'} f3 = {'somethingThree':'notAnInt', 'somthingElseThree':'boolean'} t = aligner(f2,f1,'','') print t.align()
import os import random parser = argparse.ArgumentParser() parser.add_argument('--devices', default='/gpu:0') parser.add_argument('--extractor_batch_size', default=256, type=int) parser.add_argument('--aligner_batch_size', default=64, type=int) args = parser.parse_args() args.devices = args.devices.split(',') config = tf.ConfigProto() config.allow_soft_placement = False config.gpu_options.allow_growth = True session = tf.Session(config=config) aligner = aligner(session, args.devices, args.aligner_batch_size) extractor = extractor(session, args.devices, args.extractor_batch_size) def batch_process(f, x, s): results = [] for i in range(0, len(x), s): x_ = x[i:i + s] if len(x_) != s: x_ += [x_[0]] * (s - len(x_)) y_ = f(x_) for j in y_: if len(results) < len(x): results.append(j) print(len(results), 'done') return results
#! /usr/local/bin/python from codeParser import codeParser from aligner import aligner f1_n = '../../code_corpus/search_code/sort_merged_1.java' f2_n = '../../code_corpus/search_code/sort_merged_2.java' t = aligner(f1_n,f2_n) print "Matching lines: " + str(t.matching_lines()) print "Measure Var Numbers: " + str(t.measure_var_numbers()) print '-------------------------------------------------------' print t.print_alignment() #print t.fuzzy_matching_lines() print t.variable_replacement() print "Cost: " + str(t.methodSignature())