code style adjustments

This commit is contained in:
Nicolas Kruse 2025-12-04 18:19:33 +01:00
parent ebb4abc5d3
commit 5daa54fafb
9 changed files with 65 additions and 64 deletions

View File

@ -167,7 +167,7 @@ class stencil_database():
# cache miss: # cache miss:
cache: list[relocation_entry] = [] cache: list[relocation_entry] = []
self._relocation_cache[cache_key] = cache self._relocation_cache[cache_key] = cache
symbol = self.elf.symbols[symbol_name] symbol = self.elf.symbols[symbol_name]
if stencil: if stencil:
start_index, end_index = get_stencil_position(symbol) start_index, end_index = get_stencil_position(symbol)
@ -353,11 +353,11 @@ class stencil_database():
def get_symbol_size(self, name: str) -> int: def get_symbol_size(self, name: str) -> int:
"""Returns the size of a specified symbol name.""" """Returns the size of a specified symbol name."""
return self.elf.symbols[name].fields['st_size'] return self.elf.symbols[name].fields['st_size']
def get_symbol_offset(self, name: str) -> int: def get_symbol_offset(self, name: str) -> int:
"""Returns the offset of a specified symbol in the section.""" """Returns the offset of a specified symbol in the section."""
return self.elf.symbols[name].fields['st_value'] return self.elf.symbols[name].fields['st_value']
def get_symbol_section_index(self, name: str) -> int: def get_symbol_section_index(self, name: str) -> int:
"""Returns the section index for a specified symbol name.""" """Returns the section index for a specified symbol name."""
return self.elf.symbols[name].fields['st_shndx'] return self.elf.symbols[name].fields['st_shndx']
@ -365,7 +365,7 @@ class stencil_database():
def get_section_size(self, index: int) -> int: def get_section_size(self, index: int) -> int:
"""Returns the size of a section specified by index.""" """Returns the size of a section specified by index."""
return self.elf.sections[index].fields['sh_size'] return self.elf.sections[index].fields['sh_size']
def get_section_alignment(self, index: int) -> int: def get_section_alignment(self, index: int) -> int:
"""Returns the required alignment of a section specified by index.""" """Returns the required alignment of a section specified by index."""
return self.elf.sections[index].fields['sh_addralign'] return self.elf.sections[index].fields['sh_addralign']

View File

@ -75,11 +75,11 @@ class Target():
""" """
if isinstance(net, Iterable): if isinstance(net, Iterable):
return [self.read_value(ni) if isinstance(ni, variable) else ni for ni in net] return [self.read_value(ni) if isinstance(ni, variable) else ni for ni in net]
if isinstance(net, float | int): if isinstance(net, float | int):
print(f"Warning: value is not a copypy value") print("Warning: value is not a copypy value")
return net return net
assert isinstance(net, Net), "Variable must be a copapy variable object" assert isinstance(net, Net), "Variable must be a copapy variable object"
assert net in self._variables, f"Variable {net} not found. It might not have been compiled for the target." assert net in self._variables, f"Variable {net} not found. It might not have been compiled for the target."
addr, lengths, var_type = self._variables[net] addr, lengths, var_type = self._variables[net]

View File

@ -1,5 +1,6 @@
from . import variable, vector from . import variable, vector
from ._basic_types import iif, unifloat, TNum from ._basic_types import iif, unifloat
from._helper_types import TNum
from typing import Any, Iterable from typing import Any, Iterable
@ -18,7 +19,7 @@ def _inv_argsort(input_vector: vector[TNum]) -> vector[int]:
def argsort(input_vector: vector[TNum]) -> vector[int]: def argsort(input_vector: vector[TNum]) -> vector[int]:
""" """
Perform an indirect sort. It returns an array of indices that index data Perform an indirect sort. It returns an array of indices that index data
in sorted order. in sorted order.
Args: Args:
@ -61,4 +62,4 @@ def mean(input_vector: vector[Any]) -> unifloat:
Returns: Returns:
unifloat: The mean value of the input vector. unifloat: The mean value of the input vector.
""" """
return input_vector.sum() / len(input_vector) return input_vector.sum() / len(input_vector)

View File

@ -1,6 +1,6 @@
from copapy import variable from copapy import variable
from copapy.backend import Write from copapy.backend import Write
import copapy.backend as cpbe import copapy.backend as cpb
def test_ast_generation(): def test_ast_generation():
@ -33,27 +33,27 @@ def test_ast_generation():
print(out) print(out)
print('-- get_edges:') print('-- get_edges:')
edges = list(cpbe.get_all_dag_edges(out)) edges = list(cpb.get_all_dag_edges(out))
for p in edges: for p in edges:
print('#', p) print('#', p)
print('-- get_ordered_ops:') print('-- get_ordered_ops:')
ordered_ops = list(cpbe.stable_toposort(edges)) ordered_ops = cpb.stable_toposort(edges)
for p in ordered_ops: for p in ordered_ops:
print('#', p) print('#', p)
print('-- get_consts:') print('-- get_consts:')
const_list = cpbe.get_const_nets(ordered_ops) const_list = cpb.get_const_nets(ordered_ops)
for p in const_list: for p in const_list:
print('#', p) print('#', p)
print('-- add_read_ops:') print('-- add_read_ops:')
output_ops = list(cpbe.add_read_ops(ordered_ops)) output_ops = list(cpb.add_read_ops(ordered_ops))
for p in output_ops: for p in output_ops:
print('#', p) print('#', p)
print('-- add_write_ops:') print('-- add_write_ops:')
extended_output_ops = list(cpbe.add_write_ops(output_ops, const_list)) extended_output_ops = list(cpb.add_write_ops(output_ops, const_list))
for p in extended_output_ops: for p in extended_output_ops:
print('#', p) print('#', p)
print('--') print('--')

View File

@ -1,16 +1,16 @@
import time import time
from copapy import variable
from copapy import backend from copapy import backend
from copapy.backend import Write, stencil_db_from_package from copapy.backend import Write, stencil_db_from_package
import copapy.backend as cpbe import copapy.backend as cpb
import copapy as cp import copapy as cp
import copapy._binwrite as binw import copapy._binwrite as binw
from copapy._compiler import get_nets, get_section_layout, get_data_layout from copapy._compiler import get_nets, get_section_layout, get_data_layout
from copapy._compiler import patch_entry, CPConstant, get_aux_func_layout from copapy._compiler import patch_entry, CPConstant, get_aux_func_layout
def test_timing_compiler(): def test_timing_compiler():
t1 = cp.vector([10, 11]*128) + cp.vector(cp.variable(v) for v in range(256)) t1 = cp.vector([10, 11]*128) + cp.vector(cp.variable(v) for v in range(256))
t2 = t1.sum() #t2 = t1.sum()
t3 = cp.vector(cp.variable(1 / (v + 1)) for v in range(256)) t3 = cp.vector(cp.variable(1 / (v + 1)) for v in range(256))
t5 = ((t3 * t1) * 2).magnitude() t5 = ((t3 * t1) * 2).magnitude()
out = [Write(t5)] out = [Write(t5)]
@ -19,7 +19,7 @@ def test_timing_compiler():
print('-- get_edges:') print('-- get_edges:')
t0 = time.time() t0 = time.time()
edges = list(cpbe.get_all_dag_edges(out)) edges = list(cpb.get_all_dag_edges(out))
t1 = time.time() t1 = time.time()
print(f' found {len(edges)} edges') print(f' found {len(edges)} edges')
#for p in edges: #for p in edges:
@ -28,7 +28,7 @@ def test_timing_compiler():
print('-- get_ordered_ops:') print('-- get_ordered_ops:')
t0 = time.time() t0 = time.time()
ordered_ops = list(cpbe.stable_toposort(edges)) ordered_ops = cpb.stable_toposort(edges)
t1 = time.time() t1 = time.time()
print(f' found {len(ordered_ops)} ops') print(f' found {len(ordered_ops)} ops')
#for p in ordered_ops: #for p in ordered_ops:
@ -37,7 +37,7 @@ def test_timing_compiler():
print('-- get_consts:') print('-- get_consts:')
t0 = time.time() t0 = time.time()
const_net_list = cpbe.get_const_nets(ordered_ops) const_net_list = cpb.get_const_nets(ordered_ops)
t1 = time.time() t1 = time.time()
#for p in const_list: #for p in const_list:
# print('#', p) # print('#', p)
@ -45,7 +45,7 @@ def test_timing_compiler():
print('-- add_read_ops:') print('-- add_read_ops:')
t0 = time.time() t0 = time.time()
output_ops = list(cpbe.add_read_ops(ordered_ops)) output_ops = list(cpb.add_read_ops(ordered_ops))
t1 = time.time() t1 = time.time()
#for p in output_ops: #for p in output_ops:
# print('#', p) # print('#', p)
@ -53,7 +53,7 @@ def test_timing_compiler():
print('-- add_write_ops:') print('-- add_write_ops:')
t0 = time.time() t0 = time.time()
extended_output_ops = list(cpbe.add_write_ops(output_ops, const_net_list)) extended_output_ops = list(cpb.add_write_ops(output_ops, const_net_list))
t1 = time.time() t1 = time.time()
#for p in extended_output_ops: #for p in extended_output_ops:
# print('#', p) # print('#', p)

View File

@ -25,7 +25,7 @@ def test_matrix_addition():
m1 = cp.matrix([[1, 2], [3, 4]]) m1 = cp.matrix([[1, 2], [3, 4]])
m2 = cp.matrix([[5, 6], [7, 8]]) m2 = cp.matrix([[5, 6], [7, 8]])
m3 = m1 + m2 m3 = m1 + m2
assert m3[0] == (6, 8) assert m3[0] == (6, 8)
assert m3[1] == (10, 12) assert m3[1] == (10, 12)
@ -34,7 +34,7 @@ def test_matrix_scalar_addition():
"""Test matrix addition with scalar""" """Test matrix addition with scalar"""
m1 = cp.matrix([[1, 2], [3, 4]]) m1 = cp.matrix([[1, 2], [3, 4]])
m2 = m1 + 5 m2 = m1 + 5
assert m2[0] == (6, 7) assert m2[0] == (6, 7)
assert m2[1] == (8, 9) assert m2[1] == (8, 9)
@ -44,7 +44,7 @@ def test_matrix_subtraction():
m1 = cp.matrix([[5, 6], [7, 8]]) m1 = cp.matrix([[5, 6], [7, 8]])
m2 = cp.matrix([[1, 2], [3, 4]]) m2 = cp.matrix([[1, 2], [3, 4]])
m3 = m1 - m2 m3 = m1 - m2
assert m3[0] == (4, 4) assert m3[0] == (4, 4)
assert m3[1] == (4, 4) assert m3[1] == (4, 4)
@ -53,7 +53,7 @@ def test_matrix_scalar_subtraction():
"""Test matrix subtraction with scalar""" """Test matrix subtraction with scalar"""
m1 = cp.matrix([[5, 6], [7, 8]]) m1 = cp.matrix([[5, 6], [7, 8]])
m2 = m1 - 2 m2 = m1 - 2
assert m2[0] == (3, 4) assert m2[0] == (3, 4)
assert m2[1] == (5, 6) assert m2[1] == (5, 6)
@ -62,7 +62,7 @@ def test_matrix_negation():
"""Test matrix negation""" """Test matrix negation"""
m1 = cp.matrix([[1, 2], [3, 4]]) m1 = cp.matrix([[1, 2], [3, 4]])
m2 = -m1 m2 = -m1
assert m2[0] == (-1, -2) assert m2[0] == (-1, -2)
assert m2[1] == (-3, -4) assert m2[1] == (-3, -4)
@ -72,7 +72,7 @@ def test_matrix_element_wise_multiplication():
m1 = cp.matrix([[1, 2], [3, 4]]) m1 = cp.matrix([[1, 2], [3, 4]])
m2 = cp.matrix([[5, 6], [7, 8]]) m2 = cp.matrix([[5, 6], [7, 8]])
m3 = m1 * m2 m3 = m1 * m2
assert m3[0] == (5, 12) assert m3[0] == (5, 12)
assert m3[1] == (21, 32) assert m3[1] == (21, 32)
@ -81,7 +81,7 @@ def test_matrix_scalar_multiplication():
"""Test matrix multiplication with scalar""" """Test matrix multiplication with scalar"""
m1 = cp.matrix([[1, 2], [3, 4]]) m1 = cp.matrix([[1, 2], [3, 4]])
m2 = m1 * 3 m2 = m1 * 3
assert m2[0] == (3, 6) assert m2[0] == (3, 6)
assert m2[1] == (9, 12) assert m2[1] == (9, 12)
@ -91,7 +91,7 @@ def test_matrix_element_wise_division():
m1 = cp.matrix([[6.0, 8.0], [12.0, 16.0]]) m1 = cp.matrix([[6.0, 8.0], [12.0, 16.0]])
m2 = cp.matrix([[2.0, 2.0], [3.0, 4.0]]) m2 = cp.matrix([[2.0, 2.0], [3.0, 4.0]])
m3 = m1 / m2 m3 = m1 / m2
assert m3[0][0] == pytest.approx(3.0) # pyright: ignore[reportUnknownMemberType] assert m3[0][0] == pytest.approx(3.0) # pyright: ignore[reportUnknownMemberType]
assert m3[0][1] == pytest.approx(4.0) # pyright: ignore[reportUnknownMemberType] assert m3[0][1] == pytest.approx(4.0) # pyright: ignore[reportUnknownMemberType]
assert m3[1][0] == pytest.approx(4.0) # pyright: ignore[reportUnknownMemberType] assert m3[1][0] == pytest.approx(4.0) # pyright: ignore[reportUnknownMemberType]
@ -102,7 +102,7 @@ def test_matrix_scalar_division():
"""Test matrix division by scalar""" """Test matrix division by scalar"""
m1 = cp.matrix([[6.0, 8.0], [12.0, 16.0]]) m1 = cp.matrix([[6.0, 8.0], [12.0, 16.0]])
m2 = m1 / 2.0 m2 = m1 / 2.0
assert m2[0] == pytest.approx((3.0, 4.0)) # pyright: ignore[reportUnknownMemberType] assert m2[0] == pytest.approx((3.0, 4.0)) # pyright: ignore[reportUnknownMemberType]
assert m2[1] == pytest.approx((6.0, 8.0)) # pyright: ignore[reportUnknownMemberType] assert m2[1] == pytest.approx((6.0, 8.0)) # pyright: ignore[reportUnknownMemberType]
@ -112,7 +112,7 @@ def test_matrix_vector_multiplication():
m = cp.matrix([[1, 2, 3], [4, 5, 6]]) m = cp.matrix([[1, 2, 3], [4, 5, 6]])
v = cp.vector([7, 8, 9]) v = cp.vector([7, 8, 9])
result = m @ v result = m @ v
assert isinstance(result, cp.vector) assert isinstance(result, cp.vector)
assert len(result.values) == 2 assert len(result.values) == 2
assert result.values[0] == 1*7 + 2*8 + 3*9 assert result.values[0] == 1*7 + 2*8 + 3*9
@ -124,7 +124,7 @@ def test_matrix_matrix_multiplication():
m1 = cp.matrix([[1, 2], [3, 4]]) m1 = cp.matrix([[1, 2], [3, 4]])
m2 = cp.matrix([[5, 6], [7, 8]]) m2 = cp.matrix([[5, 6], [7, 8]])
result = m1 @ m2 result = m1 @ m2
assert isinstance(result, cp.matrix) assert isinstance(result, cp.matrix)
assert result.rows == 2 assert result.rows == 2
assert result.cols == 2 assert result.cols == 2
@ -138,7 +138,7 @@ def test_matrix_transpose():
"""Test matrix transpose""" """Test matrix transpose"""
m = cp.matrix([[1, 2, 3], [4, 5, 6]]) m = cp.matrix([[1, 2, 3], [4, 5, 6]])
mt = m.transpose() mt = m.transpose()
assert mt.rows == 3 assert mt.rows == 3
assert mt.cols == 2 assert mt.cols == 2
assert mt[0] == (1, 4) assert mt[0] == (1, 4)
@ -150,7 +150,7 @@ def test_matrix_transpose_property():
"""Test matrix transpose using .T property""" """Test matrix transpose using .T property"""
m = cp.matrix([[1, 2, 3], [4, 5, 6]]) m = cp.matrix([[1, 2, 3], [4, 5, 6]])
mt = m.T mt = m.T
assert mt.rows == 3 assert mt.rows == 3
assert mt.cols == 2 assert mt.cols == 2
assert mt[0] == (1, 4) assert mt[0] == (1, 4)
@ -160,7 +160,7 @@ def test_matrix_row_access():
"""Test getting a row as a vector""" """Test getting a row as a vector"""
m = cp.matrix([[1, 2, 3], [4, 5, 6]]) m = cp.matrix([[1, 2, 3], [4, 5, 6]])
row0 = m.row(0) row0 = m.row(0)
assert isinstance(row0, cp.vector) assert isinstance(row0, cp.vector)
assert row0.values == (1, 2, 3) assert row0.values == (1, 2, 3)
@ -169,7 +169,7 @@ def test_matrix_col_access():
"""Test getting a column as a vector""" """Test getting a column as a vector"""
m = cp.matrix([[1, 2, 3], [4, 5, 6]]) m = cp.matrix([[1, 2, 3], [4, 5, 6]])
col1 = m.col(1) col1 = m.col(1)
assert isinstance(col1, cp.vector) assert isinstance(col1, cp.vector)
assert col1.values == (2, 5) assert col1.values == (2, 5)
@ -178,7 +178,7 @@ def test_matrix_trace():
"""Test matrix trace (sum of diagonal elements)""" """Test matrix trace (sum of diagonal elements)"""
m = cp.matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) m = cp.matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
trace = m.trace() trace = m.trace()
assert trace == 1 + 5 + 9 assert trace == 1 + 5 + 9
@ -194,7 +194,7 @@ def test_matrix_map():
"""Test mapping a function over matrix elements""" """Test mapping a function over matrix elements"""
m = cp.matrix([[1, 2], [3, 4]]) m = cp.matrix([[1, 2], [3, 4]])
m_doubled = m.map(lambda x: x * 2) m_doubled = m.map(lambda x: x * 2)
assert m_doubled[0] == (2, 4) assert m_doubled[0] == (2, 4)
assert m_doubled[1] == (6, 8) assert m_doubled[1] == (6, 8)
@ -203,7 +203,7 @@ def test_matrix_homogenize():
"""Test homogenizing matrix (converting to all variables)""" """Test homogenizing matrix (converting to all variables)"""
m = cp.matrix([[1, cp.variable(2)], [3, 4]]) m = cp.matrix([[1, cp.variable(2)], [3, 4]])
m_homo = m.homogenize() m_homo = m.homogenize()
for row in m_homo: for row in m_homo:
for elem in row: for elem in row:
assert isinstance(elem, cp.variable) assert isinstance(elem, cp.variable)
@ -212,7 +212,7 @@ def test_matrix_homogenize():
def test_identity_matrix(): def test_identity_matrix():
"""Test identity matrix creation""" """Test identity matrix creation"""
m = cp.identity(3) m = cp.identity(3)
assert m.rows == 3 assert m.rows == 3
assert m.cols == 3 assert m.cols == 3
assert m[0] == (1, 0, 0) assert m[0] == (1, 0, 0)
@ -223,7 +223,7 @@ def test_identity_matrix():
def test_zeros_matrix(): def test_zeros_matrix():
"""Test zeros matrix creation""" """Test zeros matrix creation"""
m = cp.zeros(2, 3) m = cp.zeros(2, 3)
assert m.rows == 2 assert m.rows == 2
assert m.cols == 3 assert m.cols == 3
assert m[0] == (0, 0, 0) assert m[0] == (0, 0, 0)
@ -233,7 +233,7 @@ def test_zeros_matrix():
def test_ones_matrix(): def test_ones_matrix():
"""Test ones matrix creation""" """Test ones matrix creation"""
m = cp.ones(2, 3) m = cp.ones(2, 3)
assert m.rows == 2 assert m.rows == 2
assert m.cols == 3 assert m.cols == 3
assert m[0] == (1, 1, 1) assert m[0] == (1, 1, 1)
@ -244,7 +244,7 @@ def test_diagonal_matrix():
"""Test diagonal matrix creation from vector""" """Test diagonal matrix creation from vector"""
v = cp.vector([1, 2, 3]) v = cp.vector([1, 2, 3])
m = cp.diagonal(v) m = cp.diagonal(v)
assert m.rows == 3 assert m.rows == 3
assert m.cols == 3 assert m.cols == 3
assert m[0] == (1, 0, 0) assert m[0] == (1, 0, 0)
@ -257,17 +257,17 @@ def test_matrix_with_variables_compiled():
m = cp.matrix([[cp.variable(1), 2], [3, cp.variable(4)]]) m = cp.matrix([[cp.variable(1), 2], [3, cp.variable(4)]])
v = cp.vector([cp.variable(5), 6]) v = cp.vector([cp.variable(5), 6])
result = m @ v result = m @ v
# result[0] = 1*5 + 2*6 = 17 # result[0] = 1*5 + 2*6 = 17
# result[1] = 3*5 + 4*6 = 39 # result[1] = 3*5 + 4*6 = 39
tg = cp.Target() tg = cp.Target()
tg.compile(result) tg.compile(result)
tg.run() tg.run()
assert tg.read_value(result.values[0]) == pytest.approx(17) # pyright: ignore[reportUnknownMemberType] assert tg.read_value(result.values[0]) == pytest.approx(17) # pyright: ignore[reportUnknownMemberType]
assert tg.read_value(result.values[1]) == pytest.approx(39) # pyright: ignore[reportUnknownMemberType] assert tg.read_value(result.values[1]) == pytest.approx(39) # pyright: ignore[reportUnknownMemberType]
if __name__ == "__main__": if __name__ == "__main__":
pytest.main([__file__, "-v"]) pytest.main([__file__, "-v"])

View File

@ -42,7 +42,7 @@ def check_for_qemu() -> bool:
command = qemu_command + ['--version'] command = qemu_command + ['--version']
try: try:
result = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, check=False) result = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, check=False)
except: except Exception:
return False return False
return result.returncode == 0 return result.returncode == 0
@ -128,7 +128,7 @@ def test_compile():
if not os.path.isfile('build/runner/coparun-aarch64'): if not os.path.isfile('build/runner/coparun-aarch64'):
warnings.warn("aarch64 runner not found, aarch64 test skipped!", UserWarning) warnings.warn("aarch64 runner not found, aarch64 test skipped!", UserWarning)
return return
command = qemu_command + ['build/runner/coparun-aarch64', 'build/runner/test-arm64.copapy'] + ['build/runner/test-arm64.copapy.bin'] command = qemu_command + ['build/runner/coparun-aarch64', 'build/runner/test-arm64.copapy'] + ['build/runner/test-arm64.copapy.bin']
#try: #try:
result = run_command(command) result = run_command(command)

View File

@ -44,7 +44,7 @@ def check_for_qemu() -> bool:
command = qemu_command + ['--version'] command = qemu_command + ['--version']
try: try:
result = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, check=False) result = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, check=False)
except: except Exception:
return False return False
return result.returncode == 0 return result.returncode == 0
@ -130,7 +130,7 @@ def test_compile():
if not os.path.isfile('build/runner/coparun-armv7'): if not os.path.isfile('build/runner/coparun-armv7'):
warnings.warn("armv7 runner not found, armv7 test skipped!", UserWarning) warnings.warn("armv7 runner not found, armv7 test skipped!", UserWarning)
return return
command = qemu_command + ['build/runner/coparun-armv7', 'build/runner/test-armv7.copapy'] + ['build/runner/test-armv7.copapy.bin'] command = qemu_command + ['build/runner/coparun-armv7', 'build/runner/test-armv7.copapy'] + ['build/runner/test-armv7.copapy.bin']
#try: #try:
result = run_command(command) result = run_command(command)

View File

@ -1,4 +1,4 @@
from copapy import NumLike, iif, variable, sin from copapy import NumLike, iif, variable
from copapy.backend import Write, compile_to_dag, add_read_command from copapy.backend import Write, compile_to_dag, add_read_command
import subprocess import subprocess
from copapy import _binwrite from copapy import _binwrite
@ -70,16 +70,16 @@ def iiftests(c1: NumLike) -> list[NumLike]:
@pytest.mark.runner @pytest.mark.runner
def test_compile(): def test_compile():
t1 = cp.vector([10, 11, 12]) + cp.vector(cp.variable(v) for v in range(3)) #t1 = cp.vector([10, 11, 12]) + cp.vector(cp.variable(v) for v in range(3))
t2 = t1.sum() #t2 = t1.sum()
t3 = cp.vector(cp.variable(1 / (v + 1)) for v in range(3)) #t3 = cp.vector(cp.variable(1 / (v + 1)) for v in range(3))
t4 = ((t3 * t1) * 2).sum() #t4 = ((t3 * t1) * 2).sum()
t5 = ((t3 * t1) * 2).magnitude() #t5 = ((t3 * t1) * 2).magnitude()
c_i = variable(9) c_i = variable(9)
c_f = variable(1.111) #c_f = variable(1.111)
c_b = variable(True) #c_b = variable(True)
#ret_test = function1(c_i) + function1(c_f) + function2(c_i) + function2(c_f) + function3(c_i) + function4(c_i) + function5(c_b) + [c_i % 2, sin(c_f)] + iiftests(c_i) + iiftests(c_f) #ret_test = function1(c_i) + function1(c_f) + function2(c_i) + function2(c_f) + function3(c_i) + function4(c_i) + function5(c_b) + [c_i % 2, sin(c_f)] + iiftests(c_i) + iiftests(c_f)
#ret_ref = function1(9) + function1(1.111) + function2(9) + function2(1.111) + function3(9) + function4(9) + function5(True) + [9 % 2, sin(1.111)] + iiftests(9) + iiftests(1.111) #ret_ref = function1(9) + function1(1.111) + function2(9) + function2(1.111) + function3(9) + function4(9) + function5(True) + [9 % 2, sin(1.111)] + iiftests(9) + iiftests(1.111)
@ -104,7 +104,7 @@ def test_compile():
ret_test = [cp.get_42(c_i)] ret_test = [cp.get_42(c_i)]
ret_ref = [cp.get_42(9)] ret_ref = [cp.get_42(9)]
out = [Write(r) for r in ret_test] out = [Write(r) for r in ret_test]
#ret_test += [c_i, v2] #ret_test += [c_i, v2]
#ret_ref += [9, 4.44, -4.44] #ret_ref += [9, 4.44, -4.44]
@ -143,7 +143,7 @@ def test_compile():
try: try:
result = run_command(command) result = run_command(command)
except FileNotFoundError: except FileNotFoundError:
warnings.warn(f"Test skipped, executable not found.", UserWarning) warnings.warn("Test skipped, executable not found.", UserWarning)
return return
print('* Output from runner:\n--') print('* Output from runner:\n--')