from b_asic.core_operations import Addition, Constant
from b_asic.signal import Signal

import pytest

@pytest.fixture
def operation():
    return Constant(2)

@pytest.fixture
def operation_tree():
    """Return a addition operation connected with 2 constants.
    ---C---+
           +--A
    ---C---+
    """
    return Addition(Constant(2), Constant(3))

@pytest.fixture
def large_operation_tree():
    """Return an addition operation connected with a large operation tree with 2 other additions and 4 constants.
    ---C---+
           +--A---+
    ---C---+      |
                  +---A
    ---C---+      |
           +--A---+
    ---C---+
    """
    return Addition(Addition(Constant(2), Constant(3)), Addition(Constant(4), Constant(5)))