// 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(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 =
{
new object[] { 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 =
{
new object[] { 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 =
{
new object[] { 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 =
{
new object[] { MpeMatrix, MpeValMatrix },
new object[] { MpeClut, MpeValClut },
new object[] { MpeCurve, MpeValCurve },
new object[] { MpeBAcs, MpeValbAcs },
new object[] { MpeEAcs, MpeValeAcs },
};
}