Пример #1
0
 def test_parse_scad_callables(self):
     test_str = (
         ""
         "module hex (width=10, height=10,    \n"
         "            flats= true, center=false){}\n"
         "function righty (angle=90) = 1;\n"
         "function lefty(avar) = 2;\n"
         "module more(a=[something, other]) {}\n"
         "module pyramid(side=10, height=-1, square=false, centerHorizontal=true, centerVertical=false){}\n"
         "module no_comments(arg=10,   //test comment\n"
         "other_arg=2, /* some extra comments\n"
         "on empty lines */\n"
         "last_arg=4){}\n"
         "module float_arg(arg=1.0){}\n")
     expected = [{
         'args': [],
         'name': 'hex',
         'kwargs': ['width', 'height', 'flats', 'center']
     }, {
         'args': [],
         'name': 'righty',
         'kwargs': ['angle']
     }, {
         'args': ['avar'],
         'name': 'lefty',
         'kwargs': []
     }, {
         'args': [],
         'name': 'more',
         'kwargs': ['a']
     }, {
         'args': [],
         'name':
         'pyramid',
         'kwargs':
         ['side', 'height', 'square', 'centerHorizontal', 'centerVertical']
     }, {
         'args': [],
         'name': 'no_comments',
         'kwargs': ['arg', 'other_arg', 'last_arg']
     }, {
         'args': [],
         'name': 'float_arg',
         'kwargs': ['arg']
     }]
     from solid.solidpython import parse_scad_callables
     actual = parse_scad_callables(test_str)
     self.assertEqual(expected, actual)
Пример #2
0
    def test_parse_scad_callables(self):
        test_str = """
                    module hex (width=10, height=10,    
                                flats= true, center=false){}
                    function righty (angle=90) = 1;
                    function lefty(avar) = 2;
                    module more(a=[something, other]) {}
                    module pyramid(side=10, height=-1, square=false, centerHorizontal=true, centerVertical=false){}
                    module no_comments(arg=10,   //test comment
                    other_arg=2, /* some extra comments
                    on empty lines */
                    last_arg=4){}
                    module float_arg(arg=1.0){}
                    module arg_var(var5){}
                    module kwarg_var(var2=78){}
                    module var_true(var_true = true){}
                    module var_false(var_false = false){}
                    module var_int(var_int = 5){}
                    module var_negative(var_negative = -5){}
                    module var_float(var_float = 5.5){}
                    module var_number(var_number = -5e89){}
                    module var_empty_vector(var_empty_vector = []){}
                    module var_simple_string(var_simple_string = "simple string"){}
                    module var_complex_string(var_complex_string = "a \"complex\"\tstring with a\\"){}
                    module var_vector(var_vector = [5454445, 565, [44545]]){}
                    module var_complex_vector(var_complex_vector = [545 + 4445, 565, [cos(75) + len("yes", 45)]]){}
                    module var_vector(var_vector = [5, 6, "string\twith\ttab"]){}
                    module var_range(var_range = [0:10e10]){}
                    module var_range_step(var_range_step = [-10:0.5:10]){}
                    module var_with_arithmetic(var_with_arithmetic = 8 * 9 - 1 + 89 / 15){}
                    module var_with_parentheses(var_with_parentheses = 8 * ((9 - 1) + 89) / 15){}
                    module var_with_functions(var_with_functions = abs(min(chamferHeight2, 0)) */-+ 1){}
                    module var_with_conditionnal_assignment(var_with_conditionnal_assignment = mytest ? 45 : yop){}
                   """
        expected = [{
            'name': 'hex',
            'args': [],
            'kwargs': ['width', 'height', 'flats', 'center']
        }, {
            'name': 'righty',
            'args': [],
            'kwargs': ['angle']
        }, {
            'name': 'lefty',
            'args': ['avar'],
            'kwargs': []
        }, {
            'name': 'more',
            'args': [],
            'kwargs': ['a']
        }, {
            'name':
            'pyramid',
            'args': [],
            'kwargs':
            ['side', 'height', 'square', 'centerHorizontal', 'centerVertical']
        }, {
            'name': 'no_comments',
            'args': [],
            'kwargs': ['arg', 'other_arg', 'last_arg']
        }, {
            'name': 'float_arg',
            'args': [],
            'kwargs': ['arg']
        }, {
            'name': 'arg_var',
            'args': ['var5'],
            'kwargs': []
        }, {
            'name': 'kwarg_var',
            'args': [],
            'kwargs': ['var2']
        }, {
            'name': 'var_true',
            'args': [],
            'kwargs': ['var_true']
        }, {
            'name': 'var_false',
            'args': [],
            'kwargs': ['var_false']
        }, {
            'name': 'var_int',
            'args': [],
            'kwargs': ['var_int']
        }, {
            'name': 'var_negative',
            'args': [],
            'kwargs': ['var_negative']
        }, {
            'name': 'var_float',
            'args': [],
            'kwargs': ['var_float']
        }, {
            'name': 'var_number',
            'args': [],
            'kwargs': ['var_number']
        }, {
            'name': 'var_empty_vector',
            'args': [],
            'kwargs': ['var_empty_vector']
        }, {
            'name': 'var_simple_string',
            'args': [],
            'kwargs': ['var_simple_string']
        }, {
            'name': 'var_complex_string',
            'args': [],
            'kwargs': ['var_complex_string']
        }, {
            'name': 'var_vector',
            'args': [],
            'kwargs': ['var_vector']
        }, {
            'name': 'var_complex_vector',
            'args': [],
            'kwargs': ['var_complex_vector']
        }, {
            'name': 'var_vector',
            'args': [],
            'kwargs': ['var_vector']
        }, {
            'name': 'var_range',
            'args': [],
            'kwargs': ['var_range']
        }, {
            'name': 'var_range_step',
            'args': [],
            'kwargs': ['var_range_step']
        }, {
            'name': 'var_with_arithmetic',
            'args': [],
            'kwargs': ['var_with_arithmetic']
        }, {
            'name': 'var_with_parentheses',
            'args': [],
            'kwargs': ['var_with_parentheses']
        }, {
            'name': 'var_with_functions',
            'args': [],
            'kwargs': ['var_with_functions']
        }, {
            'name': 'var_with_conditionnal_assignment',
            'args': [],
            'kwargs': ['var_with_conditionnal_assignment']
        }]

        from solid.solidpython import parse_scad_callables
        actual = parse_scad_callables(test_str)
        self.assertEqual(expected, actual)
Пример #3
0
    def test_parse_scad_callables(self):
        test_str =  """
                    module hex (width=10, height=10,    
                                flats= true, center=false){}
                    function righty (angle=90) = 1;
                    function lefty(avar) = 2;
                    module more(a=[something, other]) {}
                    module pyramid(side=10, height=-1, square=false, centerHorizontal=true, centerVertical=false){}
                    module no_comments(arg=10,   //test comment
                    other_arg=2, /* some extra comments
                    on empty lines */
                    last_arg=4){}
                    module float_arg(arg=1.0){}
                    module arg_var(var5){}
                    module kwarg_var(var2=78){}
                    module var_true(var_true = true){}
                    module var_false(var_false = false){}
                    module var_int(var_int = 5){}
                    module var_negative(var_negative = -5){}
                    module var_float(var_float = 5.5){}
                    module var_number(var_number = -5e89){}
                    module var_empty_vector(var_empty_vector = []){}
                    module var_simple_string(var_simple_string = "simple string"){}
                    module var_complex_string(var_complex_string = "a \"complex\"\tstring with a\\"){}
                    module var_vector(var_vector = [5454445, 565, [44545]]){}
                    module var_complex_vector(var_complex_vector = [545 + 4445, 565, [cos(75) + len("yes", 45)]]){}
                    module var_vector(var_vector = [5, 6, "string\twith\ttab"]){}
                    module var_range(var_range = [0:10e10]){}
                    module var_range_step(var_range_step = [-10:0.5:10]){}
                    module var_with_arithmetic(var_with_arithmetic = 8 * 9 - 1 + 89 / 15){}
                    module var_with_parentheses(var_with_parentheses = 8 * ((9 - 1) + 89) / 15){}
                    module var_with_functions(var_with_functions = abs(min(chamferHeight2, 0)) */-+ 1){}
                    module var_with_conditionnal_assignment(var_with_conditionnal_assignment = mytest ? 45 : yop){}
                   """ 
        expected = [
            {'name': 'hex', 'args': [], 'kwargs': ['width', 'height', 'flats', 'center']}, 
            {'name': 'righty', 'args': [], 'kwargs': ['angle']}, 
            {'name': 'lefty', 'args': ['avar'], 'kwargs': []}, 
            {'name': 'more', 'args': [], 'kwargs': ['a']}, 
            {'name': 'pyramid', 'args': [], 'kwargs': ['side', 'height', 'square', 'centerHorizontal', 'centerVertical']}, 
            {'name': 'no_comments', 'args': [], 'kwargs': ['arg', 'other_arg', 'last_arg']}, 
            {'name': 'float_arg', 'args': [], 'kwargs': ['arg']}, 
            {'name': 'arg_var', 'args': ['var5'], 'kwargs': []}, 
            {'name': 'kwarg_var', 'args': [], 'kwargs': ['var2']}, 
            {'name': 'var_true', 'args': [], 'kwargs': ['var_true']}, 
            {'name': 'var_false', 'args': [],'kwargs': ['var_false']}, 
            {'name': 'var_int', 'args': [], 'kwargs': ['var_int']}, 
            {'name': 'var_negative', 'args': [], 'kwargs': ['var_negative']}, 
            {'name': 'var_float', 'args': [], 'kwargs': ['var_float']}, 
            {'name': 'var_number', 'args': [], 'kwargs': ['var_number']}, 
            {'name': 'var_empty_vector', 'args': [], 'kwargs': ['var_empty_vector']}, 
            {'name': 'var_simple_string', 'args': [], 'kwargs': ['var_simple_string']}, 
            {'name': 'var_complex_string', 'args': [], 'kwargs': ['var_complex_string']}, 
            {'name': 'var_vector', 'args': [], 'kwargs': ['var_vector']}, 
            {'name': 'var_complex_vector', 'args': [], 'kwargs': ['var_complex_vector']}, 
            {'name': 'var_vector', 'args': [], 'kwargs': ['var_vector']}, 
            {'name': 'var_range', 'args': [], 'kwargs': ['var_range']}, 
            {'name': 'var_range_step', 'args': [], 'kwargs': ['var_range_step']}, 
            {'name': 'var_with_arithmetic', 'args': [], 'kwargs': ['var_with_arithmetic']}, 
            {'name': 'var_with_parentheses', 'args': [], 'kwargs': ['var_with_parentheses']}, 
            {'name': 'var_with_functions', 'args': [], 'kwargs': ['var_with_functions']}, 
            {'name': 'var_with_conditionnal_assignment', 'args': [], 'kwargs': ['var_with_conditionnal_assignment']}
        ]

        from solid.solidpython import parse_scad_callables
        actual = parse_scad_callables(test_str)
        self.assertEqual(expected, actual)