GestureTests.ExperimentControl.DoExperimentOnDataset C# (CSharp) Method

DoExperimentOnDataset() private method

private DoExperimentOnDataset ( Dictionary RecognitionSamples, string experimentName ) : Result>.Dictionary
RecognitionSamples Dictionary
experimentName string
return Result>.Dictionary
        private Dictionary<GestureType, Result> DoExperimentOnDataset(Dictionary<GestureType, List<GestureSample>> RecognitionSamples,
                                                                        string experimentName)
        {
            Dictionary<GestureType, Result> accuracy = new Dictionary<GestureType, Result>();

            Console.WriteLine("*********************************************************************************");
            Console.WriteLine("Running User Independent Experiment(" + ExperimentNo + ") On :  " + experimentName);

            //do classification on Samples
            foreach (GestureType gType in Config.GesturesToUse)
            {
                List<GestureSample> samplesToRecognize = RecognitionSamples[gType];

                accuracy.Add(gType, new Result());
                accuracy[gType].Total = samplesToRecognize.Count;

                foreach (GestureSample gSample in samplesToRecognize)
                {
                    GestureType classification = Recognizer.Classify(gSample);
                    if (classification == gType)
                        accuracy[gType].Correct++;
                }

                Console.WriteLine("Accuracy[" + gType + "] : " + accuracy[gType].Correct + "/" + accuracy[gType].Total + " ~= " + accuracy[gType].Accuracy);

            }

            //report accuracy
            float average = 0.0f;
            float min = float.PositiveInfinity, max = float.NegativeInfinity;
            foreach (GestureType gType in Config.GesturesToUse)
            {
                average += accuracy[gType].Accuracy;
                if (accuracy[gType].Accuracy > max)
                    max = accuracy[gType].Accuracy;
                if (accuracy[gType].Accuracy < min)
                    min = accuracy[gType].Accuracy;
            }

            Console.WriteLine(String.Format("accuracy: {0}, \t[Min: {1}, Max: {2}]", (average / (float)Config.GesturesToUse.Count), min, max));
            Console.WriteLine("*********************************************************************************");

            return accuracy;
        }