// Copyright (c) Six Labors. // Licensed under the Six Labors Split License. using SixLabors.ImageSharp.Metadata.Profiles.Icc; namespace SixLabors.ImageSharp.Tests.TestDataIcc; internal static class IccTestDataMultiProcessElements { /// /// Input Channel Count: 3 /// Output Channel Count: 3 /// public static readonly IccCurveSetProcessElement CurvePeValGrad = new([ IccTestDataCurves.OneDimensionalValFormula1, IccTestDataCurves.OneDimensionalValFormula2, IccTestDataCurves.OneDimensionalValFormula1 ]); /// /// Input Channel Count: 3 /// Output Channel Count: 3 /// public static readonly byte[] CurvePeGrad = ArrayHelper.Concat( IccTestDataCurves.OneDimensionalFormula1, IccTestDataCurves.OneDimensionalFormula2, IccTestDataCurves.OneDimensionalFormula1); public static readonly object[][] CurveSetTestData = [ [CurvePeGrad, CurvePeValGrad, 3, 3] ]; /// /// Input Channel Count: 3 /// Output Channel Count: 3 /// public static readonly IccMatrixProcessElement MatrixPeValGrad = new( IccTestDataMatrix.Single2DArrayValGrad, IccTestDataMatrix.Single1DArrayValGrad); /// /// Input Channel Count: 3 /// Output Channel Count: 3 /// public static readonly byte[] MatrixPeGrad = ArrayHelper.Concat( IccTestDataMatrix.Single2DGrad, IccTestDataMatrix.Single1DGrad); public static readonly object[][] MatrixTestData = [ [MatrixPeGrad, MatrixPeValGrad, 3, 3] ]; /// /// Input Channel Count: 2 /// Output Channel Count: 3 /// public static readonly IccClutProcessElement ClutpeValGrad = new(IccTestDataLut.ClutValf32); /// /// Input Channel Count: 2 /// Output Channel Count: 3 /// public static readonly byte[] ClutpeGrad = IccTestDataLut.ClutF32; public static readonly object[][] ClutTestData = [ [ClutpeGrad, ClutpeValGrad, 2, 3] ]; public static readonly IccMultiProcessElement MpeValMatrix = MatrixPeValGrad; public static readonly IccMultiProcessElement MpeValClut = ClutpeValGrad; public static readonly IccMultiProcessElement MpeValCurve = CurvePeValGrad; public static readonly IccMultiProcessElement MpeValbAcs = new IccBAcsProcessElement(3, 3); public static readonly IccMultiProcessElement MpeValeAcs = new IccEAcsProcessElement(3, 3); public static readonly byte[] MpeMatrix = ArrayHelper.Concat( new byte[] { 0x6D, 0x61, 0x74, 0x66, 0x00, 0x03, 0x00, 0x03, }, MatrixPeGrad); public static readonly byte[] MpeClut = ArrayHelper.Concat( new byte[] { 0x63, 0x6C, 0x75, 0x74, 0x00, 0x02, 0x00, 0x03, }, ClutpeGrad); public static readonly byte[] MpeCurve = ArrayHelper.Concat( new byte[] { 0x6D, 0x66, 0x6C, 0x74, 0x00, 0x03, 0x00, 0x03, }, CurvePeGrad); public static readonly byte[] MpeBAcs = [ 0x62, 0x41, 0x43, 0x53, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ]; public static readonly byte[] MpeEAcs = [ 0x65, 0x41, 0x43, 0x53, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ]; public static readonly object[][] MultiProcessElementTestData = [ [MpeMatrix, MpeValMatrix], [MpeClut, MpeValClut], [MpeCurve, MpeValCurve], [MpeBAcs, MpeValbAcs], [MpeEAcs, MpeValeAcs] ]; }