@extern def output_int32(x: int32): ... @extern def output_float64(x: float): ... def consume_ndarray_1(n: ndarray[float, Literal[1]]): pass def test_ndarray_ctor(): n: ndarray[float, Literal[1]] = np_ndarray([1]) consume_ndarray_1(n) def test_ndarray_empty(): n: ndarray[float, 1] = np_empty([1]) consume_ndarray_1(n) def test_ndarray_zeros(): n: ndarray[float, 1] = np_zeros([1]) output_float64(n[0]) def test_ndarray_ones(): n: ndarray[float, 1] = np_ones([1]) output_float64(n[0]) def test_ndarray_full(): n_float: ndarray[float, 1] = np_full([1], 2.0) output_float64(n_float[0]) n_i32: ndarray[int32, 1] = np_full([1], 2) output_int32(n_i32[0]) def test_ndarray_eye(): n: ndarray[float, 2] = np_eye(2) n0: ndarray[float, 1] = n[0] v: float = n0[0] output_float64(v) def test_ndarray_identity(): n: ndarray[float, 2] = np_identity(2) output_float64(n[0][0]) output_float64(n[0][1]) output_float64(n[1][0]) output_float64(n[1][1]) def test_ndarray_fill(): n: ndarray[float, 2] = np_empty([2, 2]) n.fill(1.0) output_float64(n[0][0]) output_float64(n[0][1]) output_float64(n[1][0]) output_float64(n[1][1]) def test_ndarray_copy(): x: ndarray[float, 2] = np_identity(2) y = x.copy() x.fill(0.0) output_float64(x[0][0]) output_float64(x[0][1]) output_float64(x[1][0]) output_float64(x[1][1]) output_float64(y[0][0]) output_float64(y[0][1]) output_float64(y[1][0]) output_float64(y[1][1]) def run() -> int32: test_ndarray_ctor() test_ndarray_empty() test_ndarray_zeros() test_ndarray_ones() test_ndarray_full() test_ndarray_eye() test_ndarray_identity() test_ndarray_fill() test_ndarray_copy() return 0