BuildChecker() public static method

public static BuildChecker ( string filepath ) : string>.Dictionary
filepath string
return string>.Dictionary
示例#1
0
        public void NaiveKruskalArtificial()
        {
            Shred.BUFFER      = 0;
            Shred.SAMPLE_SIZE = 4;

            var path    = Path.Combine(Drive.GetDriveRoot(), Dir.ArtificialTestDirectory, Dir.NaiveKruskalHttpDocument);
            var shreds  = Shred.Factory("image", path, false);
            var results = Reconstructor.NaiveKruskalAlgorithm(shreds);

            var checker = Helpers.BuildChecker(Path.Combine(path, Helpers.CheckFile));

            shreds.ForEach(shred => Console.Write(" " + shred.Id + ", "));
            Console.WriteLine();
            results.ForEach(shred => Console.Write(" " + shred.Id + ", "));
            Console.WriteLine();

            var indicies = results.Select((t, pos) => new Tuple <int, Shred>(pos, t)).ToList();
            var result   = indicies.Select(pair =>
            {
                var filename = Path.GetFileName(pair.Item2.Filepath);
                Assert.IsNotNull(filename);
                Assert.IsNotNull(checker[filename]);
                var expected = checker[filename];
                var actual   = pair.Item1;
                Console.WriteLine("Actual " + actual + " vs. " + expected + " | File: " + filename);
                return(actual.ToString(CultureInfo.InvariantCulture) == expected);
            }).ToList();

//            var diff = Differ.DiffShredByOrder(results.Select(shred => shred.Id).ToList(),
//Enumerable.Range(0, results.Count).Select(ii => (long)ii).ToList());
//            Console.WriteLine("Difference : " + diff);
            ExportResult((Cluster)shreds.First().Root(), "../../visualizer/NaiveKruskalArtifical.png");
        }
示例#2
0
        public void OcrSimpleOcrTest()
        {
            // Init Drive and a Checker (Hashmap)
            var relpath  = Path.Combine(Dir.OcrDirectory, Dir.OcrSimple);
            var fullpath = Path.Combine(Drive.GetDriveRoot(), relpath);
            var checker  = Helpers.BuildChecker(Path.Combine(fullpath, Helpers.CheckFile));
            var drive    = new Drive(relpath, Drive.Reason.Read);

            // Init Correct List
            var correct = new List <bool>(drive.FileCount("snip"));

            // Scan each snippet, check if they are substrings, save result in correct
            foreach (var file in drive.Files("snip"))
            {
                var img      = new Bitmap(file);
                var filename = Path.GetFileName(file);
                var ocrdata  = OCR.Recognize(img);
                Assert.IsTrue(filename != null);
                Assert.IsTrue(checker[filename] != null);
                var isCorrect = ocrdata.Text.ToLower().Contains(checker[filename].ToLower());
                correct.Add(isCorrect);
                Console.WriteLine("-------------------------------------------");
                Console.WriteLine("CORRECT: " + isCorrect);
                Console.WriteLine("OCR: " + OCR.StripNewLine(ocrdata.Text));
                Console.WriteLine("REAL: " + checker[filename].ToLower());
                Console.WriteLine("COST: " + ocrdata.Cost);
                Console.WriteLine();
            }

            // Ensure that all the OCR scans were correct
            Assert.IsTrue(correct.All(x => x));
        }
示例#3
0
        public void FilterEmptyDetectionTest()
        {
            //Load Shreds
            var path    = Path.Combine(Dir.OcrDirectory, Dir.OcrEmptyTestDirectory);
            var shreds  = (new Drive(path, Drive.Reason.Read)).Files("image");
            var checker = Helpers.BuildChecker(Path.Combine(Drive.GetDriveRoot(), path, Helpers.CheckFile));
            var results = shreds.Select(shred =>
            {
                var filename = Path.GetFileName(shred);
                bool?empty;
                using (Bitmap bmp = new Bitmap(shred))
                {
                    Assert.IsTrue(filename != null);
                    empty = Filter.IsEmpty(bmp);
                    Console.WriteLine("--------------------------------------");
                    Console.WriteLine("Shred Name" + Path.GetFileNameWithoutExtension(shred));
                    Console.WriteLine("IsEmpty? = " + empty);
                    Console.WriteLine("Is Really Empty? = " + checker[filename]);
                    Console.WriteLine("Correct: " + (checker[filename] == ((bool)empty ? "y" : "n")));
                    Console.WriteLine();
                }
                return(checker[filename] == ((bool)empty ? "y" : "n"));
            });

            results.ToList().ForEach(Assert.IsTrue);
        }
示例#4
0
        public void OcrEmptyDetectionTest()
        {
            //Load Shreds
            var abspath = Path.Combine(Drive.GetDriveRoot(), Dir.OcrDirectory, Dir.OcrEmptyTestDirectory);
            var shreds  = Shred.Factory("empty", abspath, true);
            var checker = Helpers.BuildChecker(Path.Combine(abspath, Helpers.CheckFile));

            var results = shreds.Select(shred =>
            {
                var filename = Path.GetFileName(shred.Filepath);
                Assert.IsTrue(filename != null);
                Console.WriteLine("--------------------------------------");
                Console.WriteLine("Shred Name" + Path.GetFileNameWithoutExtension(shred.Filepath));
                Console.WriteLine("IsEmpty? = " + shred.IsEmpty);
                Console.WriteLine("Is Really Empty? = " + checker[filename]);
                Console.WriteLine("Correct: " + (checker[filename] == (shred.IsEmpty ? "y" : "n")));
                Console.WriteLine();
                return(checker[filename] == (shred.IsEmpty ? "y" : "n"));
            });

            results.ToList().ForEach(Assert.IsTrue);
        }
示例#5
0
        public void NaiveKruskalPrimitive()
        {
            Shred.BUFFER      = 0;
            Shred.SAMPLE_SIZE = 1;

            var folder = Path.Combine(Drive.GetDriveRoot(), Dir.NaiveKruskalTestDirectory);
            var paths  = new List <string>();

            paths.Add(Path.Combine(folder, NaiveThree));
            paths.Add(Path.Combine(folder, NaiveSix));
            paths.Add(Path.Combine(folder, NaiveTen));

            foreach (var path in paths)
            {
                var shreds  = Shred.Factory("Shred", path, false);
                var checker = Helpers.BuildChecker(Path.Combine(path, Helpers.CheckFile));

                var results = Reconstructor.NaiveKruskalAlgorithm(shreds);

                var indicies = results.Select((t, pos) => new Tuple <int, Shred>(pos, t)).ToList();

                Console.WriteLine(" ---- " + path + "----");
                var result = indicies.Select(pair =>
                {
                    var filename = Path.GetFileName(pair.Item2.Filepath);
                    Assert.IsNotNull(filename);
                    Assert.IsNotNull(checker[filename]);
                    var expected = checker[filename];
                    var actual   = pair.Item1;
                    Console.WriteLine("Actual " + actual + " vs. " + expected + " | File: " + filename);
                    return(actual.ToString(CultureInfo.InvariantCulture) == expected);
                }).ToList();
                Exporter.ExportJson(results.First().Root());
                Console.WriteLine();
                result.ForEach(Assert.IsTrue);
            }
        }