public void DetermineStatusWithNonMatchingVectorsThrowsArgumentException()
        {
            var criterion = new FailureStopCriterion<double>();
            Assert.IsNotNull(criterion, "There should be a criterion");

            Assert.That(() => criterion.DetermineStatus(1, Vector<double>.Build.Dense(3, 4), Vector<double>.Build.Dense(3, 6), Vector<double>.Build.Dense(4, 4)), Throws.ArgumentException);
        }
 public void Clone()
 {
     var criterion = new FailureStopCriterion<Complex>();
     Assert.IsNotNull(criterion, "There should be a criterion");
     var clone = criterion.Clone();
     Assert.IsInstanceOf(typeof (FailureStopCriterion<Complex>), clone, "Wrong criterion type");
 }
        public void DetermineStatusWithIllegalIterationNumberThrowsArgumentOutOfRangeException()
        {
            var criterion = new FailureStopCriterion<double>();
            Assert.IsNotNull(criterion, "There should be a criterion");

            Assert.That(() => criterion.DetermineStatus(-1, Vector<double>.Build.Dense(3, 4), Vector<double>.Build.Dense(3, 5), Vector<double>.Build.Dense(3, 6)), Throws.TypeOf<ArgumentOutOfRangeException>());
        }
        public void DetermineStatusWithIllegalIterationNumberThrowsArgumentOutOfRangeException()
        {
            var criterion = new FailureStopCriterion <float>();

            Assert.IsNotNull(criterion, "There should be a criterion");

            Assert.That(() => criterion.DetermineStatus(-1, Vector <float> .Build.Dense(3, 4), Vector <float> .Build.Dense(3, 5), Vector <float> .Build.Dense(3, 6)), Throws.TypeOf <ArgumentOutOfRangeException>());
        }
        public void DetermineStatusWithNonMatchingVectorsThrowsArgumentException()
        {
            var criterion = new FailureStopCriterion <float>();

            Assert.IsNotNull(criterion, "There should be a criterion");

            Assert.That(() => criterion.DetermineStatus(1, Vector <float> .Build.Dense(3, 4), Vector <float> .Build.Dense(3, 6), Vector <float> .Build.Dense(4, 4)), Throws.ArgumentException);
        }
Example #6
0
        public void Clone()
        {
            var criterion = new FailureStopCriterion <double>();

            Assert.IsNotNull(criterion, "There should be a criterion");
            var clone = criterion.Clone();

            Assert.IsInstanceOf(typeof(FailureStopCriterion <double>), clone, "Wrong criterion type");
        }
        public void DetermineStatusWithResidualNaN()
        {
            var criterion = new FailureStopCriterion<float>();
            Assert.IsNotNull(criterion, "There should be a criterion");

            var solution = new DenseVector(new[] { 1.0f, 1.0f, 2.0f });
            var source = new DenseVector(new[] { 1001.0f, 0, 2003.0f });
            var residual = new DenseVector(new[] { 1000, float.NaN, 2001 });

            var status = criterion.DetermineStatus(5, solution, source, residual);
            Assert.AreEqual(IterationStatus.Failure, status, "Should be failed");
        }
        public void DetermineStatus()
        {
            var criterion = new FailureStopCriterion<float>();
            Assert.IsNotNull(criterion, "There should be a criterion");

            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 = criterion.DetermineStatus(5, solution, source, residual);
            Assert.AreEqual(IterationStatus.Continue, status, "Should be running");
        }
        public void DetermineStatusWithResidualNaN()
        {
            var criterion = new FailureStopCriterion<Complex32>();
            Assert.IsNotNull(criterion, "There should be a criterion");

            var solution = new DenseVector(new[] { new Complex32(1.0f, 0), new Complex32(1.0f, 0), new Complex32(2.0f, 0) });
            var source = new DenseVector(new[] { new Complex32(1001.0f, 0), Complex32.Zero, new Complex32(2003.0f, 0) });
            var residual = new DenseVector(new[] { new Complex32(1000, 0), new Complex32(float.NaN, 0), new Complex32(2001, 0) });

            var status = criterion.DetermineStatus(5, solution, source, residual);
            Assert.AreEqual(IterationStatus.Failure, status, "Should be failed");
        }
        public void DetermineStatus()
        {
            var criterion = new FailureStopCriterion<Complex32>();
            Assert.IsNotNull(criterion, "There should be a criterion");

            var solution = new DenseVector(new[] { new Complex32(3.0f, 0), new Complex32(2.0f, 0), new Complex32(1, 0) });
            var source = new DenseVector(new[] { new Complex32(1001.0f, 0), Complex32.Zero, new Complex32(2003.0f, 0) });
            var residual = new DenseVector(new[] { new Complex32(1.0f, 0), new Complex32(2.0f, 0), new Complex32(3, 0) });

            var status = criterion.DetermineStatus(5, solution, source, residual);
            Assert.AreEqual(IterationStatus.Continue, status, "Should be running");
        }
        public void DetermineStatusWithResidualNaN()
        {
            var criterion = new FailureStopCriterion<double>();
            Assert.IsNotNull(criterion, "There should be a criterion");

            var solution = Vector<double>.Build.Dense(new[] { 1.0, 1.0, 2.0 });
            var source = Vector<double>.Build.Dense(new[] { 1001.0, 0, 2003.0 });
            var residual = Vector<double>.Build.Dense(new[] { 1000, double.NaN, 2001 });

            var status = criterion.DetermineStatus(5, solution, source, residual);
            Assert.AreEqual(IterationStatus.Failure, status, "Should be failed");
        }
        public void DetermineStatus()
        {
            var criterion = new FailureStopCriterion <Complex>();

            Assert.IsNotNull(criterion, "There should be a criterion");

            var solution = new DenseVector(new[] { new Complex(3.0, 0), new Complex(2.0, 0), new Complex(1, 0) });
            var source   = new DenseVector(new[] { new Complex(1001.0, 0), Complex.Zero, new Complex(2003.0, 0) });
            var residual = new DenseVector(new[] { new Complex(1.0, 0), new Complex(2.0, 0), new Complex(3, 0) });

            var status = criterion.DetermineStatus(5, solution, source, residual);

            Assert.AreEqual(IterationStatus.Continue, status, "Should be running");
        }
        public void DetermineStatusWithResidualNaN()
        {
            var criterion = new FailureStopCriterion <float>();

            Assert.IsNotNull(criterion, "There should be a criterion");

            var solution = new DenseVector(new[] { 1.0f, 1.0f, 2.0f });
            var source   = new DenseVector(new[] { 1001.0f, 0, 2003.0f });
            var residual = new DenseVector(new[] { 1000, float.NaN, 2001 });

            var status = criterion.DetermineStatus(5, solution, source, residual);

            Assert.AreEqual(IterationStatus.Failure, status, "Should be failed");
        }
        public void DetermineStatus()
        {
            var criterion = new FailureStopCriterion <float>();

            Assert.IsNotNull(criterion, "There should be a criterion");

            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 = criterion.DetermineStatus(5, solution, source, residual);

            Assert.AreEqual(IterationStatus.Continue, status, "Should be running");
        }
        public void DetermineStatusWithResidualNaN()
        {
            var criterion = new FailureStopCriterion <Complex>();

            Assert.IsNotNull(criterion, "There should be a criterion");

            var solution = new DenseVector(new[] { new Complex(1.0, 0), new Complex(1.0, 0), new Complex(2.0, 0) });
            var source   = new DenseVector(new[] { new Complex(1001.0, 0), Complex.Zero, new Complex(2003.0, 0) });
            var residual = new DenseVector(new[] { new Complex(1000, 0), new Complex(double.NaN, 0), new Complex(2001, 0) });

            var status = criterion.DetermineStatus(5, solution, source, residual);

            Assert.AreEqual(IterationStatus.Failure, status, "Should be failed");
        }
        public void DetermineStatusWithSolutionNaN()
        {
            var criterion = new FailureStopCriterion <double>();

            Assert.IsNotNull(criterion, "There should be a criterion");

            var solution = new DenseVector(new[] { 1.0, 1.0, double.NaN });
            var source   = new DenseVector(new[] { 1001.0, 0.0, 2003.0 });
            var residual = new DenseVector(new[] { 1000.0, 1000.0, 2001.0 });

            var status = criterion.DetermineStatus(5, solution, source, residual);

            Assert.AreEqual(IterationStatus.Failure, status, "Should be failed");
        }
        public void ResetCalculationState()
        {
            var criterion = new FailureStopCriterion <double>();

            Assert.IsNotNull(criterion, "There should be a criterion");

            var solution = new DenseVector(new[] { 1.0, 1.0, 2.0 });
            var source   = new DenseVector(new[] { 1001.0, 0.0, 2003.0 });
            var residual = new DenseVector(new[] { 1000.0, 1000.0, 2001.0 });

            var status = criterion.DetermineStatus(5, solution, source, residual);

            Assert.AreEqual(IterationStatus.Continue, status, "Should be running");

            criterion.Reset();
            Assert.AreEqual(IterationStatus.Continue, criterion.Status, "Should not have started");
        }
        public void ResetCalculationState()
        {
            var criterion = new FailureStopCriterion <Complex32>();

            Assert.IsNotNull(criterion, "There should be a criterion");

            var solution = new DenseVector(new[] { new Complex32(1.0f, 0), new Complex32(1.0f, 0), new Complex32(2, 0) });
            var source   = new DenseVector(new[] { new Complex32(1001.0f, 0), Complex32.Zero, new Complex32(2003.0f, 0) });
            var residual = new DenseVector(new[] { new Complex32(1000, 0), new Complex32(1000, 0), new Complex32(2001, 0) });

            var status = criterion.DetermineStatus(5, solution, source, residual);

            Assert.AreEqual(IterationStatus.Continue, status, "Should be running");

            criterion.Reset();
            Assert.AreEqual(IterationStatus.Continue, criterion.Status, "Should not have started");
        }
 public void Create()
 {
     var criterion = new FailureStopCriterion<float>();
     Assert.IsNotNull(criterion, "Should have a criterion now");
 }
        public void Create()
        {
            var criterion = new FailureStopCriterion <float>();

            Assert.IsNotNull(criterion, "Should have a criterion now");
        }
        public void ResetCalculationState()
        {
            var criterion = new FailureStopCriterion<Complex>();
            Assert.IsNotNull(criterion, "There should be a criterion");

            var solution = new DenseVector(new[] { new Complex(1.0, 0), new Complex(1.0, 0), new Complex(2, 0) });
            var source = new DenseVector(new[] { new Complex(1001.0, 0), Complex.Zero, new Complex(2003.0, 0) });
            var residual = new DenseVector(new[] { new Complex(1000, 0), new Complex(1000, 0), new Complex(2001, 0) });

            var status = criterion.DetermineStatus(5, solution, source, residual);
            Assert.AreEqual(IterationStatus.Continue, status, "Should be running");

            criterion.Reset();
            Assert.AreEqual(IterationStatus.Continue, criterion.Status, "Should not have started");
        }
        public void ResetCalculationState()
        {
            var criterion = new FailureStopCriterion<double>();
            Assert.IsNotNull(criterion, "There should be a criterion");

            var solution = Vector<double>.Build.Dense(new[] { 1.0, 1.0, 2.0 });
            var source = Vector<double>.Build.Dense(new[] { 1001.0, 0.0, 2003.0 });
            var residual = Vector<double>.Build.Dense(new[] { 1000.0, 1000.0, 2001.0 });

            var status = criterion.DetermineStatus(5, solution, source, residual);
            Assert.AreEqual(IterationStatus.Continue, status, "Should be running");

            criterion.Reset();
            Assert.AreEqual(IterationStatus.Continue, criterion.Status, "Should not have started");
        }