public void AddFeatureOverflowTest()
        {
            Feature     testFeature     = new DoubleFeature(new AbsoluteDistance(), 4.0);
            Feature     testFeature2    = new DoubleFeature(new AbsoluteDistance(), 3.0);
            Observation testObservation = new Observation(1);

            testObservation.AddFeature(testFeature);
            testObservation.AddFeature(testFeature2);
        }
        public void AddChildFeatureTest()
        {
            ComplexFeature test         = new ComplexFeature(first);
            Feature        testingchild = new DoubleFeature(first, 2.0);


            test.AddChildFeature(testingchild);

            Assert.AreEqual(test.ChildFeaturesCount, 1);
        }
Пример #3
0
        public void CalculateDistanceTest()
        {
            //arrange
            DistanceMetric firstMetric = new AbsoluteDistance();
            Feature        initial     = new DoubleFeature(firstMetric, 20.0);
            Feature        initial2    = new DoubleFeature(firstMetric, 22.0);

            //act, assert
            Assert.AreEqual(initial.CalculateDistance(initial2), 2);
        }
        public void AddFeatureTest()
        {
            Feature testingFeature = new DoubleFeature(new AbsoluteDistance(), 2.0);

            Observation testingObs = new Observation(1);

            testingObs.AddFeature(testingFeature);

            Assert.AreEqual(testingObs.FeaturesCount, 1);
        }
        public void GetChildFeatureTest()
        {
            ComplexFeature test         = new ComplexFeature(first);
            Feature        testingchild = new DoubleFeature(first, 2.0);

            test.AddChildFeature(testingchild);

            Feature child = test.GetChildFeature(0);

            //assert
            Assert.AreSame(child, testingchild);
        }
        public void ReplaceFeatureTest()
        {
            Feature     testingFeature = new DoubleFeature(new AbsoluteDistance(), 2.0);
            Feature     replacement    = new DoubleFeature(new AbsoluteDistance(), 6.0);
            Observation testingObs     = new Observation(1);

            testingObs.AddFeature(testingFeature);
            testingObs.ReplaceFeature(0, replacement);

            Assert.AreSame(replacement, testingObs.GetFeature(0));
            Assert.AreEqual(6.0, testingObs.GetFeature(0).FeatureValue);
        }
        public void GetFeatureTest()
        {
            Feature testingFeature = new DoubleFeature(new AbsoluteDistance(), 2.0);

            Observation testingObs = new Observation(1);

            testingObs.AddFeature(testingFeature);

            Feature returned = testingObs.GetFeature(0);

            Assert.AreSame(returned, testingFeature);
        }
Пример #8
0
        public void AddMemberTest()
        {
            Cluster testCluster = new Cluster();

            Feature     testFeature     = new DoubleFeature(new AbsoluteDistance(), 4.0);
            Observation testObservation = new Observation(3);

            testObservation.AddFeature(testFeature);

            //act
            testCluster.AddMember(testObservation);

            //assert
            Assert.AreEqual(testCluster.ClusterCount, 1);
        }
Пример #9
0
        public void SumTest()
        {
            //arrange
            DistanceMetric firstMetric = new AbsoluteDistance();
            Feature        initial     = new DoubleFeature(firstMetric, 20.0);
            Feature        initial2    = new DoubleFeature(firstMetric, 22.0);

            //act
            Feature result = initial2.Sum(initial);

            //assert
            Assert.AreEqual(result.FeatureValue, 42.0);

            Assert.AreSame(result.MetricUsed, firstMetric);
        }
Пример #10
0
        public void ReCalculateCentroidTest()
        {
            // not really testable code ####consider redefining ReCalculate centroid
            Cluster testCluster = new Cluster();

            Feature testFeature  = new DoubleFeature(new AbsoluteDistance(), 4.0);
            Feature testFeature1 = new DoubleFeature(new AbsoluteDistance(), 5.0);
            Feature testFeature2 = new DoubleFeature(new AbsoluteDistance(), 15.0);
            Feature testFeature3 = new DoubleFeature(new AbsoluteDistance(), 25.0);
            Feature testFeature4 = new DoubleFeature(new AbsoluteDistance(), 7.0);
            Feature testFeature5 = new DoubleFeature(new AbsoluteDistance(), 8.0);
            Feature testFeature6 = new DoubleFeature(new AbsoluteDistance(), 8.0);
            Feature testFeature7 = new DoubleFeature(new AbsoluteDistance(), 10.0);

            Observation testObservation  = new Observation(2);
            Observation testObservation1 = new Observation(2);
            Observation testObservation2 = new Observation(2);

            Observation initialCentroid = new Observation(2);

            initialCentroid.AddFeature(testFeature);
            initialCentroid.AddFeature(testFeature1);
            testCluster.ClusterCentroid = initialCentroid;

            testObservation.AddFeature(testFeature2);
            testObservation.AddFeature(testFeature3);
            testCluster.AddMember(testObservation);

            testObservation1.AddFeature(testFeature4);
            testObservation1.AddFeature(testFeature5);
            testCluster.AddMember(testObservation1);

            testObservation2.AddFeature(testFeature6);
            testObservation2.AddFeature(testFeature7);
            testCluster.AddMember(testObservation2);



            //act
            testCluster.ReCalculateCentroid();

            //assert
            Assert.AreEqual(10.0, testCluster.ClusterCentroid.GetFeature(0).FeatureValue);
            Assert.AreSame(initialCentroid, testCluster.OldClusterCentroid);
        }
Пример #11
0
        private static void CreateDoubleFeature(IEnumerable <string> values, string[] headers, int index, InstanceModel model, List <string[]> matrix,
                                                Instance[] result)
        {
            double[] casted =
                values.Where(v => !string.IsNullOrWhiteSpace(v)).Select(double.Parse).ToArray();
            var newModel = new DoubleFeature(TextToId(headers[index]), index)
            {
                MinValue = casted.Min(),
                MaxValue = casted.Max(),
            };

            model.Features[index] = newModel;
            for (int i = 0; i < matrix.Count; i++)
            {
                string asStr = matrix[i][index];
                result[i][newModel] = string.IsNullOrWhiteSpace(asStr) ? double.NaN : double.Parse(asStr);
            }
        }