public List <TestResult> CheckCommodityExtractor(string infoFile) { List <TestResult> results = new List <TestResult>(); CaptureInfo info = CaptureInfo.Deserialize("Test\\" + infoFile); UnsafeBitmap bm = new UnsafeBitmap("Test\\" + info.BitmapFile); ppocr.ClearErrors(); DateTime dtStart = DateTime.Now; Rectangle commodArea = ppocr.FindCommodityArea(bm); if (commodArea != info.CommodityRect) { results.Add(new TestResult(infoFile, "Commodity Rect Expected " + info.CommodityRect.ToString() + ", got " + commodArea.ToString())); return(results); } string island = ppocr.ExtractIslandName(bm); if (!island.Equals(info.Island)) { results.Add(new TestResult(infoFile, "Expected island name: " + info.Island + ", Got: " + island)); } List <Commodity> commodities = ppocr.ExtractCommodities(bm, commodArea); if (ppocr.Error.Length > 0) { results.Add(new TestResult(infoFile, ppocr.Error)); } List <Commodity> refCommods = info.Commodities; if (refCommods.Count != commodities.Count) { results.Add(new TestResult(infoFile, "Commodities Count is " + commodities.Count.ToString() + ", expected " + refCommods.Count.ToString())); } for (int i = 0; i < refCommods.Count && i < commodities.Count; i++) { if (!commodities[i].ToString().Equals(refCommods[i].ToString())) { results.Add(new TestResult(infoFile, "Expected: " + refCommods[i].ToString() + " Got: " + commodities[i].ToString())); } } DateTime dtStop = DateTime.Now; if (results.Count <= 0) { TestResult result = new TestResult(infoFile, "PASS"); result.Duration = dtStop.Subtract(dtStart).TotalSeconds.ToString(); results.Add(result); } return(results); }
private void mnuToolsOCRBitmapFile_Click(object sender, EventArgs e) { if (openFileDialog.ShowDialog() == DialogResult.OK) { CleanupDebugFiles(); PPOcr ppocr = new PPOcr(null); UnsafeBitmap bm = new UnsafeBitmap(openFileDialog.FileName); ppocr.ClearErrors(); Rectangle commodArea = ppocr.FindCommodityArea(bm); string island = ppocr.ExtractIslandName(bm); if (island == null || island.Length <= 0) { MessageBox.Show(this, "Can't find island name", Application.ProductName); } labelTitle.Text = "Island: " + island; List <Commodity> commodities = ppocr.ExtractCommodities(bm, commodArea); if (ppocr.Error.Length > 0) { MessageBox.Show(this, ppocr.Error, Application.ProductName); } if (commodities == null || commodities.Count <= 0) { dataGridView1.DataSource = null; } else { dataGridView1.DataSource = new List <Commodity>(commodities); } } }