public void Clone() { var criterium = new FailureStopCriterium(); Assert.IsNotNull(criterium, "There should be a criterium"); var clone = criterium.Clone(); Assert.IsInstanceOf(typeof (FailureStopCriterium), clone, "Wrong criterium type"); }
public void DetermineStatus() { var criterium = new FailureStopCriterium(); Assert.IsNotNull(criterium, "There should be a criterium"); var solution = new DenseVector(new[] {3.0f, 2.0f, 1.0f}); var source = new DenseVector(new[] {1001.0f, 0.0f, 2003.0f}); var residual = new DenseVector(new[] {1.0f, 2.0f, 3.0f}); var status = criterium.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Running, status, "Should be running"); }
public void DetermineStatusWithIllegalIterationNumberThrowsArgumentOutOfRangeException() { var criterium = new FailureStopCriterium(); Assert.IsNotNull(criterium, "There should be a criterium"); Assert.Throws<ArgumentOutOfRangeException>(() => criterium.DetermineStatus(-1, DenseVector.Create(3, i => 4), DenseVector.Create(3, i => 5), DenseVector.Create(3, i => 6))); }
public void Create() { var criterium = new FailureStopCriterium(); Assert.IsNotNull(criterium, "Should have a criterium now"); }
public void ResetCalculationState() { var criterium = new FailureStopCriterium(); Assert.IsNotNull(criterium, "There should be a criterium"); var solution = new DenseVector(new[] {1.0f, 1.0f, 2.0f}); var source = new DenseVector(new[] {1001.0f, 0.0f, 2003.0f}); var residual = new DenseVector(new[] {1000.0f, 1000.0f, 2001.0f}); var status = criterium.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Running, status, "Should be running"); criterium.ResetToPrecalculationState(); Assert.AreEqual(IterationStatus.Indetermined, criterium.Status, "Should not have started"); }
public void DetermineStatusWithSolutionNaN() { var criterium = new FailureStopCriterium(); Assert.IsNotNull(criterium, "There should be a criterium"); var solution = new DenseVector(new[] {1, 1, float.NaN}); var source = new DenseVector(new[] {1001.0f, 0.0f, 2003.0f}); var residual = new DenseVector(new[] {1000.0f, 1000.0f, 2001.0f}); var status = criterium.DetermineStatus(5, solution, source, residual); Assert.AreEqual(IterationStatus.Failure, status, "Should be failed"); }
public void DetermineStatusWithNonMatchingVectorsThrowsArgumentException() { var criterium = new FailureStopCriterium(); Assert.IsNotNull(criterium, "There should be a criterium"); Assert.Throws<ArgumentException>(() => criterium.DetermineStatus(1, DenseVector.Create(3, i => 4), DenseVector.Create(3, i => 6), DenseVector.Create(4, i => 4))); }