From 8b62fc428b806d7200e1058dea01c953f6898e91 Mon Sep 17 00:00:00 2001 From: Ryan Oldenburg Date: Wed, 11 May 2022 17:54:02 -0500 Subject: [PATCH 1/2] jpegsuite, validate uses masters/diffs/rendered independently --- .gitignore | 2 +- tests/benchmark_jpeg.nim | 44 +------------- .../jpeg/{master => masters}/16x16.jpg | Bin .../jpeg/{master => masters}/16x16.png | Bin .../{master => masters}/16x16_progressive.jpg | Bin .../jpeg/{master => masters}/8x8.jpg | Bin .../jpeg/{master => masters}/8x8.png | Bin .../{master => masters}/8x8_progressive.jpg | Bin .../jpeg/{master => masters}/black.jpg | Bin .../jpeg/{master => masters}/blue.jpg | Bin .../jpeg/{master => masters}/cat.png | Bin .../jpeg/{master => masters}/cat_4_1_1.jpg | Bin .../jpeg/{master => masters}/cat_4_2_0.jpg | Bin .../cat_4_2_0_progressive.jpg | Bin .../jpeg/{master => masters}/cat_4_2_2.jpg | Bin .../jpeg/{master => masters}/cat_4_4_4.jpg | Bin .../cat_4_4_4_progressive.jpg | Bin .../cat_restart_markers_5.jpg | Bin .../cat_restart_markers_5_progressive.jpg | Bin .../jpeg/{master => masters}/exif_overrun.jpg | Bin .../{master => masters}/grayscale_test.jpg | Bin .../jpeg/{master => masters}/green.jpg | Bin .../jpeg/{master => masters}/mandrill.jpg | Bin .../jpeg/{master => masters}/progressive.jpg | Bin .../jpeg/{master => masters}/quality_01.jpg | Bin .../jpeg/{master => masters}/quality_10.jpg | Bin .../jpeg/{master => masters}/quality_100.jpg | Bin .../jpeg/{master => masters}/quality_25.jpg | Bin .../jpeg/{master => masters}/quality_50.jpg | Bin .../jpeg/{master => masters}/red.jpg | Bin .../jpeg/{master => masters}/testimg.jpg | Bin .../jpeg/{master => masters}/testimgp.jpg | Bin .../jpeg/{master => masters}/testorig.jpg | Bin .../jpeg/{master => masters}/testprog.jpg | Bin .../jpeg/{master => masters}/white.jpg | Bin tests/fuzz_jpeg.nim | 50 ++-------------- tests/jpegsuite.nim | 39 +++++++++++++ tests/test_jpeg.nim | 49 +--------------- tests/validate_jpeg.nim | 55 +++--------------- 39 files changed, 58 insertions(+), 181 deletions(-) rename tests/fileformats/jpeg/{master => masters}/16x16.jpg (100%) rename tests/fileformats/jpeg/{master => masters}/16x16.png (100%) rename tests/fileformats/jpeg/{master => masters}/16x16_progressive.jpg (100%) rename tests/fileformats/jpeg/{master => masters}/8x8.jpg (100%) rename tests/fileformats/jpeg/{master => masters}/8x8.png (100%) rename tests/fileformats/jpeg/{master => masters}/8x8_progressive.jpg (100%) rename tests/fileformats/jpeg/{master => masters}/black.jpg (100%) rename tests/fileformats/jpeg/{master => masters}/blue.jpg (100%) rename tests/fileformats/jpeg/{master => masters}/cat.png (100%) rename tests/fileformats/jpeg/{master => masters}/cat_4_1_1.jpg (100%) rename tests/fileformats/jpeg/{master => masters}/cat_4_2_0.jpg (100%) rename tests/fileformats/jpeg/{master => masters}/cat_4_2_0_progressive.jpg (100%) rename tests/fileformats/jpeg/{master => masters}/cat_4_2_2.jpg (100%) rename tests/fileformats/jpeg/{master => masters}/cat_4_4_4.jpg (100%) rename tests/fileformats/jpeg/{master => masters}/cat_4_4_4_progressive.jpg (100%) rename tests/fileformats/jpeg/{master => masters}/cat_restart_markers_5.jpg (100%) rename tests/fileformats/jpeg/{master => masters}/cat_restart_markers_5_progressive.jpg (100%) rename tests/fileformats/jpeg/{master => masters}/exif_overrun.jpg (100%) rename tests/fileformats/jpeg/{master => masters}/grayscale_test.jpg (100%) rename tests/fileformats/jpeg/{master => masters}/green.jpg (100%) rename tests/fileformats/jpeg/{master => masters}/mandrill.jpg (100%) rename tests/fileformats/jpeg/{master => masters}/progressive.jpg (100%) rename tests/fileformats/jpeg/{master => masters}/quality_01.jpg (100%) rename tests/fileformats/jpeg/{master => masters}/quality_10.jpg (100%) rename tests/fileformats/jpeg/{master => masters}/quality_100.jpg (100%) rename tests/fileformats/jpeg/{master => masters}/quality_25.jpg (100%) rename tests/fileformats/jpeg/{master => masters}/quality_50.jpg (100%) rename tests/fileformats/jpeg/{master => masters}/red.jpg (100%) rename tests/fileformats/jpeg/{master => masters}/testimg.jpg (100%) rename tests/fileformats/jpeg/{master => masters}/testimgp.jpg (100%) rename tests/fileformats/jpeg/{master => masters}/testorig.jpg (100%) rename tests/fileformats/jpeg/{master => masters}/testprog.jpg (100%) rename tests/fileformats/jpeg/{master => masters}/white.jpg (100%) create mode 100644 tests/jpegsuite.nim diff --git a/.gitignore b/.gitignore index 64c9d74..d6e47da 100644 --- a/.gitignore +++ b/.gitignore @@ -15,4 +15,4 @@ bindings/generated *.dSYM dump.txt tests/fileformats/jpeg/generated -tests/fileformats/jpeg/diff +tests/fileformats/jpeg/diffs diff --git a/tests/benchmark_jpeg.nim b/tests/benchmark_jpeg.nim index 498e691..9e67ea1 100644 --- a/tests/benchmark_jpeg.nim +++ b/tests/benchmark_jpeg.nim @@ -1,46 +1,6 @@ -import benchy, pixie/fileformats/jpg +import benchy, pixie/fileformats/jpg, jpegsuite -var files = @[ - "tests/fileformats/jpeg/master/red.jpg", - "tests/fileformats/jpeg/master/green.jpg", - "tests/fileformats/jpeg/master/blue.jpg", - "tests/fileformats/jpeg/master/white.jpg", - "tests/fileformats/jpeg/master/black.jpg", - - "tests/fileformats/jpeg/master/8x8.jpg", - "tests/fileformats/jpeg/master/8x8_progressive.jpg", - - "tests/fileformats/jpeg/master/16x16.jpg", - "tests/fileformats/jpeg/master/16x16_progressive.jpg", - - "tests/fileformats/jpeg/master/quality_01.jpg", - "tests/fileformats/jpeg/master/quality_10.jpg", - "tests/fileformats/jpeg/master/quality_25.jpg", - "tests/fileformats/jpeg/master/quality_50.jpg", - "tests/fileformats/jpeg/master/quality_100.jpg", - - "tests/fileformats/jpeg/master/cat_4_4_4.jpg", - "tests/fileformats/jpeg/master/cat_4_4_4.jpg", - "tests/fileformats/jpeg/master/cat_4_2_2.jpg", - "tests/fileformats/jpeg/master/cat_4_2_0.jpg", - "tests/fileformats/jpeg/master/cat_4_1_1.jpg", - "tests/fileformats/jpeg/master/cat_4_2_0_progressive.jpg", - "tests/fileformats/jpeg/master/cat_4_4_4_progressive.jpg", - "tests/fileformats/jpeg/master/cat_restart_markers_5.jpg", - "tests/fileformats/jpeg/master/cat_restart_markers_5_progressive.jpg", - - "tests/fileformats/jpeg/master/mandrill.jpg", - "tests/fileformats/jpeg/master/exif_overrun.jpg", - "tests/fileformats/jpeg/master/grayscale_test.jpg", - "tests/fileformats/jpeg/master/progressive.jpg", - - "tests/fileformats/jpeg/master/testimg.jpg", - "tests/fileformats/jpeg/master/testimgp.jpg", - "tests/fileformats/jpeg/master/testorig.jpg", - "tests/fileformats/jpeg/master/testprog.jpg", -] - -for file in files: +for file in jpegSuiteFiles: let data = readFile(file) timeIt "jpeg " & $(len(data) div 1024) & "k decode": discard decodeJpg(data) diff --git a/tests/fileformats/jpeg/master/16x16.jpg b/tests/fileformats/jpeg/masters/16x16.jpg similarity index 100% rename from tests/fileformats/jpeg/master/16x16.jpg rename to tests/fileformats/jpeg/masters/16x16.jpg diff --git a/tests/fileformats/jpeg/master/16x16.png b/tests/fileformats/jpeg/masters/16x16.png similarity index 100% rename from tests/fileformats/jpeg/master/16x16.png rename to tests/fileformats/jpeg/masters/16x16.png diff --git a/tests/fileformats/jpeg/master/16x16_progressive.jpg b/tests/fileformats/jpeg/masters/16x16_progressive.jpg similarity index 100% rename from tests/fileformats/jpeg/master/16x16_progressive.jpg rename to tests/fileformats/jpeg/masters/16x16_progressive.jpg diff --git a/tests/fileformats/jpeg/master/8x8.jpg b/tests/fileformats/jpeg/masters/8x8.jpg similarity index 100% rename from tests/fileformats/jpeg/master/8x8.jpg rename to tests/fileformats/jpeg/masters/8x8.jpg diff --git a/tests/fileformats/jpeg/master/8x8.png b/tests/fileformats/jpeg/masters/8x8.png similarity index 100% rename from tests/fileformats/jpeg/master/8x8.png rename to tests/fileformats/jpeg/masters/8x8.png diff --git a/tests/fileformats/jpeg/master/8x8_progressive.jpg b/tests/fileformats/jpeg/masters/8x8_progressive.jpg similarity index 100% rename from tests/fileformats/jpeg/master/8x8_progressive.jpg rename to tests/fileformats/jpeg/masters/8x8_progressive.jpg diff --git a/tests/fileformats/jpeg/master/black.jpg b/tests/fileformats/jpeg/masters/black.jpg similarity index 100% rename from tests/fileformats/jpeg/master/black.jpg rename to tests/fileformats/jpeg/masters/black.jpg diff --git a/tests/fileformats/jpeg/master/blue.jpg b/tests/fileformats/jpeg/masters/blue.jpg similarity index 100% rename from tests/fileformats/jpeg/master/blue.jpg rename to tests/fileformats/jpeg/masters/blue.jpg diff --git a/tests/fileformats/jpeg/master/cat.png b/tests/fileformats/jpeg/masters/cat.png similarity index 100% rename from tests/fileformats/jpeg/master/cat.png rename to tests/fileformats/jpeg/masters/cat.png diff --git a/tests/fileformats/jpeg/master/cat_4_1_1.jpg b/tests/fileformats/jpeg/masters/cat_4_1_1.jpg similarity index 100% rename from tests/fileformats/jpeg/master/cat_4_1_1.jpg rename to tests/fileformats/jpeg/masters/cat_4_1_1.jpg diff --git a/tests/fileformats/jpeg/master/cat_4_2_0.jpg b/tests/fileformats/jpeg/masters/cat_4_2_0.jpg similarity index 100% rename from tests/fileformats/jpeg/master/cat_4_2_0.jpg rename to tests/fileformats/jpeg/masters/cat_4_2_0.jpg diff --git a/tests/fileformats/jpeg/master/cat_4_2_0_progressive.jpg b/tests/fileformats/jpeg/masters/cat_4_2_0_progressive.jpg similarity index 100% rename from tests/fileformats/jpeg/master/cat_4_2_0_progressive.jpg rename to tests/fileformats/jpeg/masters/cat_4_2_0_progressive.jpg diff --git a/tests/fileformats/jpeg/master/cat_4_2_2.jpg b/tests/fileformats/jpeg/masters/cat_4_2_2.jpg similarity index 100% rename from tests/fileformats/jpeg/master/cat_4_2_2.jpg rename to tests/fileformats/jpeg/masters/cat_4_2_2.jpg diff --git a/tests/fileformats/jpeg/master/cat_4_4_4.jpg b/tests/fileformats/jpeg/masters/cat_4_4_4.jpg similarity index 100% rename from tests/fileformats/jpeg/master/cat_4_4_4.jpg rename to tests/fileformats/jpeg/masters/cat_4_4_4.jpg diff --git a/tests/fileformats/jpeg/master/cat_4_4_4_progressive.jpg b/tests/fileformats/jpeg/masters/cat_4_4_4_progressive.jpg similarity index 100% rename from tests/fileformats/jpeg/master/cat_4_4_4_progressive.jpg rename to tests/fileformats/jpeg/masters/cat_4_4_4_progressive.jpg diff --git a/tests/fileformats/jpeg/master/cat_restart_markers_5.jpg b/tests/fileformats/jpeg/masters/cat_restart_markers_5.jpg similarity index 100% rename from tests/fileformats/jpeg/master/cat_restart_markers_5.jpg rename to tests/fileformats/jpeg/masters/cat_restart_markers_5.jpg diff --git a/tests/fileformats/jpeg/master/cat_restart_markers_5_progressive.jpg b/tests/fileformats/jpeg/masters/cat_restart_markers_5_progressive.jpg similarity index 100% rename from tests/fileformats/jpeg/master/cat_restart_markers_5_progressive.jpg rename to tests/fileformats/jpeg/masters/cat_restart_markers_5_progressive.jpg diff --git a/tests/fileformats/jpeg/master/exif_overrun.jpg b/tests/fileformats/jpeg/masters/exif_overrun.jpg similarity index 100% rename from tests/fileformats/jpeg/master/exif_overrun.jpg rename to tests/fileformats/jpeg/masters/exif_overrun.jpg diff --git a/tests/fileformats/jpeg/master/grayscale_test.jpg b/tests/fileformats/jpeg/masters/grayscale_test.jpg similarity index 100% rename from tests/fileformats/jpeg/master/grayscale_test.jpg rename to tests/fileformats/jpeg/masters/grayscale_test.jpg diff --git a/tests/fileformats/jpeg/master/green.jpg b/tests/fileformats/jpeg/masters/green.jpg similarity index 100% rename from tests/fileformats/jpeg/master/green.jpg rename to tests/fileformats/jpeg/masters/green.jpg diff --git a/tests/fileformats/jpeg/master/mandrill.jpg b/tests/fileformats/jpeg/masters/mandrill.jpg similarity index 100% rename from tests/fileformats/jpeg/master/mandrill.jpg rename to tests/fileformats/jpeg/masters/mandrill.jpg diff --git a/tests/fileformats/jpeg/master/progressive.jpg b/tests/fileformats/jpeg/masters/progressive.jpg similarity index 100% rename from tests/fileformats/jpeg/master/progressive.jpg rename to tests/fileformats/jpeg/masters/progressive.jpg diff --git a/tests/fileformats/jpeg/master/quality_01.jpg b/tests/fileformats/jpeg/masters/quality_01.jpg similarity index 100% rename from tests/fileformats/jpeg/master/quality_01.jpg rename to tests/fileformats/jpeg/masters/quality_01.jpg diff --git a/tests/fileformats/jpeg/master/quality_10.jpg b/tests/fileformats/jpeg/masters/quality_10.jpg similarity index 100% rename from tests/fileformats/jpeg/master/quality_10.jpg rename to tests/fileformats/jpeg/masters/quality_10.jpg diff --git a/tests/fileformats/jpeg/master/quality_100.jpg b/tests/fileformats/jpeg/masters/quality_100.jpg similarity index 100% rename from tests/fileformats/jpeg/master/quality_100.jpg rename to tests/fileformats/jpeg/masters/quality_100.jpg diff --git a/tests/fileformats/jpeg/master/quality_25.jpg b/tests/fileformats/jpeg/masters/quality_25.jpg similarity index 100% rename from tests/fileformats/jpeg/master/quality_25.jpg rename to tests/fileformats/jpeg/masters/quality_25.jpg diff --git a/tests/fileformats/jpeg/master/quality_50.jpg b/tests/fileformats/jpeg/masters/quality_50.jpg similarity index 100% rename from tests/fileformats/jpeg/master/quality_50.jpg rename to tests/fileformats/jpeg/masters/quality_50.jpg diff --git a/tests/fileformats/jpeg/master/red.jpg b/tests/fileformats/jpeg/masters/red.jpg similarity index 100% rename from tests/fileformats/jpeg/master/red.jpg rename to tests/fileformats/jpeg/masters/red.jpg diff --git a/tests/fileformats/jpeg/master/testimg.jpg b/tests/fileformats/jpeg/masters/testimg.jpg similarity index 100% rename from tests/fileformats/jpeg/master/testimg.jpg rename to tests/fileformats/jpeg/masters/testimg.jpg diff --git a/tests/fileformats/jpeg/master/testimgp.jpg b/tests/fileformats/jpeg/masters/testimgp.jpg similarity index 100% rename from tests/fileformats/jpeg/master/testimgp.jpg rename to tests/fileformats/jpeg/masters/testimgp.jpg diff --git a/tests/fileformats/jpeg/master/testorig.jpg b/tests/fileformats/jpeg/masters/testorig.jpg similarity index 100% rename from tests/fileformats/jpeg/master/testorig.jpg rename to tests/fileformats/jpeg/masters/testorig.jpg diff --git a/tests/fileformats/jpeg/master/testprog.jpg b/tests/fileformats/jpeg/masters/testprog.jpg similarity index 100% rename from tests/fileformats/jpeg/master/testprog.jpg rename to tests/fileformats/jpeg/masters/testprog.jpg diff --git a/tests/fileformats/jpeg/master/white.jpg b/tests/fileformats/jpeg/masters/white.jpg similarity index 100% rename from tests/fileformats/jpeg/master/white.jpg rename to tests/fileformats/jpeg/masters/white.jpg diff --git a/tests/fuzz_jpeg.nim b/tests/fuzz_jpeg.nim index 248ab56..d65481e 100644 --- a/tests/fuzz_jpeg.nim +++ b/tests/fuzz_jpeg.nim @@ -1,57 +1,15 @@ -import pixie/common, pixie/fileformats/jpg, random, strformat +import pixie/common, pixie/fileformats/jpg, random, strformat, jpegsuite randomize() -var files = @[ - "tests/fileformats/jpeg/master/red.jpg", - "tests/fileformats/jpeg/master/green.jpg", - "tests/fileformats/jpeg/master/blue.jpg", - "tests/fileformats/jpeg/master/white.jpg", - "tests/fileformats/jpeg/master/black.jpg", - - "tests/fileformats/jpeg/master/8x8.jpg", - "tests/fileformats/jpeg/master/8x8_progressive.jpg", - - "tests/fileformats/jpeg/master/16x16.jpg", - "tests/fileformats/jpeg/master/16x16_progressive.jpg", - - "tests/fileformats/jpeg/master/quality_01.jpg", - "tests/fileformats/jpeg/master/quality_10.jpg", - "tests/fileformats/jpeg/master/quality_25.jpg", - "tests/fileformats/jpeg/master/quality_50.jpg", - "tests/fileformats/jpeg/master/quality_100.jpg", - - "tests/fileformats/jpeg/master/cat_4_4_4.jpg", - "tests/fileformats/jpeg/master/cat_4_4_4.jpg", - "tests/fileformats/jpeg/master/cat_4_2_2.jpg", - "tests/fileformats/jpeg/master/cat_4_2_0.jpg", - "tests/fileformats/jpeg/master/cat_4_1_1.jpg", - "tests/fileformats/jpeg/master/cat_4_2_0_progressive.jpg", - "tests/fileformats/jpeg/master/cat_4_4_4_progressive.jpg", - "tests/fileformats/jpeg/master/cat_restart_markers_5.jpg", - "tests/fileformats/jpeg/master/cat_restart_markers_5_progressive.jpg", - - "tests/fileformats/jpeg/master/mandrill.jpg", - - "tests/fileformats/jpeg/master/exif_overrun.jpg", - "tests/fileformats/jpeg/master/grayscale_test.jpg", - "tests/fileformats/jpeg/master/progressive.jpg", - - "tests/fileformats/jpeg/master/testimg.jpg", - "tests/fileformats/jpeg/master/testimgp.jpg", - "tests/fileformats/jpeg/master/testorig.jpg", - "tests/fileformats/jpeg/master/testprog.jpg", -] - for i in 0 ..< 10_000: - let original = readFile(sample(files)) - - var data = original + let file = sample(jpegSuiteFiles) + var data = readFile(file) let pos = rand(0 ..< data.len) value = rand(255).uint8 data[pos] = value.char - echo &"{i} {pos} {value}" + echo &"{i} {file} {pos} {value}" try: let img = decodeJpg(data) diff --git a/tests/jpegsuite.nim b/tests/jpegsuite.nim new file mode 100644 index 0000000..3bb5650 --- /dev/null +++ b/tests/jpegsuite.nim @@ -0,0 +1,39 @@ +const jpegSuiteFiles* = [ + "tests/fileformats/jpeg/masters/red.jpg", + "tests/fileformats/jpeg/masters/green.jpg", + "tests/fileformats/jpeg/masters/blue.jpg", + "tests/fileformats/jpeg/masters/white.jpg", + "tests/fileformats/jpeg/masters/black.jpg", + + "tests/fileformats/jpeg/masters/8x8.jpg", + "tests/fileformats/jpeg/masters/8x8_progressive.jpg", + + "tests/fileformats/jpeg/masters/16x16.jpg", + "tests/fileformats/jpeg/masters/16x16_progressive.jpg", + + "tests/fileformats/jpeg/masters/quality_01.jpg", + "tests/fileformats/jpeg/masters/quality_10.jpg", + "tests/fileformats/jpeg/masters/quality_25.jpg", + "tests/fileformats/jpeg/masters/quality_50.jpg", + "tests/fileformats/jpeg/masters/quality_100.jpg", + + "tests/fileformats/jpeg/masters/cat_4_4_4.jpg", + "tests/fileformats/jpeg/masters/cat_4_4_4.jpg", + "tests/fileformats/jpeg/masters/cat_4_2_2.jpg", + "tests/fileformats/jpeg/masters/cat_4_2_0.jpg", + "tests/fileformats/jpeg/masters/cat_4_1_1.jpg", + "tests/fileformats/jpeg/masters/cat_4_2_0_progressive.jpg", + "tests/fileformats/jpeg/masters/cat_4_4_4_progressive.jpg", + "tests/fileformats/jpeg/masters/cat_restart_markers_5.jpg", + "tests/fileformats/jpeg/masters/cat_restart_markers_5_progressive.jpg", + + "tests/fileformats/jpeg/masters/mandrill.jpg", + "tests/fileformats/jpeg/masters/exif_overrun.jpg", + "tests/fileformats/jpeg/masters/grayscale_test.jpg", + "tests/fileformats/jpeg/masters/progressive.jpg", + + "tests/fileformats/jpeg/masters/testimg.jpg", + "tests/fileformats/jpeg/masters/testimgp.jpg", + "tests/fileformats/jpeg/masters/testorig.jpg", + "tests/fileformats/jpeg/masters/testprog.jpg", +] diff --git a/tests/test_jpeg.nim b/tests/test_jpeg.nim index 93b8e45..b4ee7bf 100644 --- a/tests/test_jpeg.nim +++ b/tests/test_jpeg.nim @@ -1,47 +1,4 @@ -import pixie, strutils +import pixie, jpegsuite -import pixie/fileformats/jpg - -var files = @[ - "tests/fileformats/jpeg/master/red.jpg", - "tests/fileformats/jpeg/master/green.jpg", - "tests/fileformats/jpeg/master/blue.jpg", - "tests/fileformats/jpeg/master/white.jpg", - "tests/fileformats/jpeg/master/black.jpg", - - "tests/fileformats/jpeg/master/8x8.jpg", - "tests/fileformats/jpeg/master/8x8_progressive.jpg", - - "tests/fileformats/jpeg/master/16x16.jpg", - "tests/fileformats/jpeg/master/16x16_progressive.jpg", - - "tests/fileformats/jpeg/master/quality_01.jpg", - "tests/fileformats/jpeg/master/quality_10.jpg", - "tests/fileformats/jpeg/master/quality_25.jpg", - "tests/fileformats/jpeg/master/quality_50.jpg", - "tests/fileformats/jpeg/master/quality_100.jpg", - - "tests/fileformats/jpeg/master/cat_4_4_4.jpg", - "tests/fileformats/jpeg/master/cat_4_4_4.jpg", - "tests/fileformats/jpeg/master/cat_4_2_2.jpg", - "tests/fileformats/jpeg/master/cat_4_2_0.jpg", - "tests/fileformats/jpeg/master/cat_4_1_1.jpg", - "tests/fileformats/jpeg/master/cat_4_2_0_progressive.jpg", - "tests/fileformats/jpeg/master/cat_4_4_4_progressive.jpg", - "tests/fileformats/jpeg/master/cat_restart_markers_5.jpg", - "tests/fileformats/jpeg/master/cat_restart_markers_5_progressive.jpg", - - "tests/fileformats/jpeg/master/mandrill.jpg", - "tests/fileformats/jpeg/master/exif_overrun.jpg", - "tests/fileformats/jpeg/master/grayscale_test.jpg", - "tests/fileformats/jpeg/master/progressive.jpg", - - "tests/fileformats/jpeg/master/testimg.jpg", - "tests/fileformats/jpeg/master/testimgp.jpg", - "tests/fileformats/jpeg/master/testorig.jpg", - "tests/fileformats/jpeg/master/testprog.jpg", -] - -for file in files: - var img = decodeJpg(readFile(file)) - # img.writeFile(file.replace("master", "generated").replace(".jpg", ".jpeg.png")) +for file in jpegSuiteFiles: + let img = readImage(file) diff --git a/tests/validate_jpeg.nim b/tests/validate_jpeg.nim index f3f5647..6c712bd 100644 --- a/tests/validate_jpeg.nim +++ b/tests/validate_jpeg.nim @@ -1,58 +1,21 @@ -import pixie, strutils, os, strformat +import pixie, strutils, os, strformat, jpegsuite -import pixie/fileformats/jpg +createDir("tests/fileformats/jpeg/generated") +createDir("tests/fileformats/jpeg/diffs") -var files = @[ - "tests/fileformats/jpeg/master/red.jpg", - "tests/fileformats/jpeg/master/green.jpg", - "tests/fileformats/jpeg/master/blue.jpg", - "tests/fileformats/jpeg/master/white.jpg", - "tests/fileformats/jpeg/master/black.jpg", +for file in jpegSuiteFiles: + let img = readImage(file) - "tests/fileformats/jpeg/master/8x8.jpg", - "tests/fileformats/jpeg/master/8x8_progressive.jpg", - - "tests/fileformats/jpeg/master/16x16.jpg", - "tests/fileformats/jpeg/master/16x16_progressive.jpg", - - "tests/fileformats/jpeg/master/quality_01.jpg", - "tests/fileformats/jpeg/master/quality_10.jpg", - "tests/fileformats/jpeg/master/quality_25.jpg", - "tests/fileformats/jpeg/master/quality_50.jpg", - "tests/fileformats/jpeg/master/quality_100.jpg", - - "tests/fileformats/jpeg/master/cat_4_4_4.jpg", - "tests/fileformats/jpeg/master/cat_4_4_4.jpg", - "tests/fileformats/jpeg/master/cat_4_2_2.jpg", - "tests/fileformats/jpeg/master/cat_4_2_0.jpg", - "tests/fileformats/jpeg/master/cat_4_1_1.jpg", - "tests/fileformats/jpeg/master/cat_4_2_0_progressive.jpg", - "tests/fileformats/jpeg/master/cat_4_4_4_progressive.jpg", - "tests/fileformats/jpeg/master/cat_restart_markers_5.jpg", - "tests/fileformats/jpeg/master/cat_restart_markers_5_progressive.jpg", - - "tests/fileformats/jpeg/master/mandrill.jpg", - "tests/fileformats/jpeg/master/exif_overrun.jpg", - "tests/fileformats/jpeg/master/grayscale_test.jpg", - "tests/fileformats/jpeg/master/progressive.jpg", - - "tests/fileformats/jpeg/master/testimg.jpg", - "tests/fileformats/jpeg/master/testimgp.jpg", - "tests/fileformats/jpeg/master/testorig.jpg", - "tests/fileformats/jpeg/master/testprog.jpg", -] - -for file in files: - var img = decodeJpg(readFile(file)) - - let genFile = file.replace("master", "generated").replace(".jpg", ".png") - let diffFile = file.replace("master", "diff").replace(".jpg", ".png") + let genFile = file.replace("masters", "generated").replace(".jpg", ".png") + img.writeFile(genFile) if execShellCmd(&"convert {file} {genFile}") != 0: echo "fail" var img2 = readImage(genFile) let (score, diff) = img2.diff(img) + + let diffFile = file.replace("master", "diff").replace(".jpg", ".png") diff.writeFile(diffFile) if score > 1: From 23e2d5b331e0845fcdb168bf9f246452341896e9 Mon Sep 17 00:00:00 2001 From: Ryan Oldenburg Date: Wed, 11 May 2022 20:03:40 -0500 Subject: [PATCH 2/2] morepretty --- tests/benchmark_jpeg.nim | 2 +- tests/fuzz_jpeg.nim | 2 +- tests/test_jpeg.nim | 2 +- tests/validate_jpeg.nim | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/benchmark_jpeg.nim b/tests/benchmark_jpeg.nim index 9e67ea1..3c44674 100644 --- a/tests/benchmark_jpeg.nim +++ b/tests/benchmark_jpeg.nim @@ -1,4 +1,4 @@ -import benchy, pixie/fileformats/jpg, jpegsuite +import benchy, jpegsuite, pixie/fileformats/jpg for file in jpegSuiteFiles: let data = readFile(file) diff --git a/tests/fuzz_jpeg.nim b/tests/fuzz_jpeg.nim index d65481e..d101ca9 100644 --- a/tests/fuzz_jpeg.nim +++ b/tests/fuzz_jpeg.nim @@ -1,4 +1,4 @@ -import pixie/common, pixie/fileformats/jpg, random, strformat, jpegsuite +import jpegsuite, pixie/common, pixie/fileformats/jpg, random, strformat randomize() diff --git a/tests/test_jpeg.nim b/tests/test_jpeg.nim index b4ee7bf..d8750c6 100644 --- a/tests/test_jpeg.nim +++ b/tests/test_jpeg.nim @@ -1,4 +1,4 @@ -import pixie, jpegsuite +import jpegsuite, pixie for file in jpegSuiteFiles: let img = readImage(file) diff --git a/tests/validate_jpeg.nim b/tests/validate_jpeg.nim index 6c712bd..c8cfcc1 100644 --- a/tests/validate_jpeg.nim +++ b/tests/validate_jpeg.nim @@ -1,4 +1,4 @@ -import pixie, strutils, os, strformat, jpegsuite +import jpegsuite, os, pixie, strformat, strutils createDir("tests/fileformats/jpeg/generated") createDir("tests/fileformats/jpeg/diffs")