public void ResetCalculationState() { const double Increase = 0.5; const int Iterations = 10; var criterium = new DivergenceStopCriterium(Increase, Iterations); // Add residuals. Blow it up instantly criterium.DetermineStatus(1, new DenseVector(new [] { 1.0 }), new DenseVector(new [] { 1.0 }), new DenseVector(new [] { double.NaN })); Assert.IsInstanceOfType(typeof(CalculationDiverged), criterium.Status, "Status check fail."); // Reset the state criterium.ResetToPrecalculationState(); Assert.AreEqual(Increase, criterium.MaximumRelativeIncrease, "Incorrect maximum"); Assert.AreEqual(Iterations, criterium.MinimumNumberOfIterations, "Incorrect iteration count"); Assert.IsInstanceOfType(typeof(CalculationIndetermined), criterium.Status, "Status check fail."); }
public void ResetCalculationState() { const double Increase = 0.5; const int Iterations = 10; var criterium = new DivergenceStopCriterium(Increase, Iterations); // Add residuals. Blow it up instantly var status = criterium.DetermineStatus( 1, new DenseVector(new[] { new Complex(1.0, 0) }), new DenseVector(new[] { new Complex(1.0, 0) }), new DenseVector(new[] { new Complex(double.NaN, 0) })); Assert.AreEqual(IterationStatus.Diverged, status, "Status check fail."); // Reset the state criterium.ResetToPrecalculationState(); Assert.AreEqual(Increase, criterium.MaximumRelativeIncrease, "Incorrect maximum"); Assert.AreEqual(Iterations, criterium.MinimumNumberOfIterations, "Incorrect iteration count"); Assert.AreEqual(IterationStatus.Indetermined, criterium.Status, "Status check fail."); }
public void ResetCalculationState() { const double Increase = 0.5; const int Iterations = 10; var criterium = new DivergenceStopCriterium(Increase, Iterations); // Add residuals. Blow it up instantly criterium.DetermineStatus( 1, new DenseVector(new[] {new Complex(1.0, 0)}), new DenseVector(new[] {new Complex(1.0, 0)}), new DenseVector(new[] {new Complex(double.NaN, 0)})); Assert.IsInstanceOf(typeof (CalculationDiverged), criterium.Status, "Status check fail."); // Reset the state criterium.ResetToPrecalculationState(); Assert.AreEqual(Increase, criterium.MaximumRelativeIncrease, "Incorrect maximum"); Assert.AreEqual(Iterations, criterium.MinimumNumberOfIterations, "Incorrect iteration count"); Assert.IsInstanceOf(typeof (CalculationIndetermined), criterium.Status, "Status check fail."); }