예제 #1
0
def submit(name, language, program, filename, tests, time_limit):
    n = len(tests)
    testlist = []
    program_file = file('files/temp/programs/' + filename,
                        'w+b')  #Temp. File for the program
    program_file.write(program)
    for i in range(n):
        input_file = file('files/temp/inputs/input_file-%d.in' % (i + 1),
                          'w+b')
        output_file = file('files/temp/outputs/output_file-%d.out' % (i + 1),
                           'w+b')
        input_file.write(
            tests[i]['input']
        )  #Writing data from the list of input/output files supplied
        output_file.write(tests[i]['output'])  #to temp files and
        testlist.append({
            'input': get_path(input_file),
            'output': get_path(output_file)
        })  #Getting their path to be supplied to evaluator.
        input_file.close()
        output_file.close()
    program_file.close()
    result = evaluate.evaluate(language, get_path(program_file), testlist,
                               time_limit)
    result['successful'] = True
    result['marks'] = 0
    if not result['status'] == 'errors':
        for (i, case) in enumerate(result['status']):
            if case == 'correct':
                test = tests[i]
                time_taken = result['executiontime'][i]
                if time_taken > test['time_limit_soft']:
                    exceed_time = time_taken - test['time_limit_soft']
                    max_exceed_time = test['time_limit'] - test[
                        'time_limit_soft']
                    result['marks'] += round(
                        test['marks'] *
                        ((max_exceed_time - exceed_time) / max_exceed_time), 2)
                else:
                    result['marks'] += test['marks']
            else:
                result['successful'] = False
                result['error'] = case or 'Runtime Exceeded'
                break
    else:
        result['error'] = 'Compilation Error'
        result['successful'] = False

    if not result['successful']:
        result['marks'] = 0
    return result
예제 #2
0
def submit(name, language,program, tests):
##
    n = len(tests)
    testlist = []
    timelimit = 15
    program_file = file('files/program.'+language, 'w+b')    #Temp. File for the program
    program_file.write(program)
    for i in range(n):
        input_file = file('files/input_file-%d.in' %(i+1), 'w+b')
        output_file = file('files/output_file-%d.out' %(i+1), 'w+b')
        input_file.write(tests[i]['input'])                                            #Writing data from the list of input/output files supplied
        output_file.write(tests[i]['output'])                                          #to temp files and
        testlist.append({'input':get_path(input_file),'output':get_path(output_file)})    #Getting their path to be supplied to evaluator.
        input_file.close()
        output_file.close()
    program_file.close()
    result =  evaluate.evaluate('C',get_path(program_file), testlist, timelimit)
    return result
예제 #3
0
파일: tasks.py 프로젝트: crodjer/codebhaat
def submit(name, language,program,filename, tests, time_limit):
    n = len(tests)
    testlist = []
    print filename
    program_file = file('files/temp/programs/'+filename, 'w+b')    #Temp. File for the program    
    program_file.write(program)
    for i in range(n):
        input_file = file('files/temp/inputs/input_file-%d.in' %(i+1), 'w+b')
        output_file = file('files/temp/outputs/output_file-%d.out' %(i+1), 'w+b')
        input_file.write(tests[i]['input'])                                            #Writing data from the list of input/output files supplied
        output_file.write(tests[i]['output'])                                          #to temp files and
        testlist.append({'input':get_path(input_file),'output':get_path(output_file)})    #Getting their path to be supplied to evaluator.
        input_file.close()
        output_file.close()
    program_file.close()
    result =  evaluate.evaluate(language, get_path(program_file), testlist, time_limit)
    result['successful'] = True
    result['marks'] = 0    
    if not result['status']=='errors':
        for (i, case) in enumerate(result['status']):
            if case == 'correct':
                test = tests[i]
                time_taken = result['executiontime'][i]
                if time_taken > test['time_limit_soft']:                
                    exceed_time = time_taken - test['time_limit_soft']
                    max_exceed_time = test['time_limit'] - test['time_limit_soft']                
                    result['marks'] += round(test['marks']*((max_exceed_time - exceed_time)/max_exceed_time), 2)
                else:
                    result['marks'] += test['marks']
            else:            
                result['successful'] = False
                result['error']=case or 'Runtime Exceeded'
                break
    else:
        result['error'] = 'Compilation Error'
        result['successful'] = False
        
    if not result['successful']:        
        result['marks'] = 0
    return result
예제 #4
0
    'RPDQ': SGDClassifier(learning_rate='constant',
                          class_weight={-1: 1, 1: 1},
                          query_strategy='RPDQ',
                          query_weight=55),
    'AQ': SGDClassifier(learning_rate='constant',
                        class_weight={-1: 1, 1: 1},
                        query_strategy='AQ',
                        query_weight={-1: 40, 1: 60}),
    'BAAQ': SGDClassifier(learning_rate='constant',
                          class_weight={-1: 1, 1: 1},
                          query_strategy='BAAQ',
                          query_beta=1),
    'OA3': OA3Classifier(eta=0.1,
                         class_weight={-1: 0.1, 1: 0.9},
                         query_weight={-1: 10, 1: 40},
                         gamma=1),
    'OACSL': OACSL(base_model=SGDClassifier(learning_rate='constant',
                                            eta0=0.1,
                                            query_strategy='BAAQ',
                                            query_beta=1),
                   measurement=measurement,
                   window_size=10,
                   eta_rho=0.1),
}

evaluate(models=imbalance_budget_models,
         data_set_path="..\\data\\ibcdhps",
         log_save_path="..\\log",
         measurement=measurement,
         test_times=1)