public void Test_CyPhyPET_unit_matcher() { var project = new MgaProject(); project.OpenEx("MGA=" + this.mgaFile, "CyPhyML", null); try { project.BeginTransactionInNewTerr(); try { var wrapper = project.RootFolder.ObjectByPath["/@Testing/@ParametricExploration/@TestPython/@PythonWrapper"]; var pythonBlock = ISIS.GME.Dsml.CyPhyML.Classes.PythonWrapper.Cast(wrapper); var binDir = Path.GetDirectoryName(System.Reflection.Assembly.GetAssembly(typeof(Workflow_PET_Test)).CodeBase.Substring("file:///".Length)); var path = Path.GetFullPath(binDir + "/../../paraboloid.py"); var pet = CyPhyPET.CyPhyPETInterpreter.GetParamsAndUnknownsForPythonOpenMDAO(path, pythonBlock); // "{\"unknowns\": {\"f_xy\": {\"units\": \"m**3\", \"gme_unit_id\": \"id-0065-00000179\", \"shape\": 1, \"val\": 0.0, \"size\": 1}}, \"params\": {\"x\": {\"units\": \"m\", \"gme_unit_id\": \"id-0066-00000014\", \"shape\": 1, \"val\": 0.0, \"size\": 1}, \"y\": {\"units\": \"m**3\", \"gme_unit_id\": \"id-0065-00000179\", \"shape\": 1, \"val\": 0.0, \"size\": 1}}}" var unknowns = pet["unknowns"]; var params_ = pet["params"]; var x = params_["x"]; var y = params_["y"]; var f_xy = unknowns["f_xy"]; Assert.Equal("Meter", project.GetFCOByID((string)x["gme_unit_id"]).Name); Assert.Equal("Cubic Meter", project.GetFCOByID((string)y["gme_unit_id"]).Name); Assert.Equal("Cubic Meter", project.GetFCOByID((string)f_xy["gme_unit_id"]).Name); } finally { project.CommitTransaction(); } } finally { project.Close(abort: true); } }