def test_copy_elimination(): x = np.array([[1, 2, 3], [4, 5, 6]]) expect(nested_add1, [x], x + 1.0) typed_fn = parakeet.typed_repr(nested_add1, [x]) lowered = lowering.apply(typed_fn) n_loops = count_loops(lowered) n_expected = 3 if config.opt_loop_unrolling else 2 assert n_loops <= n_expected, \ "Too many loops generated! Expected at most 2, got %d" % n_loops
def test_copy_elimination(): x = np.array([[1,2,3],[4,5,6]]) expect(nested_add1, [x], x + 1.0) typed_fn = parakeet.typed_repr(nested_add1, [x]) lowered = lowering.apply(typed_fn) n_loops = count_loops(lowered) n_expected = 3 if config.opt_loop_unrolling else 2 assert n_loops <= n_expected, \ "Too many loops generated! Expected at most 2, got %d" % n_loops
def test_mutable_array(): bool_vec = np.array([True, False]) int_vec = np.array([1,2]) typed, _, = specialize(f, [bool_vec, int_vec]) mutable_types = mutability_analysis.find_mutable_types(typed) int_array_t = make_array_type(Int64, 1) bool_array_t = make_array_type(Bool, 1) assert int_array_t not in mutable_types, \ "Didn't expect %s in mutable_types %s" % (int_array_t, mutable_types) assert bool_array_t in mutable_types, \ "Expected %s in mutable_types %s" % (bool_array_t, mutable_types) lowered = lowering.apply(typed) mutable_types = mutability_analysis.find_mutable_types(lowered) ptr_bool_t = ptr_type(Bool) ptr_int_t = ptr_type(Int64) assert ptr_int_t not in mutable_types, \ "Didn't expect %s in lowered mutable types %s" % \ (ptr_int_t, mutable_types) assert ptr_bool_t in mutable_types, \ "Expected %s in lowered mutable_types %s" % (ptr_bool_t, mutable_types)
def test_mutable_array(): bool_vec = np.array([True, False]) int_vec = np.array([1, 2]) typed, _, = specialize(f, [bool_vec, int_vec]) mutable_types = mutability_analysis.find_mutable_types(typed) int_array_t = make_array_type(Int64, 1) bool_array_t = make_array_type(Bool, 1) assert int_array_t not in mutable_types, \ "Didn't expect %s in mutable_types %s" % (int_array_t, mutable_types) assert bool_array_t in mutable_types, \ "Expected %s in mutable_types %s" % (bool_array_t, mutable_types) lowered = lowering.apply(typed) mutable_types = mutability_analysis.find_mutable_types(lowered) ptr_bool_t = ptr_type(Bool) ptr_int_t = ptr_type(Int64) assert ptr_int_t not in mutable_types, \ "Didn't expect %s in lowered mutable types %s" % \ (ptr_int_t, mutable_types) assert ptr_bool_t in mutable_types, \ "Expected %s in lowered mutable_types %s" % (ptr_bool_t, mutable_types)