public void ScreenAnalyzer_NoPatternMatch_ScreenIsUploaded() { var matcher = new TestMatcher(true); var dataBase = new DataProvider(); ScreenAnalyzer sa = new ScreenAnalyzer(dataBase, matcher); var projectDir = TestContext.CurrentContext.TestDirectory; int end = projectDir.LastIndexOf("bin"); projectDir = projectDir.Substring(0, end); var picturePath = projectDir + @"\TestResources\2.jpg"; Bitmap pic = new Bitmap(picturePath); var expected = new Dictionary <string, bool>() { { "bmw", false }, { "ryanair", false } }; sa.AnalyzeScreenAsync(pic); var result = dataBase.GetUserActivity(); var dict3 = result.Where(entry => expected[entry.Key] != entry.Value) .ToDictionary(entry => entry.Key, entry => entry.Value); //if it is 0 there is match between both dictionaries Assert.That(dict3.Count, Is.Zero); var comparisonResult = ByteArrayCompare(BitmapByteConverter.ConvertBitmapToByteArray(pic), dataBase.getScreen()); Assert.That(comparisonResult, Is.True); }
private void RunLiveCapture() { Bitmap img = null; byte[] data = new byte[img_w * img_h * 3]; int living_status = 0, face_rect_x = 0, face_rect_y = 0, face_rect_w = 0, face_rect_h = 0; BitmapByteConverter converter = new BitmapByteConverter(); isRunning = true; Stopwatch stopWatch = new Stopwatch(); Graphics img_graphic; Pen face_rect_pen = new Pen(Color.Red); SolidBrush face_text_brush = new SolidBrush(Color.Black); Point face_rect_point = new Point(); Size face_rect_size = new Size(); while (isRunning) { stopWatch.Start(); VisionLiveCapture(data, ref living_status, ref face_rect_x, ref face_rect_y, ref face_rect_w, ref face_rect_h); face_rect_point.X = face_rect_x; face_rect_point.Y = face_rect_y; face_rect_size.Width = face_rect_w; face_rect_size.Height = face_rect_h; img = converter.ByteToBitmap(data, img_w, img_h); img_graphic = Graphics.FromImage(img); // show result if (living_status == 1) { face_rect_pen.Color = Color.Green; face_text_brush.Color = Color.Green; img_graphic.DrawRectangle(face_rect_pen, new Rectangle(face_rect_point, face_rect_size)); img_graphic.DrawString("Living", new Font("Courier New", 12), face_text_brush, face_rect_point); } else if (living_status == 0) { face_rect_pen.Color = Color.Red; face_text_brush.Color = Color.Red; img_graphic.DrawRectangle(face_rect_pen, new Rectangle(face_rect_point, face_rect_size)); img_graphic.DrawString("Fake", new Font("Courier New", 12), face_text_brush, face_rect_point); } else { face_rect_pen.Color = Color.Blue; face_text_brush.Color = Color.Blue; img_graphic.DrawString("Please put your face\nat the center of the screen.", new Font("Courier New", 15), face_text_brush, face_rect_point); } liveCaptureDisp.BackgroundImage = img; liveCaptureDisp.Invalidate(); stopWatch.Stop(); if (!isTesting && testProc.IsAlive) { statusLabel.Text = stopWatch.ElapsedMilliseconds.ToString() + "ms"; } stopWatch.Reset(); Thread.Sleep(10); } }