//Tim xem can bao nhiu hinh thi nhan dien du SV
        static void FindRequiredImageNumber()
        {
            Console.WriteLine("Testing begin. Initialize the Recognizer.");
            Random random = new Random();

            //Set cac gia tri
            int    TestRollCallID      = 24;
            int    StudentPresent      = 17;
            String TestImageFolderPath = @"C:\Users\Hoang\Documents\Visual Studio 2010\Projects\RollSystemMobile\FaceRecAutomationTesting\More Test\Unknown";

            //Tao BO
            RollCall           roll    = new RollCallBusiness().GetRollCallByID(TestRollCallID);
            AttendanceBusiness AttenBO = new AttendanceBusiness();

            //Tao 1 mang luu ket qua
            List <MoreTestSingleResult> FinalResults = new List <MoreTestSingleResult>();
            List <RollSystemMobile.Models.RecognizerResult> AllResult = new List <RollSystemMobile.Models.RecognizerResult>();

            //Doc toan bo anh trong folder, recognize roi dua vao mang
            List <String> ImageFiles = Directory.GetFiles(TestImageFolderPath, "*.jpg", SearchOption.TopDirectoryOnly).ToList();

            foreach (var FilePath in ImageFiles)
            {
                var Result = FaceBusinessForMoreTest.RecognizeStudentForAttendance(TestRollCallID, FilePath);
                AllResult.Add(Result);
                Console.WriteLine(FilePath + " processed.");
            }


            //Chay test 10000 lan
            for (int i = 0; i < 10000; i++)
            {
                List <RollSystemMobile.Models.RecognizerResult> Results = new List <RollSystemMobile.Models.RecognizerResult>();
                int StudentDetected = 0;

                //Sao chep ra mot mang rieng
                List <RollSystemMobile.Models.RecognizerResult> AllResultClone = new List <RollSystemMobile.Models.RecognizerResult>(AllResult);
                List <String> FileUsed = new List <string>();

                while (StudentDetected < StudentPresent)
                {
                    //Lay 1 phan tu ra khoi mang clone
                    int Position  = random.Next(AllResultClone.Count);
                    var GetResult = AllResultClone.ElementAt(Position);
                    AllResultClone.Remove(GetResult);
                    FileUsed.Add(GetResult.ImageLink);


                    Results.Add(GetResult);

                    StudentDetected = AttenBO.GetStudentIDList(Results).Count;
                }
                MoreTestSingleResult SingleResult = new MoreTestSingleResult();
                SingleResult.FileUsed        = FileUsed;
                SingleResult.RunCount        = FileUsed.Count;
                SingleResult.StudentDetected = StudentDetected;
                FinalResults.Add(SingleResult);
                Console.WriteLine("Test run: " + i);
            }

            FinalResults = FinalResults.OrderBy(rs => rs.RunCount).ToList();
            MoreTestSingleResult MinResult = FinalResults.First();

            Console.WriteLine("Minimum image required: " + MinResult.RunCount);
            Console.Write("File Used: ");
            foreach (var FilePath in MinResult.FileUsed)
            {
                Console.WriteLine(Path.GetFileNameWithoutExtension(FilePath) + "|");
            }
            Console.WriteLine();

            MoreTestSingleResult MaxResult = FinalResults.Last();

            Console.WriteLine("Maximum image required: " + MaxResult.RunCount);
            Console.WriteLine("File Used: ");
            foreach (var FilePath in MaxResult.FileUsed)
            {
                Console.WriteLine(Path.GetFileNameWithoutExtension(FilePath) + "|");
            }
            Console.WriteLine();


            for (int i = MinResult.RunCount; i <= MaxResult.RunCount; i++)
            {
                int Times = FinalResults.Count(rs => rs.RunCount == i);
                Console.WriteLine("Required: " + i + ".Times: " + Times);
            }

            double AvgRun = FinalResults.Average(r => r.RunCount);

            Console.WriteLine("Avarage image required: " + AvgRun);
            Console.ReadLine();
        }
        //So luong hinh tang dan, tinh so luong SV detected dc
        static void FindAvarageStudentDetected()
        {
            Random random = new Random();

            //Set cac gia tri
            int    TestRollCallID      = 24;
            String TestImageFolderPath = @"C:\Users\Hoang\Documents\Visual Studio 2010\Projects\RollSystemMobile\FaceRecAutomationTesting\More Test\13 After - Copy";


            //Tao BO
            RollCall           roll    = new RollCallBusiness().GetRollCallByID(TestRollCallID);
            AttendanceBusiness AttenBO = new AttendanceBusiness();

            //Tao 1 mang luu ket qua
            List <MoreTestSingleResult> FinalResults = new List <MoreTestSingleResult>();
            List <RollSystemMobile.Models.RecognizerResult> AllResult = new List <RollSystemMobile.Models.RecognizerResult>();


            //Doc toan bo anh trong folder
            List <String> ImageFiles = Directory.GetFiles(TestImageFolderPath, "*.jpg", SearchOption.TopDirectoryOnly).ToList();

            foreach (var FilePath in ImageFiles)
            {
                var Result = FaceBusinessForMoreTest.RecognizeStudentForAttendance(TestRollCallID, FilePath);
                AllResult.Add(Result);
                Console.WriteLine(FilePath + " processed.");
            }

            //So luong hinh tang dan, tu 5 toi max
            for (int i = 1; i < ImageFiles.Count; i++)
            {
                //Chay 1000 lan
                for (int j = 0; j < 1000; j++)
                {
                    List <RollSystemMobile.Models.RecognizerResult> Results = new List <RollSystemMobile.Models.RecognizerResult>();
                    //Sao chep ra mot mang rieng
                    List <RollSystemMobile.Models.RecognizerResult> AllResultClone = new List <RollSystemMobile.Models.RecognizerResult>(AllResult);
                    List <String> FileUsed = new List <string>();

                    //Lay random i hinh, set result
                    for (int k = 0; k < i; k++)
                    {
                        //Lay 1 phan tu ra khoi mang clone
                        int Position  = random.Next(AllResultClone.Count);
                        var GetResult = AllResultClone.ElementAt(Position);
                        AllResultClone.Remove(GetResult);
                        FileUsed.Add(GetResult.ImageLink);

                        Results.Add(GetResult);
                    }
                    MoreTestSingleResult SingleResult = new MoreTestSingleResult();
                    SingleResult.FileUsed        = FileUsed;
                    SingleResult.RunCount        = FileUsed.Count;
                    SingleResult.StudentDetected = AttenBO.GetStudentIDList(Results).Count;
                    FinalResults.Add(SingleResult);
                }
            }


            //Bat dau tinh, voi so luong hinh tang dan, trung binh nhan dien dc bao nhieu hs
            for (int i = 1; i < ImageFiles.Count; i++)
            {
                Console.WriteLine("Number of image used: " + i);
                double AvgStudentDetected = FinalResults.Where(r => r.RunCount == i).Average(r => r.StudentDetected);
                Console.WriteLine("Average Student Detected: " + AvgStudentDetected);
            }
            Console.ReadLine();
        }