public void GetOneLabelClassificationMetrics_Recall()
        {
            var data = new EvaluateItem <double>[]
            {
                new EvaluateItem <double>(new[] { 0.0, 1.0 }, new[] { 0.0, 0.8 }),
                new EvaluateItem <double>(new[] { 1.0, 0.0 }, new[] { 0.4, 0.9 }),
                new EvaluateItem <double>(new[] { 1.0, 0.0 }, new[] { 0.7, 0.1 }),
                new EvaluateItem <double>(new[] { 0.0, 1.0 }, new[] { 0.0, 0.8 }),
            };

            var metrics = data.GetOneLabelClassificationMetrics();

            Assert.Equal(0.5, metrics.ClassesDistribution[0].Recall, 1); // 1/2=0.5
            Assert.Equal(1, metrics.ClassesDistribution[1].Recall, 2);   // 2/2=1
        }
        public void GetOneLabelClassificationMetrics_Precision()
        {
            var data = new EvaluateItem <double>[]
            {
                new EvaluateItem <double>(new[] { 0.0, 1.0 }, new[] { 0.0, 0.8 }),
                new EvaluateItem <double>(new[] { 1.0, 0.0 }, new[] { 0.4, 0.9 }),
                new EvaluateItem <double>(new[] { 1.0, 0.0 }, new[] { 0.7, 0.1 }),
                new EvaluateItem <double>(new[] { 0.0, 1.0 }, new[] { 0.0, 0.8 }),
            };

            var metrics = data.GetOneLabelClassificationMetrics();

            Assert.Equal(1, metrics.ClassesDistribution[0].Precision, 0);    // 1/1=1
            Assert.Equal(0.67, metrics.ClassesDistribution[1].Precision, 2); // 2/3=0.67
        }