public void TestCrossEntropy1And2() { var solver = SetupCrossEntropy(); var gammaInfo = new GammaInfo(2); var inputArray1 = new object[] { gammaInfo }; var method1 = solver.GetType().GetMethod("CrossEntropy1", BindingFlags.NonPublic | BindingFlags.Instance, Type.DefaultBinder, new[] { typeof(GammaInfo) }, null); var gammaInfoOut1 = (GammaInfo)method1.Invoke(solver, inputArray1); Assert.AreEqual(23.0, gammaInfoOut1.IntermediateRareEvent); var inputArray2 = new object[] { gammaInfoOut1 }; var method2 = solver.GetType().GetMethod("CrossEntropy2", BindingFlags.NonPublic | BindingFlags.Instance, Type.DefaultBinder, new[] { typeof(GammaInfo) }, null); var gammaInfoOut2 = (GammaInfo)method2.Invoke(solver, inputArray2); Assert.That(gammaInfoOut2.IntermediateGamma, Is.EquivalentTo(new[] { 1.1685264634846571d, 0.8430033009062794d })); }
public void TestCrossEntropy1And2() { var solver = SetupCrossEntropy(); var gammaInfo = new GammaInfo(2); var inputArray1 = new object[] { gammaInfo }; var method1 = solver.GetType().GetMethod("CrossEntropy1", BindingFlags.NonPublic | BindingFlags.Instance, Type.DefaultBinder, new[] { typeof(GammaInfo) }, null); var gammaInfoOut1 = (GammaInfo)method1.Invoke(solver, inputArray1); Assert.AreEqual(23.0f, gammaInfoOut1.IntermediateRareEvent); var inputArray2 = new object[] { gammaInfoOut1 }; var method2 = solver.GetType().GetMethod("CrossEntropy2", BindingFlags.NonPublic | BindingFlags.Instance, Type.DefaultBinder, new[] { typeof(GammaInfo) }, null); var gammaInfoOut2 = (GammaInfo)method2.Invoke(solver, inputArray2); Assert.That(new[] { 1.1709945407814435d, 0.84595592854181967d }, Is.EquivalentTo(gammaInfoOut2.IntermediateGamma)); }
public void TestGammaInfo() { const int numReactions = 3; var gammaInfo = new GammaInfo(numReactions); int[] n = { 2, 4, 0 }; double[] lambda = { 4.0, 10.0, 25.0 }; const double weight = 1.5; gammaInfo.UpdateGamma(weight, n, lambda); gammaInfo.SetIntermediateGamma(); gammaInfo.UpdateStructure(); var intermediateGamma = gammaInfo.IntermediateGamma; var gammaNum = GetHiddenField <double[]>("_gammaNum", gammaInfo); Assert.AreEqual(intermediateGamma[0], 0.5); Assert.AreEqual(intermediateGamma[1], 0.4); Assert.AreEqual(intermediateGamma[2], double.Epsilon); Assert.AreEqual(gammaInfo.IntermediateRareEvent, -1); Assert.AreEqual(new double[] { 0, 0, 0 }, gammaNum); }