// 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 IccTestDataCurves
{
///
/// Channels: 3
///
public static readonly IccResponseCurve ResponseValGrad = new(
IccCurveMeasurementEncodings.StatusA,
[
IccTestDataNonPrimitives.XyzNumberValVar1,
IccTestDataNonPrimitives.XyzNumberValVar2,
IccTestDataNonPrimitives.XyzNumberValVar3
],
[
[IccTestDataNonPrimitives.ResponseNumberVal1, IccTestDataNonPrimitives.ResponseNumberVal2],
[IccTestDataNonPrimitives.ResponseNumberVal3, IccTestDataNonPrimitives.ResponseNumberVal4],
[IccTestDataNonPrimitives.ResponseNumberVal5, IccTestDataNonPrimitives.ResponseNumberVal6]
]);
///
/// Channels: 3
///
public static readonly byte[] ResponseGrad = ArrayHelper.Concat(
new byte[] { 0x53, 0x74, 0x61, 0x41 },
IccTestDataPrimitives.UInt322,
IccTestDataPrimitives.UInt322,
IccTestDataPrimitives.UInt322,
IccTestDataNonPrimitives.XyzNumberVar1,
IccTestDataNonPrimitives.XyzNumberVar2,
IccTestDataNonPrimitives.XyzNumberVar3,
IccTestDataNonPrimitives.ResponseNumber1,
IccTestDataNonPrimitives.ResponseNumber2,
IccTestDataNonPrimitives.ResponseNumber3,
IccTestDataNonPrimitives.ResponseNumber4,
IccTestDataNonPrimitives.ResponseNumber5,
IccTestDataNonPrimitives.ResponseNumber6);
public static readonly object[][] ResponseCurveTestData =
[
[ResponseGrad, ResponseValGrad, 3]
];
public static readonly IccParametricCurve ParametricValVar1 = new(1);
public static readonly IccParametricCurve ParametricValVar2 = new(1, 2, 3);
public static readonly IccParametricCurve ParametricValVar3 = new(1, 2, 3, 4);
public static readonly IccParametricCurve ParametricValVar4 = new(1, 2, 3, 4, 5);
public static readonly IccParametricCurve ParametricValVar5 = new(1, 2, 3, 4, 5, 6, 7);
public static readonly byte[] ParametricVar1 = ArrayHelper.Concat(
new byte[]
{
0x00, 0x00,
0x00, 0x00,
},
IccTestDataPrimitives.Fix161);
public static readonly byte[] ParametricVar2 = ArrayHelper.Concat(
new byte[]
{
0x00, 0x01,
0x00, 0x00,
},
IccTestDataPrimitives.Fix161,
IccTestDataPrimitives.Fix162,
IccTestDataPrimitives.Fix163);
public static readonly byte[] ParametricVar3 = ArrayHelper.Concat(
new byte[]
{
0x00, 0x02,
0x00, 0x00,
},
IccTestDataPrimitives.Fix161,
IccTestDataPrimitives.Fix162,
IccTestDataPrimitives.Fix163,
IccTestDataPrimitives.Fix164);
public static readonly byte[] ParametricVar4 = ArrayHelper.Concat(
new byte[]
{
0x00, 0x03,
0x00, 0x00,
},
IccTestDataPrimitives.Fix161,
IccTestDataPrimitives.Fix162,
IccTestDataPrimitives.Fix163,
IccTestDataPrimitives.Fix164,
IccTestDataPrimitives.Fix165);
public static readonly byte[] ParametricVar5 = ArrayHelper.Concat(
new byte[]
{
0x00, 0x04,
0x00, 0x00,
},
IccTestDataPrimitives.Fix161,
IccTestDataPrimitives.Fix162,
IccTestDataPrimitives.Fix163,
IccTestDataPrimitives.Fix164,
IccTestDataPrimitives.Fix165,
IccTestDataPrimitives.Fix166,
IccTestDataPrimitives.Fix167);
public static readonly object[][] ParametricCurveTestData =
[
[ParametricVar1, ParametricValVar1],
[ParametricVar2, ParametricValVar2],
[ParametricVar3, ParametricValVar3],
[ParametricVar4, ParametricValVar4],
[ParametricVar5, ParametricValVar5]
];
// Formula Segment
public static readonly IccFormulaCurveElement FormulaValVar1 = new(IccFormulaCurveType.Type1, 1, 2, 3, 4, 0, 0);
public static readonly IccFormulaCurveElement FormulaValVar2 = new(IccFormulaCurveType.Type2, 1, 2, 3, 4, 5, 0);
public static readonly IccFormulaCurveElement FormulaValVar3 = new(IccFormulaCurveType.Type3, 0, 2, 3, 4, 5, 6);
public static readonly byte[] FormulaVar1 = ArrayHelper.Concat(
new byte[]
{
0x00, 0x00,
0x00, 0x00,
},
IccTestDataPrimitives.Single1,
IccTestDataPrimitives.Single2,
IccTestDataPrimitives.Single3,
IccTestDataPrimitives.Single4);
public static readonly byte[] FormulaVar2 = ArrayHelper.Concat(
new byte[]
{
0x00, 0x01,
0x00, 0x00,
},
IccTestDataPrimitives.Single1,
IccTestDataPrimitives.Single2,
IccTestDataPrimitives.Single3,
IccTestDataPrimitives.Single4,
IccTestDataPrimitives.Single5);
public static readonly byte[] FormulaVar3 = ArrayHelper.Concat(
new byte[]
{
0x00, 0x02,
0x00, 0x00,
},
IccTestDataPrimitives.Single2,
IccTestDataPrimitives.Single3,
IccTestDataPrimitives.Single4,
IccTestDataPrimitives.Single5,
IccTestDataPrimitives.Single6);
public static readonly object[][] FormulaCurveSegmentTestData =
[
[FormulaVar1, FormulaValVar1],
[FormulaVar2, FormulaValVar2],
[FormulaVar3, FormulaValVar3]
];
// Sampled Segment
public static readonly IccSampledCurveElement SampledValGrad1 = new([1, 2, 3, 4, 5, 6, 7, 8, 9]);
public static readonly IccSampledCurveElement SampledValGrad2 = new([9, 8, 7, 6, 5, 4, 3, 2, 1]);
public static readonly byte[] SampledGrad1 = ArrayHelper.Concat(
IccTestDataPrimitives.UInt329,
IccTestDataPrimitives.Single1,
IccTestDataPrimitives.Single2,
IccTestDataPrimitives.Single3,
IccTestDataPrimitives.Single4,
IccTestDataPrimitives.Single5,
IccTestDataPrimitives.Single6,
IccTestDataPrimitives.Single7,
IccTestDataPrimitives.Single8,
IccTestDataPrimitives.Single9);
public static readonly byte[] SampledGrad2 = ArrayHelper.Concat(
IccTestDataPrimitives.UInt329,
IccTestDataPrimitives.Single9,
IccTestDataPrimitives.Single8,
IccTestDataPrimitives.Single7,
IccTestDataPrimitives.Single6,
IccTestDataPrimitives.Single5,
IccTestDataPrimitives.Single4,
IccTestDataPrimitives.Single3,
IccTestDataPrimitives.Single2,
IccTestDataPrimitives.Single1);
public static readonly object[][] SampledCurveSegmentTestData =
[
[SampledGrad1, SampledValGrad1],
[SampledGrad2, SampledValGrad2]
];
public static readonly IccCurveSegment SegmentValFormula1 = FormulaValVar1;
public static readonly IccCurveSegment SegmentValFormula2 = FormulaValVar2;
public static readonly IccCurveSegment SegmentValFormula3 = FormulaValVar3;
public static readonly IccCurveSegment SegmentValSampled1 = SampledValGrad1;
public static readonly IccCurveSegment SegmentValSampled2 = SampledValGrad2;
public static readonly byte[] SegmentFormula1 = ArrayHelper.Concat(
new byte[]
{
0x70, 0x61, 0x72, 0x66,
0x00, 0x00, 0x00, 0x00,
},
FormulaVar1);
public static readonly byte[] SegmentFormula2 = ArrayHelper.Concat(
new byte[]
{
0x70, 0x61, 0x72, 0x66,
0x00, 0x00, 0x00, 0x00,
},
FormulaVar2);
public static readonly byte[] SegmentFormula3 = ArrayHelper.Concat(
new byte[]
{
0x70, 0x61, 0x72, 0x66,
0x00, 0x00, 0x00, 0x00,
},
FormulaVar3);
public static readonly byte[] SegmentSampled1 = ArrayHelper.Concat(
new byte[]
{
0x73, 0x61, 0x6D, 0x66,
0x00, 0x00, 0x00, 0x00,
},
SampledGrad1);
public static readonly byte[] SegmentSampled2 = ArrayHelper.Concat(
new byte[]
{
0x73, 0x61, 0x6D, 0x66,
0x00, 0x00, 0x00, 0x00,
},
SampledGrad2);
public static readonly object[][] CurveSegmentTestData =
[
[SegmentFormula1, SegmentValFormula1],
[SegmentFormula2, SegmentValFormula2],
[SegmentFormula3, SegmentValFormula3],
[SegmentSampled1, SegmentValSampled1],
[SegmentSampled2, SegmentValSampled2]
];
public static readonly IccOneDimensionalCurve OneDimensionalValFormula1 = new(
[0, 1],
[SegmentValFormula1, SegmentValFormula2, SegmentValFormula3]);
public static readonly IccOneDimensionalCurve OneDimensionalValFormula2 = new(
[0, 1],
[SegmentValFormula3, SegmentValFormula2, SegmentValFormula1]);
public static readonly IccOneDimensionalCurve OneDimensionalValSampled = new(
[0, 1],
[SegmentValSampled1, SegmentValSampled2, SegmentValSampled1]);
public static readonly byte[] OneDimensionalFormula1 = ArrayHelper.Concat(
new byte[]
{
0x00, 0x03,
0x00, 0x00,
},
IccTestDataPrimitives.Single0,
IccTestDataPrimitives.Single1,
SegmentFormula1,
SegmentFormula2,
SegmentFormula3);
public static readonly byte[] OneDimensionalFormula2 = ArrayHelper.Concat(
new byte[]
{
0x00, 0x03,
0x00, 0x00,
},
IccTestDataPrimitives.Single0,
IccTestDataPrimitives.Single1,
SegmentFormula3,
SegmentFormula2,
SegmentFormula1);
public static readonly byte[] OneDimensionalSampled = ArrayHelper.Concat(
new byte[]
{
0x00, 0x03,
0x00, 0x00,
},
IccTestDataPrimitives.Single0,
IccTestDataPrimitives.Single1,
SegmentSampled1,
SegmentSampled2,
SegmentSampled1);
public static readonly object[][] OneDimensionalCurveTestData =
[
[OneDimensionalFormula1, OneDimensionalValFormula1],
[OneDimensionalFormula2, OneDimensionalValFormula2],
[OneDimensionalSampled, OneDimensionalValSampled]
];
}