예제 #1
0
 public void ScriptTestMethod()
 {
     var config = new TestConfig();
     Commands commands = new Commands(config);
     config.ReadConfig(new string[] {
         "x-offset=10",
         "y-offset=50",
         "image=firstpic:data\\hint.png"
     });
     Script.InitScript(commands);
     GImage img = new GImage("data\\testsource.png");
     Script s = new Script("test");
     // Грузим исходную картинку, на которой осуществляется поиск
     s.Parse("match firstpic");
     {
         ScriptState st = new ScriptState(s, img);
         Run(s, st);
         Assert.IsTrue(st.Rectangle.Equals(new Rectangle(1238, 853, 196, 37)), "Не найден прямоугольник");
     }
     s = new Script("test");
     s.Parse("setmode first");
     s.Parse("mode first");
     {
         ScriptState st = new ScriptState(s, img);
         Run(s, st);
         Assert.IsTrue(st.Running, "Тест не продолжился");
     }
     s.Parse("mode nfirst");
     {
         ScriptState st = new ScriptState(s, img);
         Run(s, st);
         Assert.IsFalse(st.Running, "Тест продолжился ошибочно");
     }
 }
예제 #2
0
 public void TM()
 {
     var config = new TestConfig();
     Commands commands = new Commands(config);
     config.ReadConfig(new string[] {
         "x-offset=10",
         "y-offset=50",
     });
     Script.InitScript(commands);
     var img = new GImage(@"data\leofield.jpg");
     Script s = new Script("test");
     // Грузим исходную картинку, на которой осуществляется поиск
     s.Parse("detectfield");
     s.Parse("fielddetected");
     s.Parse("fieldcells");
     {
         ScriptState st = new ScriptState(s, img);
         Run(s, st);
         StringBuilder sb = new StringBuilder(1024);
         for (var y = 0; y < ScriptState.FieldSize.Height; ++y)
         {
             for (var x = 0; x < ScriptState.FieldSize.Width; ++x)
             {
                 var c = st[x, y];
                 var t = c.NotOpened ? '_' : c.Flag ? 'P' : c.Empty ? ' ' : (char)((byte)'0' + c.Number);
                 sb.Append(t);
                 sb.Append(' ');
             }
             sb.Append("\n");
         }
         File.WriteAllText("out.txt", sb.ToString());
     }
 }
예제 #3
0
 public void DetectField()
 {
     var config = new TestConfig();
     Commands commands = new Commands(config);
     config.ReadConfig(new string[] {
         "x-offset=10",
         "y-offset=50",
     });
     Script.InitScript(commands);
     GImage img = new GImage("data\\fullfield.png");
     Script s = new Script("test");
     // Грузим исходную картинку, на которой осуществляется поиск
     s.Parse("detectfield");
     s.Parse("fielddetected");
     var nimg = new GImage("data\\nofield.png");
     {
         ScriptState st = new ScriptState(s, nimg);
         Run(s, st);
         Assert.IsFalse(st.Running, "Лишнее поле нашлось");
     }
     {
         ScriptState st = new ScriptState(s, img);
         Run(s, st);
         Assert.IsTrue(st.Running, "Поле не нашлось");
     }
 }
예제 #4
0
 public void FlashDetectTest()
 {
     var config = new TestConfig();
     Commands commands = new Commands(config);
     config.ReadConfig(new string[] {
         "max-width=1000",
         "max-height=800"
     });
     var img = new Bitmap("data\\nofield.png");
     GImage.FindFlash(config, true, true, img);
     var r = new GImage(img);
     r.Draw(new Rectangle(config.xOffset, config.yOffset, config.maxWidth, config.maxHeight), new Gray(128), 2);
     //r.Save("0.bmp");
     Assert.AreEqual(832, config.xOffset, "Detect X");
     Assert.AreEqual(130, config.yOffset, "Detect Y");
 }