using Google.Protobuf; using Microsoft.VisualStudio.TestTools.UnitTesting; using System; using System.Collections.Generic; using System.Diagnostics; using System.Drawing; using System.Drawing.Imaging; using System.IO; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; using Tango.Core; using Tango.Core.IO; using Tango.CSV; using Tango.PMR.TCC; using Tango.TCC.BL; using Tango.TCC.BL.Entities; namespace Tango.UnitTesting.TCC { [TestClass] [TestCategory("TCC")] public class TCC_TST { [TestMethod] public void Detect() { var original_bitmap = Directory.GetCurrentDirectory() + "\\TCC\\TCC Resources\\bitmap.bmp"; using (ColorDetector detector = new ColorDetector()) { DetectionInput input = new DetectionInput() { Columns = 10, Rows = 11, TargetIndex = 99, Bitmap = ByteString.CopyFrom(File.ReadAllBytes(original_bitmap)), RequestColorMatrix = true, RequestDebugImage = true, }; var output = detector.Detect(input); if (input.RequestDebugImage) { using (MemoryStream ms = new MemoryStream(output.DebugBitmap.ToArray())) { var outputBitmap = TemporaryManager.Default.CreateFile(".bmp"); outputBitmap.Persist = true; ms.Position = 0; Bitmap bmp = new Bitmap(ms); bmp.Save(outputBitmap); Process.Start(outputBitmap); } } if (input.RequestColorMatrix) { using (Bitmap colorMatrixBmp = ColorDetector.DetectionOutputToImage(input, output, 300, 320)) { var outputBitmap = TemporaryManager.Default.CreateFile(".bmp"); outputBitmap.Persist = true; colorMatrixBmp.Save(outputBitmap); Process.Start(outputBitmap); } var benchmarksCsvFile = TemporaryManager.Default.CreateFile(".csv"); benchmarksCsvFile.Persist = true; using (CsvFile benchmarksRGB = new CsvFile(new CsvDestination(benchmarksCsvFile))) { foreach (var color in output.ColorMatrix) { benchmarksRGB.Append(color); } } Helper.ShowInExplorer(benchmarksCsvFile); } } } [TestMethod] public void Test_Database() { using (TCCContext db = new TCCContext(new DataSource() { Address = "localhost\\SQLEXPRESS", Catalog = "TCC", IntegratedSecurity = true, Type = DataSourceType.SQLServer, })) { var device = db.Devices.FirstOrDefault(); Assert.IsNotNull(device); db.SaveChanges(); } } private byte[] GetBitmapData(byte[] bitmap) { using (MemoryStream ms = new MemoryStream(bitmap)) { ms.Position = 0; Bitmap image = new Bitmap(ms); Rectangle area = new Rectangle(0, 0, image.Width, image.Height); BitmapData bitmapData = image.LockBits(area, ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb); int stride = bitmapData.Stride; IntPtr ptr = bitmapData.Scan0; int numBytes = bitmapData.Stride * image.Height; byte[] rgbValues = new byte[numBytes]; Marshal.Copy(ptr, rgbValues, 0, numBytes); return rgbValues; } } } }