using Microsoft.VisualStudio.TestTools.UnitTesting; using TrackTrends; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Drawing; namespace TrackTrends.Tests { [TestClass()] public class OcrImageTests { [TestMethod()] public void LapTimeOCR_Test() { string directory = @"./../../TestImages/LapTimes/"; foreach (string file in Directory.GetFiles(directory)) { Bitmap image = (Bitmap)Image.FromFile(file); DriverLapTimeWindow lapTimeWindow = new DriverLapTimeWindow(image,new Rectangle(0,0,image.Width,image.Height),true); string[] paths = file.Split('/'); string fileName = paths[paths.Length - 1]; fileName = fileName.Replace(".png",""); int timeMS = (int)lapTimeWindow.DecodePng(); string time = Reader.ConvertMsToTime(timeMS); string[] checkDigits = fileName.Split('_'); string[] digitsToCheck = time.Split(':'); Assert.AreEqual(checkDigits.Length, digitsToCheck.Length); for(int i = 0; i < checkDigits.Length; i++) { Assert.AreEqual(checkDigits[i], digitsToCheck[i]); } } } [TestMethod()] public void PositionOCR_Test() { Assert.Fail(); } [TestMethod()] public void GapToLeaderOCR_Test() { string directory = @"./../../TestImages/Gaps/"; foreach (string file in Directory.GetFiles(directory)) { Bitmap image = (Bitmap)Image.FromFile(file); DriverLapTimeWindow lapTimeWindow = new DriverLapTimeWindow(image, new Rectangle(0, 0, image.Width, image.Height), true); string[] paths = file.Split('/'); string fileName = paths[paths.Length - 1]; fileName = fileName.Replace(".png", ""); int timeMS = (int)lapTimeWindow.DecodePng(); string time = Reader.ConvertMsToTime(timeMS); string[] checkDigits = fileName.Split('_'); string[] digitsToCheck = time.Split(':'); if (time == "0:00:000") { Assert.AreEqual(0, Convert.ToInt32(checkDigits[0])); } else { Assert.AreEqual(checkDigits.Length, digitsToCheck.Length); for (int i = 0; i < checkDigits.Length; i++) { if (checkDigits[i] != digitsToCheck[i]) Console.Write("wut?"); Assert.AreEqual(checkDigits[i], digitsToCheck[i]); } } } } [TestMethod()] public void DRS_OCR_Test() { string directory = @"./../../TestImages/DRS/"; DirectoryInfo directoryInfo = new DirectoryInfo(directory); if (Directory.Exists(directory)) { Bitmap falseExemple = (Bitmap)Image.FromFile(directory + "False.png"); Bitmap trueExemple = (Bitmap)Image.FromFile(directory + "True.png"); DriverDrsWindow falseDRS = new DriverDrsWindow(falseExemple, new Rectangle(0, 0, falseExemple.Width, falseExemple.Height), true); DriverDrsWindow trueDRS = new DriverDrsWindow(trueExemple, new Rectangle(0, 0, trueExemple.Width, trueExemple.Height), true); bool falseResult = (bool)falseDRS.DecodePng(); bool trueResult = (bool)trueDRS.DecodePng(); Assert.IsFalse(falseResult); Assert.IsTrue(trueResult); } else { Assert.Fail(); } } [TestMethod()] public void DriverNameOCR_Test() { Assert.Fail(); } [TestMethod()] public void SectorOCR_Test() { Assert.Fail(); } } }