示例#1
0
def test_with_raise():
    stock_a = sf.Stock("A", initial_value=5, lower_limit=0, upper_limit=10)
    stock_b = sf.Stock("B", initial_value=5, lower_limit=0, upper_limit=10)
    a_to_b = sf.Flow(stock_a, stock_b, valve=10, at_limit="raise")

    with pytest.raises(sf.exceptions.FlowOver) as e_info:
        a_to_b()
示例#2
0
def test_with_shut():
    stock_a = sf.Stock("A", initial_value=5, lower_limit=0, upper_limit=10)
    stock_b = sf.Stock("B", initial_value=5, lower_limit=0, upper_limit=10)
    a_to_b = sf.Flow(stock_a, stock_b, valve=10, at_limit="shut")
    a_to_b()
    assert 5 == stock_a.value
    assert 5 == stock_b.value
示例#3
0
def test_ignore():
    stock_a = sf.Stock("A", initial_value=5, lower_limit=0, upper_limit=10)
    stock_b = sf.Stock("B", initial_value=5, lower_limit=0, upper_limit=10)
    a_to_b = sf.Flow(stock_a, stock_b, valve=10, at_limit="ignore")
    a_to_b()
    assert -5 == stock_a.value
    assert 15 == stock_b.value
示例#4
0
def test_with_in_limit_both():
    stock_a = sf.Stock("A", initial_value=5, lower_limit=0, upper_limit=10)
    stock_b = sf.Stock("B", initial_value=5, lower_limit=0, upper_limit=10)

    a_to_b = sf.Flow(stock_a, stock_b, valve=10, at_limit="to limits")
    a_to_b()
    assert 0 == stock_a.value
    assert 10 == stock_b.value
示例#5
0
def test_group_source_no_error():

    stock = sf.Stock("A")
    stock_b = sf.Stock("B")
    stock_c = sf.Stock("C")

    flow = sf.Flow(stock, stock_b)
    flow_b = sf.Flow(stock_b, stock_c)

    stockgroup = sf.StockGroup(stock, stock_b)
    stockgroup_nested = sf.StockGroup(stockgroup, sf.Stock("C"))
    flowgroup = sf.FlowGroup(flow, flow_b)
    # Groups
    stockgroup.graphviz
    stockgroup_nested.graphviz

    flowgroup.graphviz
示例#6
0
def test_core_diag_no_error():

    stock = sf.Stock("A")
    stock_b = sf.Stock("B")
    stock_c = sf.Stock("C")

    flow = sf.Flow(stock, stock_b)
    flow_b = sf.Flow(stock_b, stock_c)

    stockgroup = sf.StockGroup(stock, stock_b)
    stockgroup_nested = sf.StockGroup(stockgroup, sf.Stock("C"))

    flowgroup = sf.FlowGroup(flow, flow_b)
    computator = sf.core.computator.ComputatorBase()

    # Testing
    stock_diag = stock.graphviz
    flow_diag = flow.graphviz
    comp_diag = computator.graphviz

    for diag in (stock_diag, flow_diag, comp_diag):
        diag._repr_svg_()
        assert isinstance(diag.source, str)
        assert diag.source != ''
示例#7
0
def test_fixed_flow_negative(stock_a, stock_b):
    a_to_b = sf.Flow(stock_a, stock_b, valve=-5)
    a_to_b()
    assert 15 == stock_a.value
    assert 5 == stock_b.value
示例#8
0
def test_zero_flow(stock_a, stock_b):
    a_to_b = sf.Flow(stock_a, stock_b, valve=0)
    a_to_b()
    assert 10 == stock_a.value
    assert 10 == stock_b.value