diff --git a/b_asic/operation.py b/b_asic/operation.py index f26ff2859a1aa799498d1d7f96805bff13e86b53..11cd476b99afd9c832b0c286bf6693e222763567 100644 --- a/b_asic/operation.py +++ b/b_asic/operation.py @@ -735,7 +735,7 @@ class AbstractOperation(Operation, AbstractGraphComponent): try: result = self.evaluate(*([Input()] * self.input_count)) - if isinstance(result, collections.Sequence) and all( + if isinstance(result, collections.abc.Sequence) and all( isinstance(e, Operation) for e in result ): return result diff --git a/test/test_operation.py b/test/test_operation.py index a92f07ce45129cf2f225705c6a260aa21c43f736..fa120571f5f5cce2a1dbd8e3b64143d4adadd92b 100644 --- a/test/test_operation.py +++ b/test/test_operation.py @@ -310,3 +310,12 @@ class TestIOCoordinates: i_c, o_c = bfly.get_io_coordinates() assert i_c == [[2, 0.25], [3, 0.75]] assert o_c == [[5, 0.25], [10, 0.75]] + + +class TestSplit: + def test_simple_case(self): + bfly = Butterfly() + split = bfly.split() + assert len(split) == 2 + assert sum(isinstance(op, Addition) for op in split) == 1 + assert sum(isinstance(op, Subtraction) for op in split) == 1