diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-02-14 14:36:47 +0200 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-02-14 14:36:47 +0200 |
| commit | 2dfa224ed624075752defff77ef96961ec766bff (patch) | |
| tree | 0627b986f61f2f0e91972f5125e4591b403553d0 /Software/Visual_Studio/Tango.UnitTesting | |
| parent | 7ed962c7206817556e790d048bca38e4e3caf249 (diff) | |
| download | Tango-2dfa224ed624075752defff77ef96961ec766bff.tar.gz Tango-2dfa224ed624075752defff77ef96961ec766bff.zip | |
Refactored ColorLab PMR Structs !
Diffstat (limited to 'Software/Visual_Studio/Tango.UnitTesting')
| -rw-r--r-- | Software/Visual_Studio/Tango.UnitTesting/ColorLib_TST.cs | 101 |
1 files changed, 76 insertions, 25 deletions
diff --git a/Software/Visual_Studio/Tango.UnitTesting/ColorLib_TST.cs b/Software/Visual_Studio/Tango.UnitTesting/ColorLib_TST.cs index e5ef944e5..f4940cdac 100644 --- a/Software/Visual_Studio/Tango.UnitTesting/ColorLib_TST.cs +++ b/Software/Visual_Studio/Tango.UnitTesting/ColorLib_TST.cs @@ -7,6 +7,7 @@ using Tango.Integration.Observables; using System.Linq; using Google.Protobuf; using Tango.PMR; +using System.Collections.Generic; namespace Tango.UnitTesting { @@ -14,24 +15,22 @@ namespace Tango.UnitTesting [TestCategory("Color Lab")] public class ColorLib_TST { - [DllImport("Tango.ColorLib.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "ForwardConvert")] - public static extern int ForwardConvert(IntPtr data, int size, ref IntPtr output); - - [DllImport("Tango.ColorLib.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "InverseConvert")] - public static extern int InverseConvert(IntPtr data, int size, ref IntPtr output); + [DllImport("Tango.ColorLib.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "Convert")] + public static extern int Convert(IntPtr data, int size, ref IntPtr output); [TestMethod] public void Convert_Color_To_Volumes() { ConversionInput conversionInput = new ConversionInput(); - conversionInput.Input = new InputColor(); + conversionInput.ColorSpace = PMR.ColorLab.ColorSpace.Rgb; + conversionInput.InputCoordinates = new InputCoordinates(); conversionInput.SegmentLength = 100; - conversionInput.Input.Red = 255; - conversionInput.Input.Green = 0; - conversionInput.Input.Blue = 0; + conversionInput.InputCoordinates.Red = 50; + conversionInput.InputCoordinates.Green = 100; + conversionInput.InputCoordinates.Blue = 200; conversionInput.ThreadL = 100; conversionInput.ThreadA = 0.00526049995830391; @@ -46,18 +45,36 @@ namespace Tango.UnitTesting conversionInput.ForwardData = ByteString.CopyFrom(cct.ForwardData); conversionInput.InverseData = ByteString.CopyFrom(cct.InverseData); - var cat = db.Cats.FirstOrDefault(); + var machine = db.Machines.FirstOrDefault(); + Assert.IsNotNull(machine); + + var configuration = machine.Configuration; + var rml = db.Rmls.FirstOrDefault(); + + Assert.IsNotNull(rml); + + List<LiquidTypesRml> factors = configuration.IdsPacks.OrderBy(x => x.PackIndex).Select(x => x.LiquidType).SelectMany(x => x.LiquidTypesRmls).Where(x => x.Rml.Guid == RML.Guid).ToList(); + + foreach (var idsPack in configuration.IdsPacks.OrderBy(x => x.PackIndex)) + { + InputLiquid inputLiquid = new InputLiquid(); + inputLiquid.LiquidType = idsPack.LiquidType.ToColorLibLiquidType(); + + Assert.IsFalse(configuration.IdsPacks.IndexOf(idsPack) > factors.Count - 1); - Assert.IsNotNull(cat); + inputLiquid.MaxNanoliterPerCentimeter = factors[configuration.IdsPacks.IndexOf(idsPack)].MaxNlPerCm; - conversionInput.CalibrationData = cat.CreateDemoCalibrationData(); + inputLiquid.CalibrationData = GenerateCalibrationData(inputLiquid.LiquidType); + + conversionInput.InputCoordinates.InputLiquids.Add(inputLiquid); + } } - NativePMR<ConversionInput, ConversionOutput> nativePMR = new NativePMR<ConversionInput, ConversionOutput>(ForwardConvert); + NativePMR<ConversionInput, ConversionOutput> nativePMR = new NativePMR<ConversionInput, ConversionOutput>(Convert); ConversionOutput output = nativePMR.Invoke(conversionInput); - Assert.IsTrue(output.Suggestions.Count > 0); + Assert.IsTrue(output.SingleCoordinates.OutputLiquids.Count == conversionInput.InputCoordinates.InputLiquids.Count); } [TestMethod] @@ -65,14 +82,11 @@ namespace Tango.UnitTesting { ConversionInput conversionInput = new ConversionInput(); - conversionInput.Input = new InputColor(); + conversionInput.ColorSpace = PMR.ColorLab.ColorSpace.Volume; - conversionInput.SegmentLength = 100; + conversionInput.InputCoordinates = new InputCoordinates(); - conversionInput.Input.CV = 10; - conversionInput.Input.MV = 20; - conversionInput.Input.YV = 30; - conversionInput.Input.KV = 0; + conversionInput.SegmentLength = 100; conversionInput.ThreadL = 100; conversionInput.ThreadA = 0.00526049995830391; @@ -87,18 +101,55 @@ namespace Tango.UnitTesting conversionInput.ForwardData = ByteString.CopyFrom(cct.ForwardData); conversionInput.InverseData = ByteString.CopyFrom(cct.InverseData); - var cat = db.Cats.FirstOrDefault(); + var machine = db.Machines.FirstOrDefault(); + Assert.IsNotNull(machine); + + var configuration = machine.Configuration; + var rml = db.Rmls.FirstOrDefault(); + + Assert.IsNotNull(rml); + + List<LiquidTypesRml> factors = configuration.IdsPacks.OrderBy(x => x.PackIndex).Select(x => x.LiquidType).SelectMany(x => x.LiquidTypesRmls).Where(x => x.Rml.Guid == RML.Guid).ToList(); - Assert.IsNotNull(cat); + foreach (var idsPack in configuration.IdsPacks.OrderBy(x => x.PackIndex)) + { + InputLiquid inputLiquid = new InputLiquid(); + inputLiquid.LiquidType = idsPack.LiquidType.ToColorLibLiquidType(); - conversionInput.CalibrationData = cat.CreateDemoCalibrationData(); + Assert.IsFalse(configuration.IdsPacks.IndexOf(idsPack) > factors.Count - 1); + + inputLiquid.MaxNanoliterPerCentimeter = factors[configuration.IdsPacks.IndexOf(idsPack)].MaxNlPerCm; + + inputLiquid.CalibrationData = GenerateCalibrationData(inputLiquid.LiquidType); + + inputLiquid.Volume = new Random().Next(0, 100); + + conversionInput.InputCoordinates.InputLiquids.Add(inputLiquid); + } } - NativePMR<ConversionInput, ConversionOutput> nativePMR = new NativePMR<ConversionInput, ConversionOutput>(InverseConvert); + NativePMR<ConversionInput, ConversionOutput> nativePMR = new NativePMR<ConversionInput, ConversionOutput>(Convert); ConversionOutput output = nativePMR.Invoke(conversionInput); - Assert.IsTrue(output.Suggestions.Count > 0); + Assert.IsTrue(output.SingleCoordinates.OutputLiquids.Count == conversionInput.InputCoordinates.InputLiquids.Count); + } + + private static CalibrationData GenerateCalibrationData(PMR.ColorLab.LiquidType liquidType) + { + CalibrationData data = new CalibrationData(); + data.LiquidType = liquidType; + + for (int i = 0; i < 100; i++) + { + data.CalibrationPoints.Add(new CalibrationPoint() + { + X = i, + Y = i, + }); + } + + return data; } } } |
