def test_rlc_save(rlc): filename = str(file_path / "test_rlc.bg") rlc.name = "RLC" r, = (c for c in rlc.components if c.metamodel == "R") c, = (c for c in rlc.components if c.metamodel == "C") l, = (c for c in rlc.components if c.metamodel == "I") kvl, = (c for c in rlc.components if c.metamodel == "0") r.name = "R1" c.name = "C1" l.name = "L1" with TempFile(filename): save(rlc, filename) with open(filename, 'r') as fs: test_data = yaml.load(fs, Loader=yaml.SafeLoader) assert test_data["version"] == dm.FILE_VERSION assert test_data["root"] == "RLC" assert set(test_data["models"].keys()) == {"/"} model_data = test_data["models"]["/"] assert set(model_data.keys()) == {"components", "netlist"} assert set(model_data["components"]) == { "R1 base/R r=1", "C1 base/C C=1", "L1 base/I L=1", "kvl base/0" } assert set(model_data["netlist"]) == {"R1 kvl", "C1 kvl", "L1 kvl"}
def test_build_templated_model(): root = new(name="System") model = new(name="Vs") root.add(model) ss = new("SS", name="pout") Se = new("Se", name="Vs") zero = new("0", name="0_0") model.add(ss, Se, zero) connect(ss, zero) connect(Se, zero) file = file_path / "temp.bg" assert root.name == "System" with TempFile(file): save(root, file) with open(file, 'r') as fs: temp_data = yaml.load(fs, Loader=yaml.SafeLoader) assert temp_data["root"] == root.name assert temp_data["models"].keys() == {"/", "/Vs"} assert temp_data["models"]["/"]["components"] == ["Vs /Vs"] assert set(temp_data["models"]["/Vs"]["components"]) == { "pout base/SS", "Vs base/Se", "0_0 base/0" } assert set(temp_data["models"]["/Vs"]["netlist"]) == {"pout 0_0", "Vs 0_0"}
def test_save_idempotent(): model_1 = load(file_path / "modular.bg") new_file = str(file_path / "modular_2.bg") with TempFile(new_file): save(model_1, new_file) model_2 = load(new_file) assert model_1 is not model_2 assert model_1.name == model_2.name assert_components_are_equal(model_1, model_2)