['$y0','int'],['$y1','int'],['$y2','int'],['$y3','int'],['$y4','int'], ] group_templates = [ [ 'arithmetic_progression_a_h%i_', [0,1, 0,1,2,3,4] ], [ 'arithmetic_progression_b_h%i_', [0,5, 0,5,10,15,20] ], [ 'arithmetic_progression_c_h%i_', [7,3, 7,10,13,16,19] ], ] print '***** expected number of questions:', \ len(group_templates) * (generate_util.n_c_k(7,1) + generate_util.n_c_k(7,2)) group_list = [ ] for g in group_templates: for h in [1,2]: group_list.append([g[0]%h] + generate_util.generalize(g[1],h)) global_code_template = '''\ d #include <stdio.h> x #include <stdio.h> dx ''' main_code_template = '''\ dx int a,r,i; dx dx a = $a0; dx r = $r; dx for (i = 0; i < 5; i++) { dx printf("%d\\n",a); dx a = a + r;
['$y4', 'int'], ] group_templates = [ ['arithmetic_progression_a_h%i_', [0, 1, 0, 1, 2, 3, 4]], ['arithmetic_progression_b_h%i_', [0, 5, 0, 5, 10, 15, 20]], ['arithmetic_progression_c_h%i_', [7, 3, 7, 10, 13, 16, 19]], ] print '***** expected number of questions:', \ len(group_templates) * (generate_util.nCk(7,1) + generate_util.nCk(7,2)) group_list = [] for g in group_templates: for h in [1, 2]: group_list.append([g[0] % h] + generate_util.generalize(g[1], h)) global_code_template = '''\ d #include <stdio.h> x #include <stdio.h> dx ''' main_code_template = '''\ dx int a,r,i; dx dx a = $a0; dx r = $r; dx for (i = 0; i < 5; i++) { dx printf("%d\\n",a); dx a = a + r;
# cross product of 1 domain actual = generate_util.cross_product([[1,2]]) expected = [[1],[2]] if actual != expected: print 'Error:\n\tactual: %s\n\texpected: %s' % (str(actual),str(expected)) # cross product of 2 domains actual = generate_util.cross_product([[1,2],[3,4]]) expected = [[1,3],[1,4],[2,3],[2,4]] if actual != expected: print 'Error:\n\tactual: %s\n\texpected: %s' % (str(actual),str(expected)) # ********** generalize # None count is 0 actual = generate_util.generalize([1,2,3],0) expected = [[1,2,3]] if actual != expected: print 'Error:\n\tactual: %s\n\texpected: %s' % (str(actual),str(expected)) # None count is equal to list length actual = generate_util.generalize([1,2,3],3) expected = [[None,None,None]] if actual != expected: print 'Error:\n\tactual: %s\n\texpected: %s' % (str(actual),str(expected)) # None count is not equal to list length actual = generate_util.generalize([1,2,3],1) expected = [[None,2,3],[1,None,3],[1,2,None]] if actual != expected: print 'Error:\n\tactual: %s\n\texpected: %s' % (str(actual),str(expected))
import generate_util question_type = 'input_output' source_language = 'C' hotspot_declarations = [ ['$a', 'int'], ['$b', 'int'], ['$c', 'int'], ['$y', 'int'], ] group_list = [ ['min_three_io_h1_'] + generate_util.generalize([1,2,3,1],1), ['min_three_io_h2_'] + generate_util.generalize([1,2,3,1],2), ['min_three_io_cp_'] + generate_util.cross_product_sublist \ ( [ [1,2,5],[3,4,7],[5,6,9],None ], [0,1,2]) ] global_code_template = '''\ d #include <stdio.h> x #include <stdio.h> dx ''' main_code_template = '''\ dx int a,b,c; dx dx a = $a;
import generate_util question_type = "input_output" source_language = "C" hotspot_declarations = [["$a", "int"], ["$b", "int"], ["$c", "int"], ["$y", "int"]] group_list = [ ["min_three_io_h1_"] + generate_util.generalize([1, 2, 3, 1], 1), ["min_three_io_h2_"] + generate_util.generalize([1, 2, 3, 1], 2), ["min_three_io_cp_"] + generate_util.cross_product_sublist([[1, 2, 5], [3, 4, 7], [5, 6, 9], None], [0, 1, 2]), ] global_code_template = """\ d #include <stdio.h> x #include <stdio.h> dx """ main_code_template = """\ dx int a,b,c; dx dx a = $a; dx b = $b; dx c = $c; dx dx if (a < b) { dx if (a < c) { dx printf("%d\\n",a); dx } else { dx printf("%d\\n",c);
# cross product of 1 domain actual = generate_util.cross_product([[1, 2]]) expected = [[1], [2]] if actual != expected: print 'Error:\n\tactual: %s\n\texpected: %s' % (str(actual), str(expected)) # cross product of 2 domains actual = generate_util.cross_product([[1, 2], [3, 4]]) expected = [[1, 3], [1, 4], [2, 3], [2, 4]] if actual != expected: print 'Error:\n\tactual: %s\n\texpected: %s' % (str(actual), str(expected)) # ********** generalize # None count is 0 actual = generate_util.generalize([1, 2, 3], 0) expected = [[1, 2, 3]] if actual != expected: print 'Error:\n\tactual: %s\n\texpected: %s' % (str(actual), str(expected)) # None count is equal to list length actual = generate_util.generalize([1, 2, 3], 3) expected = [[None, None, None]] if actual != expected: print 'Error:\n\tactual: %s\n\texpected: %s' % (str(actual), str(expected)) # None count is not equal to list length actual = generate_util.generalize([1, 2, 3], 1) expected = [[None, 2, 3], [1, None, 3], [1, 2, None]] if actual != expected: print 'Error:\n\tactual: %s\n\texpected: %s' % (str(actual), str(expected))