Accord.Tests.Statistics.ReceiverOperatingCharacteristicTest.ReceiverOperatingCharacteristicConstructorTest2 C# (CSharp) Method

ReceiverOperatingCharacteristicConstructorTest2() private method

private ReceiverOperatingCharacteristicConstructorTest2 ( ) : void
return void
        public void ReceiverOperatingCharacteristicConstructorTest2()
        {
            double[] measurement = { 0, 0, 0, 0, 0, 1, 1, 1 };
            double[] prediction = { 0, 0, 0.5, 0.5, 1, 1, 1, 1 };
            ReceiverOperatingCharacteristic target = new ReceiverOperatingCharacteristic(measurement, prediction);

            target.Compute(0.5, true);
            Assert.AreEqual(target.Points.Count, 4);
            var p1 = target.Points[0];
            var p2 = target.Points[1];
            var p3 = target.Points[2];
            var p4 = target.Points[3];

            Assert.AreEqual(p1.Sensitivity, 1);
            Assert.AreEqual(1 - p1.Specificity, 1);
            Assert.AreEqual(p4.Sensitivity, 0);
            Assert.AreEqual(1 - p4.Specificity, 0);

            target.Compute(0.5, false);
            Assert.AreEqual(target.Points.Count, 3);


            target.Compute(new double[] { 0.0, 0.4, 0.6, 1.0 });

            Assert.AreEqual(target.Points.Count, 4);
            Assert.AreEqual(target.Negatives, 5);
            Assert.AreEqual(target.Positives, 3);
            Assert.AreEqual(target.Observations, 8);

            foreach (var point in target.Points)
            {
                Assert.AreEqual(point.Samples, 8);
                Assert.AreEqual(point.ActualNegatives, 5);
                Assert.AreEqual(point.ActualPositives, 3);

                if (point.Cutoff == 0.0)
                {
                    Assert.AreEqual(point.PredictedNegatives, 0);
                    Assert.AreEqual(point.PredictedPositives, 8);
                }
                else if (point.Cutoff == 0.4)
                {
                    Assert.AreEqual(point.PredictedNegatives, 2);
                    Assert.AreEqual(point.PredictedPositives, 6);
                }
                else
                {
                    Assert.AreEqual(point.PredictedNegatives, 4);
                    Assert.AreEqual(point.PredictedPositives, 4);
                }

            }

            Assert.AreEqual(target.Area, 0.8);
            // Assert.AreEqual(target.StandardError, 0.1821680136170595); // HanleyMcNeil
            Assert.AreEqual(0.1, target.StandardError); // De Long

        }