public virtual bool MatchTo(byte[] screenshot) { var blindRegions = this.GetAllBlindRegions(); var screenshotHash = ImageHelpers.ComputeHash(screenshot, blindRegions); return(screenshotHash == this.PatternScreenshot.Hash); }
public bool Compare(BrowserPattern browserPattern, byte[] screenshot, out string resultMessage) { if (browserPattern == null) { throw new ArgumentNullException(nameof(browserPattern)); } if (screenshot == null) { throw new ArgumentNullException(nameof(screenshot)); } var blindRegions = browserPattern.GetAllBlindRegions(); var screenshotHash = ImageHelpers.ComputeHash(screenshot, blindRegions); var areMatched = screenshotHash == browserPattern.PatternScreenshot.Hash; resultMessage = areMatched ? "Hashes match" : "Hashes do not match"; return(areMatched); }
public virtual BrowserPattern AddNewPattern(byte[] screenshot, string browserName, IList <BlindRegion> blindRegions = null) { var ownBlindRegions = blindRegions ?? new List <BlindRegion>(); var inheritedBlindRegions = this.Category.GetAllBlindRegionsForBrowser(browserName); var allBlindRegions = inheritedBlindRegions.Concat(ownBlindRegions).ToList(); var newPattern = new BrowserPattern { BrowserName = browserName, PatternScreenshot = new ScreenshotData { Image = screenshot, Hash = ImageHelpers.ComputeHash(screenshot, allBlindRegions) }, IsActive = true, CreatedOn = DateTime.Now, BlindRegions = ownBlindRegions, TestCase = this }; this.Patterns.Add(newPattern); return(newPattern); }
public virtual void UpdateTestCaseHash(IReadOnlyList <BlindRegion> blindRegions) { this.Hash = ImageHelpers.ComputeHash(this.Image, blindRegions); }