aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.UnitTesting
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-02-14 14:36:47 +0200
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-02-14 14:36:47 +0200
commit2dfa224ed624075752defff77ef96961ec766bff (patch)
tree0627b986f61f2f0e91972f5125e4591b403553d0 /Software/Visual_Studio/Tango.UnitTesting
parent7ed962c7206817556e790d048bca38e4e3caf249 (diff)
downloadTango-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.cs101
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;
}
}
}