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()
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
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
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
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
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 != ''
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
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