Ejemplo n.º 1
0
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()
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
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'
Ejemplo n.º 5
0
#! /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()
Ejemplo n.º 6
0
#! /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()
Ejemplo n.º 7
0
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())