test(image-pipeline): add cpu webgl parity coverage
This commit is contained in:
57
tests/image-pipeline/parity/cpu-webgl-parity.test.ts
Normal file
57
tests/image-pipeline/parity/cpu-webgl-parity.test.ts
Normal file
@@ -0,0 +1,57 @@
|
||||
// @vitest-environment jsdom
|
||||
|
||||
import { afterEach, describe, expect, it } from "vitest";
|
||||
|
||||
import {
|
||||
createParityPipelines,
|
||||
evaluateCpuWebglParity,
|
||||
installParityWebglContextMock,
|
||||
parityTolerances,
|
||||
restoreParityWebglContextMock,
|
||||
} from "@/tests/image-pipeline/parity/fixtures";
|
||||
|
||||
describe("cpu vs webgl parity", () => {
|
||||
afterEach(() => {
|
||||
restoreParityWebglContextMock();
|
||||
});
|
||||
|
||||
it("keeps curves-only pipeline within parity tolerance", () => {
|
||||
const pipelines = createParityPipelines();
|
||||
installParityWebglContextMock();
|
||||
|
||||
const metrics = evaluateCpuWebglParity(pipelines.curvesOnly);
|
||||
|
||||
expect(metrics.maxChannelDelta).toBeLessThanOrEqual(parityTolerances.curvesOnly.maxChannelDelta);
|
||||
expect(metrics.histogramSimilarity).toBeGreaterThanOrEqual(
|
||||
parityTolerances.curvesOnly.histogramSimilarity,
|
||||
);
|
||||
});
|
||||
|
||||
it("keeps color-adjust-only pipeline within parity tolerance", () => {
|
||||
const pipelines = createParityPipelines();
|
||||
installParityWebglContextMock();
|
||||
|
||||
const metrics = evaluateCpuWebglParity(pipelines.colorAdjustOnly);
|
||||
|
||||
expect(metrics.maxChannelDelta).toBeLessThanOrEqual(
|
||||
parityTolerances.colorAdjustOnly.maxChannelDelta,
|
||||
);
|
||||
expect(metrics.histogramSimilarity).toBeGreaterThanOrEqual(
|
||||
parityTolerances.colorAdjustOnly.histogramSimilarity,
|
||||
);
|
||||
});
|
||||
|
||||
it("keeps curves + color-adjust chain within parity tolerance", () => {
|
||||
const pipelines = createParityPipelines();
|
||||
installParityWebglContextMock();
|
||||
|
||||
const metrics = evaluateCpuWebglParity(pipelines.curvesPlusColorAdjust);
|
||||
|
||||
expect(metrics.maxChannelDelta).toBeLessThanOrEqual(
|
||||
parityTolerances.curvesPlusColorAdjust.maxChannelDelta,
|
||||
);
|
||||
expect(metrics.histogramSimilarity).toBeGreaterThanOrEqual(
|
||||
parityTolerances.curvesPlusColorAdjust.histogramSimilarity,
|
||||
);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user