示例#1
0
def make_vector(arguments):
    check_argument_number('make-vector', arguments, 1, 2)

    # todo: type check this is an integer
    vector_length = arguments[0].value

    vector = Vector(vector_length)

    # If we're given an initialisation value, use it.
    if len(arguments) == 2:
        init_value = arguments[1]
        for i in range(vector_length):
            vector[i] = init_value
    
    return vector
示例#2
0
 def test_vector_fill(self):
     program = "(let ((v (make-vector 1))) (vector-fill! v 5) v)"
     self.assertEvaluatesAs(
         program,
         Vector.from_list([Integer(5)]))
示例#3
0
 def test_list_to_vector(self):
     program = "(list->vector (list 1 2))"
     self.assertEvaluatesAs(
         program,
         Vector.from_list([Integer(1), Integer(2)]))
示例#4
0
 def test_vector(self):
     program = "(vector 1 2)"
     self.assertEvaluatesAs(
         program,
         Vector.from_list([Integer(1), Integer(2)]))
示例#5
0
 def test_make_vector_with_init(self):
     program = '(make-vector 1 3)'
     self.assertEvaluatesAs(program, Vector.from_list([Integer(3)]))
示例#6
0
 def test_vector_fill(self):
     program = "(let ((v (make-vector 1))) (vector-fill! v 5) v)"
     self.assertEvaluatesAs(program, Vector.from_list([Integer(5)]))
示例#7
0
 def test_list_to_vector(self):
     program = "(list->vector (list 1 2))"
     self.assertEvaluatesAs(program,
                            Vector.from_list([Integer(1),
                                              Integer(2)]))
示例#8
0
 def test_vector(self):
     program = "(vector 1 2)"
     self.assertEvaluatesAs(program,
                            Vector.from_list([Integer(1),
                                              Integer(2)]))
示例#9
0
 def test_make_vector_with_init(self):
     program = '(make-vector 1 3)'
     self.assertEvaluatesAs(program, Vector.from_list([Integer(3)]))
示例#10
0
    def test_make_vector(self):
        program = '(make-vector 0)'
        self.assertEvaluatesAs(program, Vector(0))

        program = '(make-vector 2)'
        self.assertEvaluatesAs(program, Vector(2))