public void TestSerializationCalculationMethod() { var x1 = CreateObject <CoreCalculationMethod>().WithName("CM"); x1.Category = "Category"; var explicitFormula = CreateObject <ExplicitFormula>().WithName("EP").WithFormulaString("1+2"); var constantFormula = CreateObject <ConstantFormula>().WithName("C").WithValue(5); var paramDescriptor1 = new ParameterDescriptor("K", Create.Criteria(x => x.With("Liver"))); var paramDescriptor2 = new ParameterDescriptor("P", Create.Criteria(x => x.With("Kidney"))); x1.AddOutputFormula(explicitFormula, paramDescriptor1); x1.AddOutputFormula(constantFormula, paramDescriptor2); var p1 = CreateObject <Parameter>().WithName("P1").WithFormula(CreateObject <ExplicitFormula>().WithName("P1 Formula").WithFormulaString("3+4")); var p2 = CreateObject <Parameter>().WithName("P2").WithFormula(CreateObject <ExplicitFormula>().WithName("P2 Formula").WithFormulaString("5+6")); x1.AddHelpParameter(p1, Create.Criteria(x => x.With("Lung"))); x1.AddHelpParameter(p2, Create.Criteria(x => x.With("Heart"))); var x2 = SerializeAndDeserialize(x1); AssertForSpecs.AreEqualCalculationMethod(x1, x2); }