public void OcrParallelizationTest() { // Init Drive var relpath = Path.Combine(Dir.OcrDirectory, Dir.OcrParallelizationTesting); var drive = new Drive(relpath, Drive.Reason.Read); var currents = drive.Files("reg").Concat(drive.Files("rev")).Select(path => new Bitmap(path)).ToArray(); var opposites = currents.Select(Filter.Reverse).ToArray(); var regularCount = drive.FileCount("reg"); var results = OCR.ParallelDetectOrientation(currents, opposites, Accuracy.Low, "eng", true).ToList(); results.ToList().ForEach(result => { var current = result.Item2; var opposite = result.Item3; Console.WriteLine("-----------------------------------------------"); Console.WriteLine(OCR.StripNewLine(current.Text + " vs " + opposite.Text)); Console.WriteLine(current.Cost + " vs " + opposite.Cost); Console.WriteLine("Diff: " + (current.Cost - opposite.Cost)); Console.WriteLine("scantime: " + current.ScanTime + "ms and " + opposite.ScanTime + "ms"); Console.WriteLine(); }); results.Take(regularCount).ToList().ForEach(pair => Assert.IsTrue(pair.Item1 >= 0)); results.Skip(regularCount).ToList().ForEach(pair => Assert.IsTrue(pair.Item1 <= 0)); }