diff --git a/.gitignore b/.gitignore index c3939ff..caff1f8 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ dump.txt tests/fileformats/jpeg/generated tests/fileformats/jpeg/diffs *.dylib +tmp diff --git a/tests/benchmark_blends.nim b/tests/bench_blends.nim similarity index 98% rename from tests/benchmark_blends.nim rename to tests/bench_blends.nim index 59befb7..d149f20 100644 --- a/tests/benchmark_blends.nim +++ b/tests/bench_blends.nim @@ -1,8 +1,8 @@ import benchy, chroma, pixie/blends, pixie/images, vmath let - backdrop = newImage(256, 256) - source = newImage(256, 256) + backdrop = newImage(512, 512) + source = newImage(512, 512) source.fill(rgba(100, 100, 100, 100)) template reset() = diff --git a/tests/benchmark_fonts.nim b/tests/bench_fonts.nim similarity index 100% rename from tests/benchmark_fonts.nim rename to tests/bench_fonts.nim diff --git a/tests/benchmark_gif.nim b/tests/bench_gif.nim similarity index 100% rename from tests/benchmark_gif.nim rename to tests/bench_gif.nim diff --git a/tests/benchmark_images.nim b/tests/bench_images.nim similarity index 100% rename from tests/benchmark_images.nim rename to tests/bench_images.nim diff --git a/tests/benchmark_images_draw.nim b/tests/bench_images_draw.nim similarity index 85% rename from tests/benchmark_images_draw.nim rename to tests/bench_images_draw.nim index 9f5c637..699c5e7 100644 --- a/tests/benchmark_images_draw.nim +++ b/tests/bench_images_draw.nim @@ -7,7 +7,7 @@ block: a.fill(rgba(255, 0, 0, 255)) b.fill(rgba(0, 255, 0, 255)) - timeIt "draw small-on-big NormalBlend": + timeIt "small-on-big NormalBlend": a.draw(b, translate(vec2(25, 25)), NormalBlend) keep(b) @@ -18,7 +18,7 @@ block: a.fill(rgba(255, 0, 0, 255)) b.fill(rgba(0, 255, 0, 255)) - timeIt "draw small-on-big Smooth NormalBlend": + timeIt "small-on-big Smooth NormalBlend": a.draw(b, translate(vec2(25.2, 25.2)), NormalBlend) keep(b) @@ -29,7 +29,7 @@ block: a.fill(rgba(255, 0, 0, 255)) b.fill(rgba(0, 255, 0, 255)) - timeIt "draw big-on-bigger NormalBlend": + timeIt "big-on-bigger NormalBlend": a.draw(b, translate(vec2(25, 25)), NormalBlend) keep(b) @@ -40,7 +40,7 @@ block: a.fill(rgba(255, 0, 0, 255)) b.fill(rgba(0, 255, 0, 255)) - timeIt "draw [scale 0.5]": + timeIt "scale x0.5": a.draw(b, translate(vec2(25, 25)) * scale(vec2(0.5, 0.5)), NormalBlend) keep(b) @@ -51,7 +51,7 @@ block: a.fill(rgba(255, 0, 0, 255)) b.fill(rgba(0, 255, 0, 255)) - timeIt "draw [scale 2]": + timeIt "scale x2": a.draw(b, translate(vec2(25, 25)) * scale(vec2(2, 2)), NormalBlend) keep(b) @@ -62,7 +62,7 @@ block: a.fill(rgba(255, 0, 0, 255)) b.fill(rgba(0, rand(255).uint8, 0, 255)) - timeIt "draw Smooth [x translate]": + timeIt "smooth x-translate": a.draw(b, translate(vec2(25.2, 0)), NormalBlend) keep(b) @@ -73,7 +73,7 @@ block: a.fill(rgba(255, 0, 0, 255)) b.fill(rgba(0, rand(255).uint8, 0, 255)) - timeIt "draw Smooth [y translate]": + timeIt "smooth y-translate": a.draw(b, translate(vec2(0, 25.2)), NormalBlend) keep(b) @@ -84,7 +84,7 @@ block: a.fill(rgba(255, 0, 0, 255)) b.fill(rgba(0, rand(255).uint8, 0, 255)) - timeIt "draw Smooth [x + y translate]": + timeIt "smooth translate": a.draw(b, translate(vec2(25.2, 25.2)), NormalBlend) keep(b) @@ -95,7 +95,7 @@ block: a.fill(rgba(255, 0, 0, 255)) b.fill(rgba(0, rand(255).uint8, 0, 255)) - timeIt "draw Smooth [rotate 45 deg]": + timeIt "smooth rotate 45": a.draw(b, translate(vec2(0, 500)) * rotate(toRadians(45)), NormalBlend) keep(b) @@ -106,7 +106,7 @@ block: a.fill(rgba(255, 0, 0, 255)) b.fill(rand(255).uint8) - timeIt "draw mask Smooth [rotate 45 deg]": + timeIt "mask smooth rotate 45 deg": a.draw(b, translate(vec2(0, 500)) * rotate(toRadians(45)), NormalBlend) keep(b) @@ -115,7 +115,7 @@ block: a = newImage(100, 100) b = newImage(50, 50) - timeIt "shadow (no offset)": + timeIt "shadow no offset": b.fill(rgba(0, 0, 0, 255)) a.draw(b, translate(vec2(25, 25))) @@ -132,7 +132,7 @@ block: a = newImage(100, 100) b = newImage(50, 50) - timeIt "shadow (with offset)": + timeIt "shadow with offset": b.fill(rgba(0, 0, 0, 255)) a.draw(b, translate(vec2(25, 25))) diff --git a/tests/bench_jpeg.nim b/tests/bench_jpeg.nim new file mode 100644 index 0000000..6c79c6d --- /dev/null +++ b/tests/bench_jpeg.nim @@ -0,0 +1,30 @@ +import benchy, pixie/fileformats/jpeg, os + +const + jpegFiles* = [ + "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" + ] + +for file in jpegFiles: + let data = readFile(file) + timeIt "pixie " & file.splitPath.tail & " decode": + discard decodeJpeg(data) + +# import stb_image/read as stbi +# block: +# for file in jpegFiles: +# let data = readFile(file) +# var name = file.splitPath.tail + +# timeIt "stb " & file.splitPath.tail & " decode": +# var width, height, channels: int +# discard loadFromMemory( +# cast[seq[byte]](data), +# width, +# height, +# channels, +# stbi.RGBA +# ) diff --git a/tests/benchmark_masks.nim b/tests/bench_masks.nim similarity index 100% rename from tests/benchmark_masks.nim rename to tests/bench_masks.nim diff --git a/tests/benchmark_paints.nim b/tests/bench_paints.nim similarity index 94% rename from tests/benchmark_paints.nim rename to tests/bench_paints.nim index 5cf7411..8eea4b3 100644 --- a/tests/benchmark_paints.nim +++ b/tests/bench_paints.nim @@ -29,6 +29,8 @@ timeIt "GradientLinear horizontal": # timeIt "GradientLinear radial": # discard +let image100 = newImage(100, 100) + timeIt "GradientLinear angular": let paint = newPaint(AngularGradientPaint) paint.gradientHandlePositions = @[ @@ -40,4 +42,4 @@ timeIt "GradientLinear angular": ColorStop(color: color(1, 0, 0, 1), position: 0), ColorStop(color: color(1, 0, 0, 0.15625), position: 1.0), ] - image.fillGradient(paint) + image100.fillGradient(paint) diff --git a/tests/benchmark_paths.nim b/tests/bench_paths.nim similarity index 100% rename from tests/benchmark_paths.nim rename to tests/bench_paths.nim diff --git a/tests/bench_png.nim b/tests/bench_png.nim new file mode 100644 index 0000000..2439118 --- /dev/null +++ b/tests/bench_png.nim @@ -0,0 +1,67 @@ +import benchy, pixie/fileformats/png + +let + filePath = "tests/fileformats/png/lenna.png" + data = readFile(filePath) + +block: + let + decodedPng = decodePng(data) + decodedImage = newImage(decodedPng) + + timeIt "pixie decode": + discard decodePng(data) + + timeIt "pixie decode + alpha": + discard decodePng(data).convertToImage() + + timeIt "pixie encode": + discard encodePng(decodedPng) + + timeIt "pixie encode + alpha": + discard encodePng(decodedImage) + +# import nimPNG +# block: +# timeIt "nimPNG decode": +# discard decodePNG32(data) + +# let decoded = decodePNG32(data) +# timeIt "nimPNG encode": +# discard encodePNG32(decoded.data, decoded.width, decoded.height) + +# import stb_image/read as stbi, stb_image/write as stbr +# block: +# timeIt "stb_image decode": +# var width, height, channels: int +# discard loadFromMemory( +# cast[seq[byte]](data), +# width, +# height, +# channels, +# stbi.RGBA +# ) + +# var width, height, channels: int +# let decoded = loadFromMemory( +# cast[seq[byte]](data), +# width, +# height, +# channels, +# stbi.RGBA +# ) + +# timeIt "stb_image encode": +# discard writePNG(width, height, channels, decoded).len + +# import cairo +# block: +# timeIt "cairo decode": +# discard imageSurfaceCreateFromPng(filePath.cstring) + +# let decoded = imageSurfaceCreateFromPng(filePath.cstring) +# timeIt "cairo encode": +# var write: WriteFunc = +# proc(closure: pointer, data: cstring, len: int32): Status {.cdecl.} = +# StatusSuccess +# discard decoded.writeToPng(write, nil) diff --git a/tests/benchmark_qoi.nim b/tests/bench_qoi.nim similarity index 100% rename from tests/benchmark_qoi.nim rename to tests/bench_qoi.nim diff --git a/tests/benchmark_svg.nim b/tests/bench_svg.nim similarity index 100% rename from tests/benchmark_svg.nim rename to tests/bench_svg.nim diff --git a/tests/benchmark_jpeg.nim b/tests/benchmark_jpeg.nim deleted file mode 100644 index 1d9d22d..0000000 --- a/tests/benchmark_jpeg.nim +++ /dev/null @@ -1,19 +0,0 @@ -import benchy, jpegsuite, pixie/fileformats/jpeg, stb_image/read as stbi, strformat - -for file in jpegSuiteFiles: - let data = readFile(file) - timeIt &"pixie jpeg {(data.len div 1024)}k decode": - discard decodeJpeg(data) - -block: - for file in jpegSuiteFiles: - let data = readFile(file) - timeIt &"stb_image jpeg {(data.len div 1024)}k decode": - var width, height, channels: int - discard loadFromMemory( - cast[seq[byte]](data), - width, - height, - channels, - stbi.RGBA - ) diff --git a/tests/benchmark_png.nim b/tests/benchmark_png.nim deleted file mode 100644 index 39f2bbc..0000000 --- a/tests/benchmark_png.nim +++ /dev/null @@ -1,65 +0,0 @@ -import benchy, cairo, nimPNG, pixie/fileformats/png, stb_image/read as stbi, - stb_image/write as stbr - -let - filePath = "tests/fileformats/png/lenna.png" - data = readFile(filePath) - -block: - let - decodedPng = decodePng(data) - decodedImage = newImage(decodedPng) - - timeIt "pixie decode": - discard decodePng(data) - - timeIt "pixie decode + alpha": - discard decodePng(data).convertToImage() - - timeIt "pixie encode": - discard encodePng(decodedPng) - - timeIt "pixie encode + alpha": - discard encodePng(decodedImage) - -block: - timeIt "nimPNG decode": - discard decodePNG32(data) - - let decoded = decodePNG32(data) - timeIt "nimPNG encode": - discard encodePNG32(decoded.data, decoded.width, decoded.height) - -block: - timeIt "stb_image decode": - var width, height, channels: int - discard loadFromMemory( - cast[seq[byte]](data), - width, - height, - channels, - stbi.RGBA - ) - - var width, height, channels: int - let decoded = loadFromMemory( - cast[seq[byte]](data), - width, - height, - channels, - stbi.RGBA - ) - - timeIt "stb_image encode": - discard writePNG(width, height, channels, decoded).len - -block: - timeIt "cairo decode": - discard imageSurfaceCreateFromPng(filePath.cstring) - - let decoded = imageSurfaceCreateFromPng(filePath.cstring) - timeIt "cairo encode": - var write: WriteFunc = - proc(closure: pointer, data: cstring, len: int32): Status {.cdecl.} = - StatusSuccess - discard decoded.writeToPng(write, nil) diff --git a/tests/fileformats/gif/newtons_cradle.png b/tests/fileformats/gif/newtons_cradle.png new file mode 100644 index 0000000..bddc25a Binary files /dev/null and b/tests/fileformats/gif/newtons_cradle.png differ diff --git a/tests/fileformats/svg/diffs/Ghostscript_Tiger.png b/tests/fileformats/svg/diffs/Ghostscript_Tiger.png deleted file mode 100644 index 270e38d..0000000 Binary files a/tests/fileformats/svg/diffs/Ghostscript_Tiger.png and /dev/null differ diff --git a/tests/fileformats/svg/diffs/accessibility-outline.png b/tests/fileformats/svg/diffs/accessibility-outline.png deleted file mode 100644 index 9b7850d..0000000 Binary files a/tests/fileformats/svg/diffs/accessibility-outline.png and /dev/null differ diff --git a/tests/fileformats/svg/diffs/circle01.png b/tests/fileformats/svg/diffs/circle01.png deleted file mode 100644 index 4e7a4b7..0000000 Binary files a/tests/fileformats/svg/diffs/circle01.png and /dev/null differ diff --git a/tests/fileformats/svg/diffs/dashes.png b/tests/fileformats/svg/diffs/dashes.png deleted file mode 100644 index dc2c32f..0000000 Binary files a/tests/fileformats/svg/diffs/dashes.png and /dev/null differ diff --git a/tests/fileformats/svg/diffs/dragon2.png b/tests/fileformats/svg/diffs/dragon2.png deleted file mode 100644 index 04163e3..0000000 Binary files a/tests/fileformats/svg/diffs/dragon2.png and /dev/null differ diff --git a/tests/fileformats/svg/diffs/ellipse01.png b/tests/fileformats/svg/diffs/ellipse01.png deleted file mode 100644 index a42cbc5..0000000 Binary files a/tests/fileformats/svg/diffs/ellipse01.png and /dev/null differ diff --git a/tests/fileformats/svg/diffs/line01.png b/tests/fileformats/svg/diffs/line01.png deleted file mode 100644 index 7dd5152..0000000 Binary files a/tests/fileformats/svg/diffs/line01.png and /dev/null differ diff --git a/tests/fileformats/svg/diffs/miterlimit.png b/tests/fileformats/svg/diffs/miterlimit.png deleted file mode 100644 index f783e5b..0000000 Binary files a/tests/fileformats/svg/diffs/miterlimit.png and /dev/null differ diff --git a/tests/fileformats/svg/diffs/polygon01.png b/tests/fileformats/svg/diffs/polygon01.png deleted file mode 100644 index dcb7f2b..0000000 Binary files a/tests/fileformats/svg/diffs/polygon01.png and /dev/null differ diff --git a/tests/fileformats/svg/diffs/polyline01.png b/tests/fileformats/svg/diffs/polyline01.png deleted file mode 100644 index a0d2f24..0000000 Binary files a/tests/fileformats/svg/diffs/polyline01.png and /dev/null differ diff --git a/tests/fileformats/svg/diffs/quad01.png b/tests/fileformats/svg/diffs/quad01.png deleted file mode 100644 index c4aabbc..0000000 Binary files a/tests/fileformats/svg/diffs/quad01.png and /dev/null differ diff --git a/tests/fileformats/svg/diffs/rect01.png b/tests/fileformats/svg/diffs/rect01.png deleted file mode 100644 index a0d2f24..0000000 Binary files a/tests/fileformats/svg/diffs/rect01.png and /dev/null differ diff --git a/tests/fileformats/svg/diffs/rect02.png b/tests/fileformats/svg/diffs/rect02.png deleted file mode 100644 index 4673b93..0000000 Binary files a/tests/fileformats/svg/diffs/rect02.png and /dev/null differ diff --git a/tests/fileformats/svg/diffs/scale.png b/tests/fileformats/svg/diffs/scale.png deleted file mode 100644 index 1b2eee1..0000000 Binary files a/tests/fileformats/svg/diffs/scale.png and /dev/null differ diff --git a/tests/fileformats/svg/diffs/triangle01.png b/tests/fileformats/svg/diffs/triangle01.png deleted file mode 100644 index cf5313e..0000000 Binary files a/tests/fileformats/svg/diffs/triangle01.png and /dev/null differ diff --git a/tests/fileformats/svg/rendered/Ghostscript_Tiger.png b/tests/fileformats/svg/rendered/Ghostscript_Tiger.png deleted file mode 100644 index 6683d15..0000000 Binary files a/tests/fileformats/svg/rendered/Ghostscript_Tiger.png and /dev/null differ diff --git a/tests/fileformats/svg/rendered/accessibility-outline.png b/tests/fileformats/svg/rendered/accessibility-outline.png deleted file mode 100644 index bae3c87..0000000 Binary files a/tests/fileformats/svg/rendered/accessibility-outline.png and /dev/null differ diff --git a/tests/fileformats/svg/rendered/circle01.png b/tests/fileformats/svg/rendered/circle01.png deleted file mode 100644 index 5c59503..0000000 Binary files a/tests/fileformats/svg/rendered/circle01.png and /dev/null differ diff --git a/tests/fileformats/svg/rendered/dashes.png b/tests/fileformats/svg/rendered/dashes.png deleted file mode 100644 index bc1b14a..0000000 Binary files a/tests/fileformats/svg/rendered/dashes.png and /dev/null differ diff --git a/tests/fileformats/svg/rendered/dragon2.png b/tests/fileformats/svg/rendered/dragon2.png deleted file mode 100644 index a62ddc3..0000000 Binary files a/tests/fileformats/svg/rendered/dragon2.png and /dev/null differ diff --git a/tests/fileformats/svg/rendered/ellipse01.png b/tests/fileformats/svg/rendered/ellipse01.png deleted file mode 100644 index b18f452..0000000 Binary files a/tests/fileformats/svg/rendered/ellipse01.png and /dev/null differ diff --git a/tests/fileformats/svg/rendered/line01.png b/tests/fileformats/svg/rendered/line01.png deleted file mode 100644 index 29da406..0000000 Binary files a/tests/fileformats/svg/rendered/line01.png and /dev/null differ diff --git a/tests/fileformats/svg/rendered/miterlimit.png b/tests/fileformats/svg/rendered/miterlimit.png deleted file mode 100644 index f86d0d4..0000000 Binary files a/tests/fileformats/svg/rendered/miterlimit.png and /dev/null differ diff --git a/tests/fileformats/svg/rendered/polygon01.png b/tests/fileformats/svg/rendered/polygon01.png deleted file mode 100644 index 34acf00..0000000 Binary files a/tests/fileformats/svg/rendered/polygon01.png and /dev/null differ diff --git a/tests/fileformats/svg/rendered/polyline01.png b/tests/fileformats/svg/rendered/polyline01.png deleted file mode 100644 index ba175e0..0000000 Binary files a/tests/fileformats/svg/rendered/polyline01.png and /dev/null differ diff --git a/tests/fileformats/svg/rendered/quad01.png b/tests/fileformats/svg/rendered/quad01.png deleted file mode 100644 index a054eca..0000000 Binary files a/tests/fileformats/svg/rendered/quad01.png and /dev/null differ diff --git a/tests/fileformats/svg/rendered/rect01.png b/tests/fileformats/svg/rendered/rect01.png deleted file mode 100644 index 6b15e94..0000000 Binary files a/tests/fileformats/svg/rendered/rect01.png and /dev/null differ diff --git a/tests/fileformats/svg/rendered/rect02.png b/tests/fileformats/svg/rendered/rect02.png deleted file mode 100644 index de79f7b..0000000 Binary files a/tests/fileformats/svg/rendered/rect02.png and /dev/null differ diff --git a/tests/fileformats/svg/rendered/scale.png b/tests/fileformats/svg/rendered/scale.png deleted file mode 100644 index 7e176fc..0000000 Binary files a/tests/fileformats/svg/rendered/scale.png and /dev/null differ diff --git a/tests/fileformats/svg/rendered/triangle01.png b/tests/fileformats/svg/rendered/triangle01.png deleted file mode 100644 index 4f09fcd..0000000 Binary files a/tests/fileformats/svg/rendered/triangle01.png and /dev/null differ diff --git a/tests/fonts/diffs/alignments.png b/tests/fonts/diffs/alignments.png deleted file mode 100644 index 67dd839..0000000 Binary files a/tests/fonts/diffs/alignments.png and /dev/null differ diff --git a/tests/fonts/diffs/basic1.png b/tests/fonts/diffs/basic1.png deleted file mode 100644 index d1d8a13..0000000 Binary files a/tests/fonts/diffs/basic1.png and /dev/null differ diff --git a/tests/fonts/diffs/basic10.png b/tests/fonts/diffs/basic10.png deleted file mode 100644 index dbabfc2..0000000 Binary files a/tests/fonts/diffs/basic10.png and /dev/null differ diff --git a/tests/fonts/diffs/basic2.png b/tests/fonts/diffs/basic2.png deleted file mode 100644 index 8cafb1a..0000000 Binary files a/tests/fonts/diffs/basic2.png and /dev/null differ diff --git a/tests/fonts/diffs/basic3.png b/tests/fonts/diffs/basic3.png deleted file mode 100644 index 58f0ec3..0000000 Binary files a/tests/fonts/diffs/basic3.png and /dev/null differ diff --git a/tests/fonts/diffs/basic4.png b/tests/fonts/diffs/basic4.png deleted file mode 100644 index 598323a..0000000 Binary files a/tests/fonts/diffs/basic4.png and /dev/null differ diff --git a/tests/fonts/diffs/basic5.png b/tests/fonts/diffs/basic5.png deleted file mode 100644 index d5cf576..0000000 Binary files a/tests/fonts/diffs/basic5.png and /dev/null differ diff --git a/tests/fonts/diffs/basic6.png b/tests/fonts/diffs/basic6.png deleted file mode 100644 index 431a0ef..0000000 Binary files a/tests/fonts/diffs/basic6.png and /dev/null differ diff --git a/tests/fonts/diffs/basic7.png b/tests/fonts/diffs/basic7.png deleted file mode 100644 index 556455c..0000000 Binary files a/tests/fonts/diffs/basic7.png and /dev/null differ diff --git a/tests/fonts/diffs/basic8.png b/tests/fonts/diffs/basic8.png deleted file mode 100644 index f00ac73..0000000 Binary files a/tests/fonts/diffs/basic8.png and /dev/null differ diff --git a/tests/fonts/diffs/basic8b.png b/tests/fonts/diffs/basic8b.png deleted file mode 100644 index 8f3ae9f..0000000 Binary files a/tests/fonts/diffs/basic8b.png and /dev/null differ diff --git a/tests/fonts/diffs/basic9.png b/tests/fonts/diffs/basic9.png deleted file mode 100644 index 1be5bc8..0000000 Binary files a/tests/fonts/diffs/basic9.png and /dev/null differ diff --git a/tests/fonts/diffs/cff.png b/tests/fonts/diffs/cff.png deleted file mode 100644 index 09cb9c2..0000000 Binary files a/tests/fonts/diffs/cff.png and /dev/null differ diff --git a/tests/fonts/diffs/cff_jp.png b/tests/fonts/diffs/cff_jp.png deleted file mode 100644 index 3ffefd6..0000000 Binary files a/tests/fonts/diffs/cff_jp.png and /dev/null differ diff --git a/tests/fonts/diffs/cff_strikethrough.png b/tests/fonts/diffs/cff_strikethrough.png deleted file mode 100644 index 2c9c496..0000000 Binary files a/tests/fonts/diffs/cff_strikethrough.png and /dev/null differ diff --git a/tests/fonts/diffs/cff_underline.png b/tests/fonts/diffs/cff_underline.png deleted file mode 100644 index e347c79..0000000 Binary files a/tests/fonts/diffs/cff_underline.png and /dev/null differ diff --git a/tests/fonts/diffs/customlineheight.png b/tests/fonts/diffs/customlineheight.png deleted file mode 100644 index 4b1283a..0000000 Binary files a/tests/fonts/diffs/customlineheight.png and /dev/null differ diff --git a/tests/fonts/diffs/fallback.png b/tests/fonts/diffs/fallback.png deleted file mode 100644 index 20d0c5a..0000000 Binary files a/tests/fonts/diffs/fallback.png and /dev/null differ diff --git a/tests/fonts/diffs/fallback2.png b/tests/fonts/diffs/fallback2.png deleted file mode 100644 index 78a98ca..0000000 Binary files a/tests/fonts/diffs/fallback2.png and /dev/null differ diff --git a/tests/fonts/diffs/huge1.png b/tests/fonts/diffs/huge1.png deleted file mode 100644 index 3496943..0000000 Binary files a/tests/fonts/diffs/huge1.png and /dev/null differ diff --git a/tests/fonts/diffs/huge1_nokern.png b/tests/fonts/diffs/huge1_nokern.png deleted file mode 100644 index 00d8c1f..0000000 Binary files a/tests/fonts/diffs/huge1_nokern.png and /dev/null differ diff --git a/tests/fonts/diffs/huge2.png b/tests/fonts/diffs/huge2.png deleted file mode 100644 index e008af0..0000000 Binary files a/tests/fonts/diffs/huge2.png and /dev/null differ diff --git a/tests/fonts/diffs/huge2_nokern.png b/tests/fonts/diffs/huge2_nokern.png deleted file mode 100644 index 1984b67..0000000 Binary files a/tests/fonts/diffs/huge2_nokern.png and /dev/null differ diff --git a/tests/fonts/diffs/huge3.png b/tests/fonts/diffs/huge3.png deleted file mode 100644 index 933a1aa..0000000 Binary files a/tests/fonts/diffs/huge3.png and /dev/null differ diff --git a/tests/fonts/diffs/huge3_nokern.png b/tests/fonts/diffs/huge3_nokern.png deleted file mode 100644 index 8ee4fe1..0000000 Binary files a/tests/fonts/diffs/huge3_nokern.png and /dev/null differ diff --git a/tests/fonts/diffs/image_fill.png b/tests/fonts/diffs/image_fill.png deleted file mode 100644 index 33516d5..0000000 Binary files a/tests/fonts/diffs/image_fill.png and /dev/null differ diff --git a/tests/fonts/diffs/image_paint_fill.png b/tests/fonts/diffs/image_paint_fill.png deleted file mode 100644 index e08cba5..0000000 Binary files a/tests/fonts/diffs/image_paint_fill.png and /dev/null differ diff --git a/tests/fonts/diffs/image_stroke.png b/tests/fonts/diffs/image_stroke.png deleted file mode 100644 index fddad83..0000000 Binary files a/tests/fonts/diffs/image_stroke.png and /dev/null differ diff --git a/tests/fonts/diffs/lines1.png b/tests/fonts/diffs/lines1.png deleted file mode 100644 index 4186f45..0000000 Binary files a/tests/fonts/diffs/lines1.png and /dev/null differ diff --git a/tests/fonts/diffs/lines2.png b/tests/fonts/diffs/lines2.png deleted file mode 100644 index ebce34b..0000000 Binary files a/tests/fonts/diffs/lines2.png and /dev/null differ diff --git a/tests/fonts/diffs/mask_fill.png b/tests/fonts/diffs/mask_fill.png deleted file mode 100644 index e337130..0000000 Binary files a/tests/fonts/diffs/mask_fill.png and /dev/null differ diff --git a/tests/fonts/diffs/mask_stroke.png b/tests/fonts/diffs/mask_stroke.png deleted file mode 100644 index c599819..0000000 Binary files a/tests/fonts/diffs/mask_stroke.png and /dev/null differ diff --git a/tests/fonts/diffs/paints1.png b/tests/fonts/diffs/paints1.png deleted file mode 100644 index 7ad3d23..0000000 Binary files a/tests/fonts/diffs/paints1.png and /dev/null differ diff --git a/tests/fonts/diffs/pairs1.png b/tests/fonts/diffs/pairs1.png deleted file mode 100644 index 68d3c31..0000000 Binary files a/tests/fonts/diffs/pairs1.png and /dev/null differ diff --git a/tests/fonts/diffs/pairs2.png b/tests/fonts/diffs/pairs2.png deleted file mode 100644 index 3954edc..0000000 Binary files a/tests/fonts/diffs/pairs2.png and /dev/null differ diff --git a/tests/fonts/diffs/pairs3.png b/tests/fonts/diffs/pairs3.png deleted file mode 100644 index 37be640..0000000 Binary files a/tests/fonts/diffs/pairs3.png and /dev/null differ diff --git a/tests/fonts/diffs/paragraph1.png b/tests/fonts/diffs/paragraph1.png deleted file mode 100644 index 55ddc06..0000000 Binary files a/tests/fonts/diffs/paragraph1.png and /dev/null differ diff --git a/tests/fonts/diffs/paragraph1_2.png b/tests/fonts/diffs/paragraph1_2.png deleted file mode 100644 index 156f945..0000000 Binary files a/tests/fonts/diffs/paragraph1_2.png and /dev/null differ diff --git a/tests/fonts/diffs/paragraph1_3.png b/tests/fonts/diffs/paragraph1_3.png deleted file mode 100644 index 7a38591..0000000 Binary files a/tests/fonts/diffs/paragraph1_3.png and /dev/null differ diff --git a/tests/fonts/diffs/paragraph1_nokern.png b/tests/fonts/diffs/paragraph1_nokern.png deleted file mode 100644 index 234d52b..0000000 Binary files a/tests/fonts/diffs/paragraph1_nokern.png and /dev/null differ diff --git a/tests/fonts/diffs/paragraph1_nokern_2.png b/tests/fonts/diffs/paragraph1_nokern_2.png deleted file mode 100644 index e3f9c4f..0000000 Binary files a/tests/fonts/diffs/paragraph1_nokern_2.png and /dev/null differ diff --git a/tests/fonts/diffs/paragraph1_nokern_3.png b/tests/fonts/diffs/paragraph1_nokern_3.png deleted file mode 100644 index 1a19aa2..0000000 Binary files a/tests/fonts/diffs/paragraph1_nokern_3.png and /dev/null differ diff --git a/tests/fonts/diffs/paragraph2.png b/tests/fonts/diffs/paragraph2.png deleted file mode 100644 index e09ffaf..0000000 Binary files a/tests/fonts/diffs/paragraph2.png and /dev/null differ diff --git a/tests/fonts/diffs/paragraph2_2.png b/tests/fonts/diffs/paragraph2_2.png deleted file mode 100644 index 686fe14..0000000 Binary files a/tests/fonts/diffs/paragraph2_2.png and /dev/null differ diff --git a/tests/fonts/diffs/paragraph2_3.png b/tests/fonts/diffs/paragraph2_3.png deleted file mode 100644 index 710c7ea..0000000 Binary files a/tests/fonts/diffs/paragraph2_3.png and /dev/null differ diff --git a/tests/fonts/diffs/paragraph2_nokern.png b/tests/fonts/diffs/paragraph2_nokern.png deleted file mode 100644 index 2de4f18..0000000 Binary files a/tests/fonts/diffs/paragraph2_nokern.png and /dev/null differ diff --git a/tests/fonts/diffs/paragraph2_nokern_2.png b/tests/fonts/diffs/paragraph2_nokern_2.png deleted file mode 100644 index 43a7f71..0000000 Binary files a/tests/fonts/diffs/paragraph2_nokern_2.png and /dev/null differ diff --git a/tests/fonts/diffs/paragraph2_nokern_3.png b/tests/fonts/diffs/paragraph2_nokern_3.png deleted file mode 100644 index 602a1b7..0000000 Binary files a/tests/fonts/diffs/paragraph2_nokern_3.png and /dev/null differ diff --git a/tests/fonts/diffs/paragraph3.png b/tests/fonts/diffs/paragraph3.png deleted file mode 100644 index 4832a5f..0000000 Binary files a/tests/fonts/diffs/paragraph3.png and /dev/null differ diff --git a/tests/fonts/diffs/paragraph3_2.png b/tests/fonts/diffs/paragraph3_2.png deleted file mode 100644 index b72548b..0000000 Binary files a/tests/fonts/diffs/paragraph3_2.png and /dev/null differ diff --git a/tests/fonts/diffs/paragraph3_3.png b/tests/fonts/diffs/paragraph3_3.png deleted file mode 100644 index 343601d..0000000 Binary files a/tests/fonts/diffs/paragraph3_3.png and /dev/null differ diff --git a/tests/fonts/diffs/paragraph3_nokern.png b/tests/fonts/diffs/paragraph3_nokern.png deleted file mode 100644 index ba40833..0000000 Binary files a/tests/fonts/diffs/paragraph3_nokern.png and /dev/null differ diff --git a/tests/fonts/diffs/paragraph3_nokern_2.png b/tests/fonts/diffs/paragraph3_nokern_2.png deleted file mode 100644 index 6f15308..0000000 Binary files a/tests/fonts/diffs/paragraph3_nokern_2.png and /dev/null differ diff --git a/tests/fonts/diffs/paragraph3_nokern_3.png b/tests/fonts/diffs/paragraph3_nokern_3.png deleted file mode 100644 index acce806..0000000 Binary files a/tests/fonts/diffs/paragraph3_nokern_3.png and /dev/null differ diff --git a/tests/fonts/diffs/paragraph4.png b/tests/fonts/diffs/paragraph4.png deleted file mode 100644 index 2835c3f..0000000 Binary files a/tests/fonts/diffs/paragraph4.png and /dev/null differ diff --git a/tests/fonts/diffs/paragraph4_2.png b/tests/fonts/diffs/paragraph4_2.png deleted file mode 100644 index abd0af9..0000000 Binary files a/tests/fonts/diffs/paragraph4_2.png and /dev/null differ diff --git a/tests/fonts/diffs/paragraph4_3.png b/tests/fonts/diffs/paragraph4_3.png deleted file mode 100644 index 4e222ec..0000000 Binary files a/tests/fonts/diffs/paragraph4_3.png and /dev/null differ diff --git a/tests/fonts/diffs/paragraph4_nokern.png b/tests/fonts/diffs/paragraph4_nokern.png deleted file mode 100644 index 5761068..0000000 Binary files a/tests/fonts/diffs/paragraph4_nokern.png and /dev/null differ diff --git a/tests/fonts/diffs/paragraph4_nokern_2.png b/tests/fonts/diffs/paragraph4_nokern_2.png deleted file mode 100644 index 5d3fe44..0000000 Binary files a/tests/fonts/diffs/paragraph4_nokern_2.png and /dev/null differ diff --git a/tests/fonts/diffs/paragraph4_nokern_3.png b/tests/fonts/diffs/paragraph4_nokern_3.png deleted file mode 100644 index e2b27a5..0000000 Binary files a/tests/fonts/diffs/paragraph4_nokern_3.png and /dev/null differ diff --git a/tests/fonts/diffs/paragraph5.png b/tests/fonts/diffs/paragraph5.png deleted file mode 100644 index 198c715..0000000 Binary files a/tests/fonts/diffs/paragraph5.png and /dev/null differ diff --git a/tests/fonts/diffs/paragraph5_2.png b/tests/fonts/diffs/paragraph5_2.png deleted file mode 100644 index cbc1d30..0000000 Binary files a/tests/fonts/diffs/paragraph5_2.png and /dev/null differ diff --git a/tests/fonts/diffs/paragraph5_3.png b/tests/fonts/diffs/paragraph5_3.png deleted file mode 100644 index 9700156..0000000 Binary files a/tests/fonts/diffs/paragraph5_3.png and /dev/null differ diff --git a/tests/fonts/diffs/paragraph5_nokern.png b/tests/fonts/diffs/paragraph5_nokern.png deleted file mode 100644 index 175abc2..0000000 Binary files a/tests/fonts/diffs/paragraph5_nokern.png and /dev/null differ diff --git a/tests/fonts/diffs/paragraph5_nokern_2.png b/tests/fonts/diffs/paragraph5_nokern_2.png deleted file mode 100644 index 71ffc83..0000000 Binary files a/tests/fonts/diffs/paragraph5_nokern_2.png and /dev/null differ diff --git a/tests/fonts/diffs/paragraph5_nokern_3.png b/tests/fonts/diffs/paragraph5_nokern_3.png deleted file mode 100644 index 35ea556..0000000 Binary files a/tests/fonts/diffs/paragraph5_nokern_3.png and /dev/null differ diff --git a/tests/fonts/diffs/selection_rects1.png b/tests/fonts/diffs/selection_rects1.png deleted file mode 100644 index 9740412..0000000 Binary files a/tests/fonts/diffs/selection_rects1.png and /dev/null differ diff --git a/tests/fonts/diffs/selection_rects2.png b/tests/fonts/diffs/selection_rects2.png deleted file mode 100644 index 1b287eb..0000000 Binary files a/tests/fonts/diffs/selection_rects2.png and /dev/null differ diff --git a/tests/fonts/diffs/selection_rects3.png b/tests/fonts/diffs/selection_rects3.png deleted file mode 100644 index 8dbb405..0000000 Binary files a/tests/fonts/diffs/selection_rects3.png and /dev/null differ diff --git a/tests/fonts/diffs/spans1.png b/tests/fonts/diffs/spans1.png deleted file mode 100644 index dcefee7..0000000 Binary files a/tests/fonts/diffs/spans1.png and /dev/null differ diff --git a/tests/fonts/diffs/spans2.png b/tests/fonts/diffs/spans2.png deleted file mode 100644 index a6191e8..0000000 Binary files a/tests/fonts/diffs/spans2.png and /dev/null differ diff --git a/tests/fonts/diffs/spans4.png b/tests/fonts/diffs/spans4.png deleted file mode 100644 index 4df2c2e..0000000 Binary files a/tests/fonts/diffs/spans4.png and /dev/null differ diff --git a/tests/fonts/diffs/spans5.png b/tests/fonts/diffs/spans5.png deleted file mode 100644 index 5b465e2..0000000 Binary files a/tests/fonts/diffs/spans5.png and /dev/null differ diff --git a/tests/fonts/diffs/spans6.png b/tests/fonts/diffs/spans6.png deleted file mode 100644 index 3b2e7bc..0000000 Binary files a/tests/fonts/diffs/spans6.png and /dev/null differ diff --git a/tests/fonts/diffs/spans7.png b/tests/fonts/diffs/spans7.png deleted file mode 100644 index 53340f5..0000000 Binary files a/tests/fonts/diffs/spans7.png and /dev/null differ diff --git a/tests/fonts/diffs/strikethrough1.png b/tests/fonts/diffs/strikethrough1.png deleted file mode 100644 index 2781b03..0000000 Binary files a/tests/fonts/diffs/strikethrough1.png and /dev/null differ diff --git a/tests/fonts/diffs/strikethrough2.png b/tests/fonts/diffs/strikethrough2.png deleted file mode 100644 index 6f7484a..0000000 Binary files a/tests/fonts/diffs/strikethrough2.png and /dev/null differ diff --git a/tests/fonts/diffs/strikethrough3.png b/tests/fonts/diffs/strikethrough3.png deleted file mode 100644 index fb8ebe3..0000000 Binary files a/tests/fonts/diffs/strikethrough3.png and /dev/null differ diff --git a/tests/fonts/diffs/tofu_advance.png b/tests/fonts/diffs/tofu_advance.png deleted file mode 100644 index 8e0ace6..0000000 Binary files a/tests/fonts/diffs/tofu_advance.png and /dev/null differ diff --git a/tests/fonts/diffs/underline1.png b/tests/fonts/diffs/underline1.png deleted file mode 100644 index 210b1f9..0000000 Binary files a/tests/fonts/diffs/underline1.png and /dev/null differ diff --git a/tests/fonts/diffs/underline2.png b/tests/fonts/diffs/underline2.png deleted file mode 100644 index 7a43eb6..0000000 Binary files a/tests/fonts/diffs/underline2.png and /dev/null differ diff --git a/tests/fonts/diffs/underline3.png b/tests/fonts/diffs/underline3.png deleted file mode 100644 index aab00ef..0000000 Binary files a/tests/fonts/diffs/underline3.png and /dev/null differ diff --git a/tests/fonts/rendered/alignments.png b/tests/fonts/rendered/alignments.png deleted file mode 100644 index 1dde8d4..0000000 Binary files a/tests/fonts/rendered/alignments.png and /dev/null differ diff --git a/tests/fonts/rendered/basic1.png b/tests/fonts/rendered/basic1.png deleted file mode 100644 index a2bf19b..0000000 Binary files a/tests/fonts/rendered/basic1.png and /dev/null differ diff --git a/tests/fonts/rendered/basic10.png b/tests/fonts/rendered/basic10.png deleted file mode 100644 index 0addb72..0000000 Binary files a/tests/fonts/rendered/basic10.png and /dev/null differ diff --git a/tests/fonts/rendered/basic2.png b/tests/fonts/rendered/basic2.png deleted file mode 100644 index ed17646..0000000 Binary files a/tests/fonts/rendered/basic2.png and /dev/null differ diff --git a/tests/fonts/rendered/basic3.png b/tests/fonts/rendered/basic3.png deleted file mode 100644 index 8be3a66..0000000 Binary files a/tests/fonts/rendered/basic3.png and /dev/null differ diff --git a/tests/fonts/rendered/basic4.png b/tests/fonts/rendered/basic4.png deleted file mode 100644 index 5e7643b..0000000 Binary files a/tests/fonts/rendered/basic4.png and /dev/null differ diff --git a/tests/fonts/rendered/basic5.png b/tests/fonts/rendered/basic5.png deleted file mode 100644 index c077c77..0000000 Binary files a/tests/fonts/rendered/basic5.png and /dev/null differ diff --git a/tests/fonts/rendered/basic6.png b/tests/fonts/rendered/basic6.png deleted file mode 100644 index 67537f4..0000000 Binary files a/tests/fonts/rendered/basic6.png and /dev/null differ diff --git a/tests/fonts/rendered/basic7.png b/tests/fonts/rendered/basic7.png deleted file mode 100644 index 2ced6e5..0000000 Binary files a/tests/fonts/rendered/basic7.png and /dev/null differ diff --git a/tests/fonts/rendered/basic8.png b/tests/fonts/rendered/basic8.png deleted file mode 100644 index 71fde59..0000000 Binary files a/tests/fonts/rendered/basic8.png and /dev/null differ diff --git a/tests/fonts/rendered/basic8b.png b/tests/fonts/rendered/basic8b.png deleted file mode 100644 index 2ac1f50..0000000 Binary files a/tests/fonts/rendered/basic8b.png and /dev/null differ diff --git a/tests/fonts/rendered/basic9.png b/tests/fonts/rendered/basic9.png deleted file mode 100644 index 380e821..0000000 Binary files a/tests/fonts/rendered/basic9.png and /dev/null differ diff --git a/tests/fonts/rendered/cff.png b/tests/fonts/rendered/cff.png deleted file mode 100644 index a640d56..0000000 Binary files a/tests/fonts/rendered/cff.png and /dev/null differ diff --git a/tests/fonts/rendered/cff_jp.png b/tests/fonts/rendered/cff_jp.png deleted file mode 100644 index bb410cc..0000000 Binary files a/tests/fonts/rendered/cff_jp.png and /dev/null differ diff --git a/tests/fonts/rendered/cff_strikethrough.png b/tests/fonts/rendered/cff_strikethrough.png deleted file mode 100644 index a782c8f..0000000 Binary files a/tests/fonts/rendered/cff_strikethrough.png and /dev/null differ diff --git a/tests/fonts/rendered/cff_underline.png b/tests/fonts/rendered/cff_underline.png deleted file mode 100644 index 8db9849..0000000 Binary files a/tests/fonts/rendered/cff_underline.png and /dev/null differ diff --git a/tests/fonts/rendered/customlineheight.png b/tests/fonts/rendered/customlineheight.png deleted file mode 100644 index 62aeba9..0000000 Binary files a/tests/fonts/rendered/customlineheight.png and /dev/null differ diff --git a/tests/fonts/rendered/fallback.png b/tests/fonts/rendered/fallback.png deleted file mode 100644 index a9bc1a6..0000000 Binary files a/tests/fonts/rendered/fallback.png and /dev/null differ diff --git a/tests/fonts/rendered/fallback2.png b/tests/fonts/rendered/fallback2.png deleted file mode 100644 index a9bc1a6..0000000 Binary files a/tests/fonts/rendered/fallback2.png and /dev/null differ diff --git a/tests/fonts/rendered/huge1.png b/tests/fonts/rendered/huge1.png deleted file mode 100644 index aeac722..0000000 Binary files a/tests/fonts/rendered/huge1.png and /dev/null differ diff --git a/tests/fonts/rendered/huge1_nokern.png b/tests/fonts/rendered/huge1_nokern.png deleted file mode 100644 index 00e9c1b..0000000 Binary files a/tests/fonts/rendered/huge1_nokern.png and /dev/null differ diff --git a/tests/fonts/rendered/huge2.png b/tests/fonts/rendered/huge2.png deleted file mode 100644 index 72ab316..0000000 Binary files a/tests/fonts/rendered/huge2.png and /dev/null differ diff --git a/tests/fonts/rendered/huge2_nokern.png b/tests/fonts/rendered/huge2_nokern.png deleted file mode 100644 index 294e016..0000000 Binary files a/tests/fonts/rendered/huge2_nokern.png and /dev/null differ diff --git a/tests/fonts/rendered/huge3.png b/tests/fonts/rendered/huge3.png deleted file mode 100644 index 8caafdd..0000000 Binary files a/tests/fonts/rendered/huge3.png and /dev/null differ diff --git a/tests/fonts/rendered/huge3_nokern.png b/tests/fonts/rendered/huge3_nokern.png deleted file mode 100644 index ab9f921..0000000 Binary files a/tests/fonts/rendered/huge3_nokern.png and /dev/null differ diff --git a/tests/fonts/rendered/image_fill.png b/tests/fonts/rendered/image_fill.png deleted file mode 100644 index 8b47a2c..0000000 Binary files a/tests/fonts/rendered/image_fill.png and /dev/null differ diff --git a/tests/fonts/rendered/image_paint_fill.png b/tests/fonts/rendered/image_paint_fill.png deleted file mode 100644 index 694cd0c..0000000 Binary files a/tests/fonts/rendered/image_paint_fill.png and /dev/null differ diff --git a/tests/fonts/rendered/image_stroke.png b/tests/fonts/rendered/image_stroke.png deleted file mode 100644 index cee9262..0000000 Binary files a/tests/fonts/rendered/image_stroke.png and /dev/null differ diff --git a/tests/fonts/rendered/lines1.png b/tests/fonts/rendered/lines1.png deleted file mode 100644 index e262fe8..0000000 Binary files a/tests/fonts/rendered/lines1.png and /dev/null differ diff --git a/tests/fonts/rendered/lines2.png b/tests/fonts/rendered/lines2.png deleted file mode 100644 index e8c3844..0000000 Binary files a/tests/fonts/rendered/lines2.png and /dev/null differ diff --git a/tests/fonts/rendered/mask_fill.png b/tests/fonts/rendered/mask_fill.png deleted file mode 100644 index 4f0a513..0000000 Binary files a/tests/fonts/rendered/mask_fill.png and /dev/null differ diff --git a/tests/fonts/rendered/mask_stroke.png b/tests/fonts/rendered/mask_stroke.png deleted file mode 100644 index bbc212d..0000000 Binary files a/tests/fonts/rendered/mask_stroke.png and /dev/null differ diff --git a/tests/fonts/rendered/paints1.png b/tests/fonts/rendered/paints1.png deleted file mode 100644 index 1e300d4..0000000 Binary files a/tests/fonts/rendered/paints1.png and /dev/null differ diff --git a/tests/fonts/rendered/pairs1.png b/tests/fonts/rendered/pairs1.png deleted file mode 100644 index a97199b..0000000 Binary files a/tests/fonts/rendered/pairs1.png and /dev/null differ diff --git a/tests/fonts/rendered/pairs2.png b/tests/fonts/rendered/pairs2.png deleted file mode 100644 index 0ad55f4..0000000 Binary files a/tests/fonts/rendered/pairs2.png and /dev/null differ diff --git a/tests/fonts/rendered/pairs3.png b/tests/fonts/rendered/pairs3.png deleted file mode 100644 index 0be64a0..0000000 Binary files a/tests/fonts/rendered/pairs3.png and /dev/null differ diff --git a/tests/fonts/rendered/paragraph1.png b/tests/fonts/rendered/paragraph1.png deleted file mode 100644 index f54e123..0000000 Binary files a/tests/fonts/rendered/paragraph1.png and /dev/null differ diff --git a/tests/fonts/rendered/paragraph1_2.png b/tests/fonts/rendered/paragraph1_2.png deleted file mode 100644 index 09f09b7..0000000 Binary files a/tests/fonts/rendered/paragraph1_2.png and /dev/null differ diff --git a/tests/fonts/rendered/paragraph1_3.png b/tests/fonts/rendered/paragraph1_3.png deleted file mode 100644 index 48d00df..0000000 Binary files a/tests/fonts/rendered/paragraph1_3.png and /dev/null differ diff --git a/tests/fonts/rendered/paragraph1_nokern.png b/tests/fonts/rendered/paragraph1_nokern.png deleted file mode 100644 index c5507f7..0000000 Binary files a/tests/fonts/rendered/paragraph1_nokern.png and /dev/null differ diff --git a/tests/fonts/rendered/paragraph1_nokern_2.png b/tests/fonts/rendered/paragraph1_nokern_2.png deleted file mode 100644 index 6f619c3..0000000 Binary files a/tests/fonts/rendered/paragraph1_nokern_2.png and /dev/null differ diff --git a/tests/fonts/rendered/paragraph1_nokern_3.png b/tests/fonts/rendered/paragraph1_nokern_3.png deleted file mode 100644 index 91bbafe..0000000 Binary files a/tests/fonts/rendered/paragraph1_nokern_3.png and /dev/null differ diff --git a/tests/fonts/rendered/paragraph2.png b/tests/fonts/rendered/paragraph2.png deleted file mode 100644 index 9be25aa..0000000 Binary files a/tests/fonts/rendered/paragraph2.png and /dev/null differ diff --git a/tests/fonts/rendered/paragraph2_2.png b/tests/fonts/rendered/paragraph2_2.png deleted file mode 100644 index 4097124..0000000 Binary files a/tests/fonts/rendered/paragraph2_2.png and /dev/null differ diff --git a/tests/fonts/rendered/paragraph2_3.png b/tests/fonts/rendered/paragraph2_3.png deleted file mode 100644 index 2b1a73f..0000000 Binary files a/tests/fonts/rendered/paragraph2_3.png and /dev/null differ diff --git a/tests/fonts/rendered/paragraph2_nokern.png b/tests/fonts/rendered/paragraph2_nokern.png deleted file mode 100644 index 0658cc5..0000000 Binary files a/tests/fonts/rendered/paragraph2_nokern.png and /dev/null differ diff --git a/tests/fonts/rendered/paragraph2_nokern_2.png b/tests/fonts/rendered/paragraph2_nokern_2.png deleted file mode 100644 index bdaf8b2..0000000 Binary files a/tests/fonts/rendered/paragraph2_nokern_2.png and /dev/null differ diff --git a/tests/fonts/rendered/paragraph2_nokern_3.png b/tests/fonts/rendered/paragraph2_nokern_3.png deleted file mode 100644 index 505f036..0000000 Binary files a/tests/fonts/rendered/paragraph2_nokern_3.png and /dev/null differ diff --git a/tests/fonts/rendered/paragraph3.png b/tests/fonts/rendered/paragraph3.png deleted file mode 100644 index 1b28dc8..0000000 Binary files a/tests/fonts/rendered/paragraph3.png and /dev/null differ diff --git a/tests/fonts/rendered/paragraph3_2.png b/tests/fonts/rendered/paragraph3_2.png deleted file mode 100644 index da90eb9..0000000 Binary files a/tests/fonts/rendered/paragraph3_2.png and /dev/null differ diff --git a/tests/fonts/rendered/paragraph3_3.png b/tests/fonts/rendered/paragraph3_3.png deleted file mode 100644 index d9f334c..0000000 Binary files a/tests/fonts/rendered/paragraph3_3.png and /dev/null differ diff --git a/tests/fonts/rendered/paragraph3_nokern.png b/tests/fonts/rendered/paragraph3_nokern.png deleted file mode 100644 index 69df16f..0000000 Binary files a/tests/fonts/rendered/paragraph3_nokern.png and /dev/null differ diff --git a/tests/fonts/rendered/paragraph3_nokern_2.png b/tests/fonts/rendered/paragraph3_nokern_2.png deleted file mode 100644 index a4276be..0000000 Binary files a/tests/fonts/rendered/paragraph3_nokern_2.png and /dev/null differ diff --git a/tests/fonts/rendered/paragraph3_nokern_3.png b/tests/fonts/rendered/paragraph3_nokern_3.png deleted file mode 100644 index 5e68386..0000000 Binary files a/tests/fonts/rendered/paragraph3_nokern_3.png and /dev/null differ diff --git a/tests/fonts/rendered/paragraph4.png b/tests/fonts/rendered/paragraph4.png deleted file mode 100644 index 35322f2..0000000 Binary files a/tests/fonts/rendered/paragraph4.png and /dev/null differ diff --git a/tests/fonts/rendered/paragraph4_2.png b/tests/fonts/rendered/paragraph4_2.png deleted file mode 100644 index de45d23..0000000 Binary files a/tests/fonts/rendered/paragraph4_2.png and /dev/null differ diff --git a/tests/fonts/rendered/paragraph4_3.png b/tests/fonts/rendered/paragraph4_3.png deleted file mode 100644 index e4d3b1f..0000000 Binary files a/tests/fonts/rendered/paragraph4_3.png and /dev/null differ diff --git a/tests/fonts/rendered/paragraph4_nokern.png b/tests/fonts/rendered/paragraph4_nokern.png deleted file mode 100644 index 948cb58..0000000 Binary files a/tests/fonts/rendered/paragraph4_nokern.png and /dev/null differ diff --git a/tests/fonts/rendered/paragraph4_nokern_2.png b/tests/fonts/rendered/paragraph4_nokern_2.png deleted file mode 100644 index a282f24..0000000 Binary files a/tests/fonts/rendered/paragraph4_nokern_2.png and /dev/null differ diff --git a/tests/fonts/rendered/paragraph4_nokern_3.png b/tests/fonts/rendered/paragraph4_nokern_3.png deleted file mode 100644 index 307f9e2..0000000 Binary files a/tests/fonts/rendered/paragraph4_nokern_3.png and /dev/null differ diff --git a/tests/fonts/rendered/paragraph5.png b/tests/fonts/rendered/paragraph5.png deleted file mode 100644 index 3a3f5a0..0000000 Binary files a/tests/fonts/rendered/paragraph5.png and /dev/null differ diff --git a/tests/fonts/rendered/paragraph5_2.png b/tests/fonts/rendered/paragraph5_2.png deleted file mode 100644 index f94a250..0000000 Binary files a/tests/fonts/rendered/paragraph5_2.png and /dev/null differ diff --git a/tests/fonts/rendered/paragraph5_3.png b/tests/fonts/rendered/paragraph5_3.png deleted file mode 100644 index 8cc3ed5..0000000 Binary files a/tests/fonts/rendered/paragraph5_3.png and /dev/null differ diff --git a/tests/fonts/rendered/paragraph5_nokern.png b/tests/fonts/rendered/paragraph5_nokern.png deleted file mode 100644 index 810ae2d..0000000 Binary files a/tests/fonts/rendered/paragraph5_nokern.png and /dev/null differ diff --git a/tests/fonts/rendered/paragraph5_nokern_2.png b/tests/fonts/rendered/paragraph5_nokern_2.png deleted file mode 100644 index 81d4c42..0000000 Binary files a/tests/fonts/rendered/paragraph5_nokern_2.png and /dev/null differ diff --git a/tests/fonts/rendered/paragraph5_nokern_3.png b/tests/fonts/rendered/paragraph5_nokern_3.png deleted file mode 100644 index 05a776b..0000000 Binary files a/tests/fonts/rendered/paragraph5_nokern_3.png and /dev/null differ diff --git a/tests/fonts/rendered/selection_rects1.png b/tests/fonts/rendered/selection_rects1.png deleted file mode 100644 index 7ccf0cc..0000000 Binary files a/tests/fonts/rendered/selection_rects1.png and /dev/null differ diff --git a/tests/fonts/rendered/selection_rects2.png b/tests/fonts/rendered/selection_rects2.png deleted file mode 100644 index 0ab87b5..0000000 Binary files a/tests/fonts/rendered/selection_rects2.png and /dev/null differ diff --git a/tests/fonts/rendered/selection_rects3.png b/tests/fonts/rendered/selection_rects3.png deleted file mode 100644 index c68130a..0000000 Binary files a/tests/fonts/rendered/selection_rects3.png and /dev/null differ diff --git a/tests/fonts/rendered/spans1.png b/tests/fonts/rendered/spans1.png deleted file mode 100644 index 5af6e78..0000000 Binary files a/tests/fonts/rendered/spans1.png and /dev/null differ diff --git a/tests/fonts/rendered/spans2.png b/tests/fonts/rendered/spans2.png deleted file mode 100644 index baf6db3..0000000 Binary files a/tests/fonts/rendered/spans2.png and /dev/null differ diff --git a/tests/fonts/rendered/spans4.png b/tests/fonts/rendered/spans4.png deleted file mode 100644 index ae0311d..0000000 Binary files a/tests/fonts/rendered/spans4.png and /dev/null differ diff --git a/tests/fonts/rendered/spans5.png b/tests/fonts/rendered/spans5.png deleted file mode 100644 index 18e3f98..0000000 Binary files a/tests/fonts/rendered/spans5.png and /dev/null differ diff --git a/tests/fonts/rendered/spans6.png b/tests/fonts/rendered/spans6.png deleted file mode 100644 index 61e05e6..0000000 Binary files a/tests/fonts/rendered/spans6.png and /dev/null differ diff --git a/tests/fonts/rendered/spans7.png b/tests/fonts/rendered/spans7.png deleted file mode 100644 index f65f238..0000000 Binary files a/tests/fonts/rendered/spans7.png and /dev/null differ diff --git a/tests/fonts/rendered/strikethrough1.png b/tests/fonts/rendered/strikethrough1.png deleted file mode 100644 index a216990..0000000 Binary files a/tests/fonts/rendered/strikethrough1.png and /dev/null differ diff --git a/tests/fonts/rendered/strikethrough2.png b/tests/fonts/rendered/strikethrough2.png deleted file mode 100644 index 5172521..0000000 Binary files a/tests/fonts/rendered/strikethrough2.png and /dev/null differ diff --git a/tests/fonts/rendered/strikethrough3.png b/tests/fonts/rendered/strikethrough3.png deleted file mode 100644 index dccaa29..0000000 Binary files a/tests/fonts/rendered/strikethrough3.png and /dev/null differ diff --git a/tests/fonts/rendered/tofu_advance.png b/tests/fonts/rendered/tofu_advance.png deleted file mode 100644 index 82a087c..0000000 Binary files a/tests/fonts/rendered/tofu_advance.png and /dev/null differ diff --git a/tests/fonts/rendered/underline1.png b/tests/fonts/rendered/underline1.png deleted file mode 100644 index 7b77222..0000000 Binary files a/tests/fonts/rendered/underline1.png and /dev/null differ diff --git a/tests/fonts/rendered/underline2.png b/tests/fonts/rendered/underline2.png deleted file mode 100644 index e257181..0000000 Binary files a/tests/fonts/rendered/underline2.png and /dev/null differ diff --git a/tests/fonts/rendered/underline3.png b/tests/fonts/rendered/underline3.png deleted file mode 100644 index efee3c1..0000000 Binary files a/tests/fonts/rendered/underline3.png and /dev/null differ diff --git a/tests/images/diffs/minify_odd.png b/tests/images/diffs/minify_odd.png deleted file mode 100644 index 0f155fa..0000000 Binary files a/tests/images/diffs/minify_odd.png and /dev/null differ diff --git a/tests/images/diffs/rock_minified.png b/tests/images/diffs/rock_minified.png deleted file mode 100644 index 6946950..0000000 Binary files a/tests/images/diffs/rock_minified.png and /dev/null differ diff --git a/tests/images/diffs/rock_minified2.png b/tests/images/diffs/rock_minified2.png deleted file mode 100644 index 81b6246..0000000 Binary files a/tests/images/diffs/rock_minified2.png and /dev/null differ diff --git a/tests/images/diffs/smooth1.png b/tests/images/diffs/smooth1.png deleted file mode 100644 index a29de42..0000000 Binary files a/tests/images/diffs/smooth1.png and /dev/null differ diff --git a/tests/images/diffs/smooth10.png b/tests/images/diffs/smooth10.png deleted file mode 100644 index 5b75e8a..0000000 Binary files a/tests/images/diffs/smooth10.png and /dev/null differ diff --git a/tests/images/diffs/smooth11.png b/tests/images/diffs/smooth11.png deleted file mode 100644 index be4bb08..0000000 Binary files a/tests/images/diffs/smooth11.png and /dev/null differ diff --git a/tests/images/diffs/smooth12.png b/tests/images/diffs/smooth12.png deleted file mode 100644 index cd2c522..0000000 Binary files a/tests/images/diffs/smooth12.png and /dev/null differ diff --git a/tests/images/diffs/smooth2.png b/tests/images/diffs/smooth2.png deleted file mode 100644 index 41d3add..0000000 Binary files a/tests/images/diffs/smooth2.png and /dev/null differ diff --git a/tests/images/diffs/smooth3.png b/tests/images/diffs/smooth3.png deleted file mode 100644 index 7b7040a..0000000 Binary files a/tests/images/diffs/smooth3.png and /dev/null differ diff --git a/tests/images/diffs/smooth4.png b/tests/images/diffs/smooth4.png deleted file mode 100644 index 7f4f3f1..0000000 Binary files a/tests/images/diffs/smooth4.png and /dev/null differ diff --git a/tests/images/diffs/smooth5.png b/tests/images/diffs/smooth5.png deleted file mode 100644 index ffa1abe..0000000 Binary files a/tests/images/diffs/smooth5.png and /dev/null differ diff --git a/tests/images/diffs/smooth6.png b/tests/images/diffs/smooth6.png deleted file mode 100644 index 83c4480..0000000 Binary files a/tests/images/diffs/smooth6.png and /dev/null differ diff --git a/tests/images/diffs/smooth7.png b/tests/images/diffs/smooth7.png deleted file mode 100644 index b0df14d..0000000 Binary files a/tests/images/diffs/smooth7.png and /dev/null differ diff --git a/tests/images/diffs/smooth8.png b/tests/images/diffs/smooth8.png deleted file mode 100644 index 0f155fa..0000000 Binary files a/tests/images/diffs/smooth8.png and /dev/null differ diff --git a/tests/images/diffs/smooth9.png b/tests/images/diffs/smooth9.png deleted file mode 100644 index 0f155fa..0000000 Binary files a/tests/images/diffs/smooth9.png and /dev/null differ diff --git a/tests/images/rendered/minify_odd.png b/tests/images/rendered/minify_odd.png deleted file mode 100644 index 8321bab..0000000 Binary files a/tests/images/rendered/minify_odd.png and /dev/null differ diff --git a/tests/images/rendered/rock_minified.png b/tests/images/rendered/rock_minified.png deleted file mode 100644 index 5aa5ac8..0000000 Binary files a/tests/images/rendered/rock_minified.png and /dev/null differ diff --git a/tests/images/rendered/rock_minified2.png b/tests/images/rendered/rock_minified2.png deleted file mode 100644 index 320136b..0000000 Binary files a/tests/images/rendered/rock_minified2.png and /dev/null differ diff --git a/tests/images/rendered/smooth1.png b/tests/images/rendered/smooth1.png deleted file mode 100644 index 3c2cc66..0000000 Binary files a/tests/images/rendered/smooth1.png and /dev/null differ diff --git a/tests/images/rendered/smooth10.png b/tests/images/rendered/smooth10.png deleted file mode 100644 index c5fdf50..0000000 Binary files a/tests/images/rendered/smooth10.png and /dev/null differ diff --git a/tests/images/rendered/smooth11.png b/tests/images/rendered/smooth11.png deleted file mode 100644 index 12624ba..0000000 Binary files a/tests/images/rendered/smooth11.png and /dev/null differ diff --git a/tests/images/rendered/smooth12.png b/tests/images/rendered/smooth12.png deleted file mode 100644 index b6384c3..0000000 Binary files a/tests/images/rendered/smooth12.png and /dev/null differ diff --git a/tests/images/rendered/smooth2.png b/tests/images/rendered/smooth2.png deleted file mode 100644 index c30fc80..0000000 Binary files a/tests/images/rendered/smooth2.png and /dev/null differ diff --git a/tests/images/rendered/smooth3.png b/tests/images/rendered/smooth3.png deleted file mode 100644 index 819c498..0000000 Binary files a/tests/images/rendered/smooth3.png and /dev/null differ diff --git a/tests/images/rendered/smooth4.png b/tests/images/rendered/smooth4.png deleted file mode 100644 index 26d7eff..0000000 Binary files a/tests/images/rendered/smooth4.png and /dev/null differ diff --git a/tests/images/rendered/smooth5.png b/tests/images/rendered/smooth5.png deleted file mode 100644 index 366736b..0000000 Binary files a/tests/images/rendered/smooth5.png and /dev/null differ diff --git a/tests/images/rendered/smooth6.png b/tests/images/rendered/smooth6.png deleted file mode 100644 index 57f4078..0000000 Binary files a/tests/images/rendered/smooth6.png and /dev/null differ diff --git a/tests/images/rendered/smooth7.png b/tests/images/rendered/smooth7.png deleted file mode 100644 index df6ff99..0000000 Binary files a/tests/images/rendered/smooth7.png and /dev/null differ diff --git a/tests/images/rendered/smooth8.png b/tests/images/rendered/smooth8.png deleted file mode 100644 index 1cee199..0000000 Binary files a/tests/images/rendered/smooth8.png and /dev/null differ diff --git a/tests/images/rendered/smooth9.png b/tests/images/rendered/smooth9.png deleted file mode 100644 index 7eabd01..0000000 Binary files a/tests/images/rendered/smooth9.png and /dev/null differ diff --git a/tests/test_contexts.nim b/tests/test_contexts.nim index 8366133..c547c16 100644 --- a/tests/test_contexts.nim +++ b/tests/test_contexts.nim @@ -1,4 +1,4 @@ -import chroma, pixie +import chroma, pixie, xrays block: let ctx = newContext(newImage(300, 160)) @@ -17,7 +17,7 @@ block: ctx.clearRect(10, 10, 120, 100) - ctx.image.writeFile("tests/contexts/clearRect_1.png") + ctx.image.xray("tests/contexts/clearRect_1.png") block: let ctx = newContext(newImage(300, 150)) @@ -34,7 +34,7 @@ block: ctx.lineTo(120, 120) ctx.stroke() - ctx.image.writeFile("tests/contexts/beginPath_1.png") + ctx.image.xray("tests/contexts/beginPath_1.png") block: let ctx = newContext(newImage(300, 150)) @@ -46,7 +46,7 @@ block: ctx.lineTo(280, 120) ctx.stroke() - ctx.image.writeFile("tests/contexts/moveTo_1.png") + ctx.image.xray("tests/contexts/moveTo_1.png") block: let ctx = newContext(newImage(300, 150)) @@ -63,7 +63,7 @@ block: ctx.fillStyle = "green" ctx.fill(region, EvenOdd) - ctx.image.writeFile("tests/contexts/fill_1.png") + ctx.image.xray("tests/contexts/fill_1.png") block: let ctx = newContext(newImage(300, 150)) @@ -71,7 +71,7 @@ block: ctx.rect(10, 10, 150, 100) ctx.stroke() - ctx.image.writeFile("tests/contexts/stroke_1.png") + ctx.image.xray("tests/contexts/stroke_1.png") block: let ctx = newContext(newImage(300, 150)) @@ -94,7 +94,7 @@ block: ctx.lineTo(280, 140) ctx.stroke() - ctx.image.writeFile("tests/contexts/stroke_2.png") + ctx.image.xray("tests/contexts/stroke_2.png") block: let ctx = newContext(newImage(300, 150)) @@ -112,7 +112,7 @@ block: ctx.stroke() ctx.fill() - ctx.image.writeFile("tests/contexts/stroke_3.png") + ctx.image.xray("tests/contexts/stroke_3.png") block: let ctx = newContext(newImage(300, 150)) @@ -124,7 +124,7 @@ block: ctx.closePath() ctx.stroke() - ctx.image.writeFile("tests/contexts/closePath_1.png") + ctx.image.xray("tests/contexts/closePath_1.png") block: let ctx = newContext(newImage(300, 150)) @@ -140,7 +140,7 @@ block: ctx.bezierCurveTo(cp1, cp2, to) ctx.stroke() - ctx.image.writeFile("tests/contexts/bezierCurveTo_1.png") + ctx.image.xray("tests/contexts/bezierCurveTo_1.png") block: let ctx = newContext(newImage(300, 150)) @@ -150,7 +150,7 @@ block: ctx.bezierCurveTo(120, 160, 180, 10, 220, 140) ctx.stroke() - ctx.image.writeFile("tests/contexts/bezierCurveTo_2.png") + ctx.image.xray("tests/contexts/bezierCurveTo_2.png") block: let ctx = newContext(newImage(300, 150)) @@ -159,7 +159,7 @@ block: ctx.quadraticCurveTo(230, 30, 50, 100) ctx.stroke() - ctx.image.writeFile("tests/contexts/quadracticCurveTo_1.png") + ctx.image.xray("tests/contexts/quadracticCurveTo_1.png") block: let ctx = newContext(newImage(300, 150)) @@ -169,7 +169,7 @@ block: ctx.quadraticCurveTo(230, 150, 250, 20) ctx.stroke() - ctx.image.writeFile("tests/contexts/quadracticCurveTo_2.png") + ctx.image.xray("tests/contexts/quadracticCurveTo_2.png") block: let ctx = newContext(newImage(300, 150)) @@ -178,7 +178,7 @@ block: ctx.ellipse(100, 75, 75, 50) ctx.stroke() - ctx.image.writeFile("tests/contexts/ellipse_1.png") + ctx.image.xray("tests/contexts/ellipse_1.png") block: let ctx = newContext(newImage(300, 150)) @@ -186,7 +186,7 @@ block: ctx.strokeStyle = "green" ctx.strokeRect(20, 10, 160, 100) - ctx.image.writeFile("tests/contexts/strokeRect_1.png") + ctx.image.xray("tests/contexts/strokeRect_1.png") block: let ctx = newContext(newImage(300, 150)) @@ -196,7 +196,7 @@ block: ctx.strokeStyle = "#38f" ctx.strokeRect(30, 30, 160, 90) - ctx.image.writeFile("tests/contexts/strokeRect_2.png") + ctx.image.xray("tests/contexts/strokeRect_2.png") block: let ctx = newContext(newImage(300, 150)) @@ -204,7 +204,7 @@ block: ctx.setTransform(mat3(1, 0.2, 0, 0.8, 1, 0, 0, 0, 1)) ctx.fillRect(0, 0, 100, 100) - ctx.image.writeFile("tests/contexts/setTransform_1.png") + ctx.image.xray("tests/contexts/setTransform_1.png") block: let ctx = newContext(newImage(300, 150)) @@ -212,7 +212,7 @@ block: ctx.setTransform(mat3(1, 0.2, 0, 0.8, 1, 0, 0, 0, 1)) ctx.fillRect(0, 0, 100, 100) - ctx.image.writeFile("tests/contexts/resetTransform_1.png") + ctx.image.xray("tests/contexts/resetTransform_1.png") block: let ctx = newContext(newImage(300, 150)) @@ -220,7 +220,7 @@ block: ctx.rotate(45 * PI / 180) ctx.fillRect(60, 0, 100, 30) - ctx.image.writeFile("tests/contexts/resetTransform_1.png") + ctx.image.xray("tests/contexts/resetTransform_1.png") block: let ctx = newContext(newImage(300, 150)) @@ -235,7 +235,7 @@ block: ctx.fillRect(40, 40, 50, 20) ctx.fillRect(40, 90, 50, 20) - ctx.image.writeFile("tests/contexts/resetTransform_2.png") + ctx.image.xray("tests/contexts/resetTransform_2.png") block: let ctx = newContext(newImage(300, 150)) @@ -249,7 +249,7 @@ block: ctx.fillStyle = "gray" ctx.fillRect(0, 0, 80, 80) - ctx.image.writeFile("tests/contexts/translate_1.png") + ctx.image.xray("tests/contexts/translate_1.png") block: let ctx = newContext(newImage(300, 150)) @@ -263,7 +263,7 @@ block: ctx.fillStyle = "gray" ctx.fillRect(10, 10, 8, 20) - ctx.image.writeFile("tests/contexts/scale_1.png") + ctx.image.xray("tests/contexts/scale_1.png") block: let ctx = newContext(newImage(300, 150)) @@ -275,7 +275,7 @@ block: ctx.fillStyle = "red" ctx.fillRect(100, 0, 80, 20) - ctx.image.writeFile("tests/contexts/rotate_1.png") + ctx.image.xray("tests/contexts/rotate_1.png") block: let ctx = newContext(newImage(300, 150)) @@ -288,7 +288,7 @@ block: ctx.fillText("Hello world", 50, 90) - ctx.image.writeFile("tests/contexts/fillText_1.png") + ctx.image.xray("tests/contexts/fillText_1.png") block: let ctx = newContext(newImage(300, 150)) @@ -298,7 +298,7 @@ block: ctx.strokeText("Hello world", 50, 90) - ctx.image.writeFile("tests/contexts/strokeText_1.png") + ctx.image.xray("tests/contexts/strokeText_1.png") block: let ctx = newContext(newImage(300, 150)) @@ -312,7 +312,7 @@ block: ctx.fillRect(150, 40, 100, 100) - ctx.image.writeFile("tests/contexts/save_1.png") + ctx.image.xray("tests/contexts/save_1.png") block: let ctx = newContext(newImage(300, 150)) @@ -326,7 +326,7 @@ block: ctx.fillStyle = "orange" ctx.fillRect(0, 0, 100, 100) - ctx.image.writeFile("tests/contexts/clip_1.png") + ctx.image.xray("tests/contexts/clip_1.png") block: let ctx = newContext(newImage(300, 150)) @@ -343,7 +343,7 @@ block: ctx.fillStyle = "orange" ctx.fillRect(0, 0, 100, 100) - ctx.image.writeFile("tests/contexts/clip_1b.png") + ctx.image.xray("tests/contexts/clip_1b.png") block: let ctx = newContext(newImage(300, 150)) @@ -364,7 +364,7 @@ block: ctx.fillStyle = "blue" ctx.fillRect(0, 0, ctx.image.width.float32, ctx.image.height.float32) - ctx.image.writeFile("tests/contexts/clip_1c.png") + ctx.image.xray("tests/contexts/clip_1c.png") block: let ctx = newContext(newImage(300, 150)) @@ -385,7 +385,7 @@ block: ctx.restore() - ctx.image.writeFile("tests/contexts/clip_1d.png") + ctx.image.xray("tests/contexts/clip_1d.png") block: let ctx = newContext(newImage(300, 150)) @@ -409,7 +409,7 @@ block: ctx.fillStyle = "blue" ctx.fillRect(0, 0, ctx.image.width.float32, ctx.image.height.float32) - ctx.image.writeFile("tests/contexts/clip_1e.png") + ctx.image.xray("tests/contexts/clip_1e.png") block: let ctx = newContext(newImage(300, 150)) @@ -433,7 +433,7 @@ block: ctx.restore() # Pop the layer - ctx.image.writeFile("tests/contexts/clip_1f.png") + ctx.image.xray("tests/contexts/clip_1f.png") block: let ctx = newContext(newImage(300, 150)) @@ -446,7 +446,7 @@ block: ctx.fillStyle = "blue" ctx.fillRect(0, 0, ctx.image.width.float32, ctx.image.height.float32) - ctx.image.writeFile("tests/contexts/clip_2.png") + ctx.image.xray("tests/contexts/clip_2.png") block: let image = newImage(300, 150) @@ -464,7 +464,7 @@ block: ctx.fillStyle = "blue" ctx.fillRect(0, 0, ctx.image.width.float32, ctx.image.height.float32) - image.writeFile("tests/contexts/clip_3.png") + image.xray("tests/contexts/clip_3.png") block: let image = newImage(300, 150) @@ -485,7 +485,7 @@ block: ctx.restore() - image.writeFile("tests/contexts/clip_text.png") + image.xray("tests/contexts/clip_text.png") block: let ctx = newContext(100, 100) @@ -517,7 +517,7 @@ block: drawDashedLine(@[20.float32, 3, 3, 3, 3, 3, 3, 3]) drawDashedLine(@[12.float32, 3, 3]) - image.writeFile("tests/contexts/setLineDash_1.png") + image.xray("tests/contexts/setLineDash_1.png") block: let @@ -534,7 +534,7 @@ block: ctx.fillRect(10, 10, 100, 100) - image.writeFile("tests/contexts/blendmode_1.png") + image.xray("tests/contexts/blendmode_1.png") block: let @@ -551,7 +551,7 @@ block: ctx.fillStyle = "red" ctx.fillRect(50, 50, 100, 100) - image.writeFile("tests/contexts/globalAlpha_1.png") + image.xray("tests/contexts/globalAlpha_1.png") block: let @@ -560,7 +560,7 @@ block: testImage = readImage("tests/images/pip1.png") ctx.drawImage(testImage, 0, 0) ctx.drawImage(testImage, 30, 30) - image.writeFile("tests/contexts/draw_image.png") + image.xray("tests/contexts/draw_image.png") block: let @@ -570,7 +570,7 @@ block: ctx.translate(30, 30) ctx.drawImage(testImage, -30, -30) ctx.drawImage(testImage, 0, 0) - image.writeFile("tests/contexts/draw_image_translated.png") + image.xray("tests/contexts/draw_image_translated.png") block: let @@ -581,7 +581,7 @@ block: ctx.drawImage(testImage, 0, 0) ctx.scale(0.25, 0.25) ctx.drawImage(testImage, 0, 0) - image.writeFile("tests/contexts/draw_image_scaled.png") + image.xray("tests/contexts/draw_image_scaled.png") block: let @@ -589,7 +589,7 @@ block: ctx = newContext(image) testImage = readImage("tests/images/pip1.png") ctx.drawImage(testImage, 30, 30, 20, 20) - image.writeFile("tests/contexts/draw_image_self_scaled.png") + image.xray("tests/contexts/draw_image_self_scaled.png") block: let @@ -597,7 +597,7 @@ block: ctx = newContext(image) rhino = readImage("tests/images/rhino.png") ctx.drawImage(rhino, 33, 71, 104, 124, 21, 20, 87, 104) - image.writeFile("tests/contexts/draw_image_rhino.png") + image.xray("tests/contexts/draw_image_rhino.png") block: let @@ -605,7 +605,7 @@ block: ctx = newContext(image) rhino = readImage("tests/images/rhino.png") ctx.drawImage(rhino, rect(33, 71, 104, 124), rect(21, 20, 87, 104)) - image.writeFile("tests/contexts/draw_image_rhino2.png") + image.xray("tests/contexts/draw_image_rhino2.png") block: let @@ -643,7 +643,7 @@ block: ctx.fillStyle.color = color(0, 0, 1, 1) ctx.restore() ctx.fillRect(0, 0, ctx.image.width.float32, ctx.image.height.float32) - ctx.image.writeFile("tests/contexts/paintSaveRestore.png") + ctx.image.xray("tests/contexts/paintSaveRestore.png") block: # From https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/textBaseline @@ -674,4 +674,4 @@ block: ctx.stroke() ctx.fillText("Abcdefghijklmnop (" & $baseline & ")", 0, y) - ctx.image.writeFile("tests/contexts/textBaseline_1.png") + ctx.image.xray("tests/contexts/textBaseline_1.png") diff --git a/tests/test_fonts.nim b/tests/test_fonts.nim index ce6ee67..632b94b 100644 --- a/tests/test_fonts.nim +++ b/tests/test_fonts.nim @@ -1,17 +1,9 @@ -import os, pixie, pixie/fileformats/png, strformat, unicode +import os, pixie, pixie/fileformats/png, strformat, unicode, xrays proc wh(image: Image): Vec2 = ## Return with and height as a size vector. vec2(image.width.float32, image.height.float32) -proc doDiff(rendered: Image, name: string) = - rendered.writeFile(&"tests/fonts/rendered/{name}.png") - let - master = readImage(&"tests/fonts/masters/{name}.png") - (diffScore, diffImage) = diff(master, rendered) - echo &"{name} score: {diffScore}" - diffImage.writeFile(&"tests/fonts/diffs/{name}.png") - block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") font.size = 24 @@ -33,7 +25,7 @@ block: image.fill(rgba(255, 255, 255, 255)) image.fillText(font, "fill") - doDiff(image, "image_fill") + image.xray("tests/fonts/masters/image_fill.png") block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") @@ -42,7 +34,7 @@ block: image.fill(rgba(255, 255, 255, 255)) image.strokeText(font, "stroke") - doDiff(image, "image_stroke") + image.xray("tests/fonts/masters/image_stroke.png") block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") @@ -50,7 +42,7 @@ block: let mask = newMask(200, 100) mask.fillText(font, "fill") - doDiff(newImage(mask), "mask_fill") + mask.xray("tests/fonts/masters/mask_fill.png") block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") @@ -58,7 +50,7 @@ block: let mask = newMask(200, 100) mask.strokeText(font, "stroke") - doDiff(newImage(mask), "mask_stroke") + mask.xray("tests/fonts/masters/mask_stroke.png") block: # SVG Fonts have no masters @@ -67,35 +59,35 @@ block: font.size = 48 let mask = newMask(200, 100) mask.fillText(font, "Changa") - writeFile("tests/fonts/svg_changa.png", mask.encodePng()) + mask.xray("tests/fonts/svg_changa.png") block: var font = readFont("tests/fonts/DejaVuSans.svg") font.size = 48 let mask = newMask(200, 100) mask.fillText(font, "Deja vu ") - writeFile("tests/fonts/svg_dejavu.png", mask.encodePng()) + mask.xray("tests/fonts/svg_dejavu.png") block: var font = readFont("tests/fonts/IBMPlexSans-Regular.svg") font.size = 48 let mask = newMask(200, 100) mask.fillText(font, "IBM ") - writeFile("tests/fonts/svg_ibm.png", mask.encodePng()) + mask.xray("tests/fonts/svg_ibm.png") block: var font = readFont("tests/fonts/Moon-Bold.svg") font.size = 48 let mask = newMask(200, 100) mask.fillText(font, "Moon ") - writeFile("tests/fonts/svg_moon.png", mask.encodePng()) + mask.xray("tests/fonts/svg_moon.png") block: var font = readFont("tests/fonts/Ubuntu.svg") font.size = 48 let mask = newMask(200, 100) mask.fillText(font, "Ubuntu ") - writeFile("tests/fonts/svg_ubuntu.png", mask.encodePng()) + mask.xray("tests/fonts/svg_ubuntu.png") block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") @@ -105,7 +97,7 @@ block: image.fill(rgba(255, 255, 255, 255)) image.fillText(font, "asdf") - doDiff(image, "basic1") + image.xray("tests/fonts/masters/basic1.png") block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") @@ -115,7 +107,7 @@ block: image.fill(rgba(255, 255, 255, 255)) image.fillText(font, "A cow") - doDiff(image, "basic2") + image.xray("tests/fonts/masters/basic2.png") block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") @@ -125,7 +117,7 @@ block: image.fill(rgba(255, 255, 255, 255)) image.fillText(font, "A bit of text HERE") - doDiff(image, "basic3") + image.xray("tests/fonts/masters/basic3.png") block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") @@ -136,7 +128,7 @@ block: image.fill(rgba(255, 255, 255, 255)) image.fillText(font, "Line height") - doDiff(image, "basic4") + image.xray("tests/fonts/masters/basic4.png") block: var font = readFont("tests/fonts/Ubuntu-Regular_1.ttf") @@ -146,7 +138,7 @@ block: image.fill(rgba(255, 255, 255, 255)) image.fillText(font, "Another font") - doDiff(image, "basic5") + image.xray("tests/fonts/masters/basic5.png") block: var font = readFont("tests/fonts/Aclonica-Regular_1.ttf") @@ -156,7 +148,7 @@ block: image.fill(rgba(255, 255, 255, 255)) image.fillText(font, "Different font") - doDiff(image, "basic6") + image.xray("tests/fonts/masters/basic6.png") block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") @@ -169,7 +161,7 @@ block: font, "Second line", translate(vec2(0, font.defaultLineHeight)) ) - doDiff(image, "basic7") + image.xray("tests/fonts/masters/basic7.png") block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") @@ -183,7 +175,7 @@ block: bounds = vec2(200, 0) ) - doDiff(image, "basic8") + image.xray("tests/fonts/masters/basic8.png") block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") @@ -197,7 +189,7 @@ block: bounds = vec2(100, 0) ) - doDiff(image, "basic8b") + image.xray("tests/fonts/masters/basic8b.png") block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") @@ -211,7 +203,7 @@ block: bounds = vec2(200, 0) ) - doDiff(image, "basic9") + image.xray("tests/fonts/masters/basic9.png") block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") @@ -226,7 +218,7 @@ block: hAlign = RightAlign ) - doDiff(image, "basic10") + image.xray("tests/fonts/masters/basic10.png") const paragraph = "ShehadcometotheconclusionthatyoucouldtellalotaboutapersonbytheirearsThewaytheystuckoutandthesizeoftheearlobescouldgiveyou" @@ -249,7 +241,7 @@ block: ) let name = if i > 0: &"paragraph1_{i + 1}" else: "paragraph1" - doDiff(image, name) + image.xray(&"tests/fonts/masters/{name}.png") block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") @@ -267,7 +259,7 @@ block: ) let name = if i > 0: &"paragraph1_nokern_{i + 1}" else: "paragraph1_nokern" - doDiff(image, name) + image.xray(&"tests/fonts/masters/{name}.png") block: var font = readFont("tests/fonts/Ubuntu-Regular_1.ttf") @@ -284,7 +276,7 @@ block: ) let name = if i > 0: &"paragraph2_{i + 1}" else: "paragraph2" - doDiff(image, name) + image.xray(&"tests/fonts/masters/{name}.png") block: var font = readFont("tests/fonts/Ubuntu-Regular_1.ttf") @@ -302,7 +294,7 @@ block: ) let name = if i > 0: &"paragraph2_nokern_{i + 1}" else: "paragraph2_nokern" - doDiff(image, name) + image.xray(&"tests/fonts/masters/{name}.png") block: var font = readFont("tests/fonts/IBMPlexSans-Regular_2.ttf") @@ -319,7 +311,7 @@ block: ) let name = if i > 0: &"paragraph3_{i + 1}" else: "paragraph3" - doDiff(image, name) + image.xray(&"tests/fonts/masters/{name}.png") block: var font = readFont("tests/fonts/IBMPlexSans-Regular_2.ttf") @@ -337,7 +329,7 @@ block: ) let name = if i > 0: &"paragraph3_nokern_{i + 1}" else: "paragraph3_nokern" - doDiff(image, name) + image.xray(&"tests/fonts/masters/{name}.png") block: var font = readFont("tests/fonts/NotoSans-Regular_4.ttf") @@ -354,7 +346,7 @@ block: ) let name = if i > 0: &"paragraph4_{i + 1}" else: "paragraph4" - doDiff(image, name) + image.xray(&"tests/fonts/masters/{name}.png") block: var font = readFont("tests/fonts/NotoSans-Regular_4.ttf") @@ -372,7 +364,7 @@ block: ) let name = if i > 0: &"paragraph4_nokern_{i + 1}" else: "paragraph4_nokern" - doDiff(image, name) + image.xray(&"tests/fonts/masters/{name}.png") block: var font = readFont("tests/fonts/Pacifico-Regular_4.ttf") @@ -389,7 +381,7 @@ block: ) let name = if i > 0: &"paragraph5_{i + 1}" else: "paragraph5" - doDiff(image, name) + image.xray(&"tests/fonts/masters/{name}.png") block: var font = readFont("tests/fonts/Pacifico-Regular_4.ttf") @@ -407,7 +399,7 @@ block: ) let name = if i > 0: &"paragraph5_nokern_{i + 1}" else: "paragraph5_nokern" - doDiff(image, name) + image.xray(&"tests/fonts/masters/{name}.png") block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") @@ -421,7 +413,7 @@ block: bounds = image.wh ) - doDiff(image, "huge1") + image.xray("tests/fonts/masters/huge1.png") block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") @@ -436,7 +428,7 @@ block: bounds = image.wh ) - doDiff(image, "huge1_nokern") + image.xray("tests/fonts/masters/huge1_nokern.png") block: var font = readFont("tests/fonts/Ubuntu-Regular_1.ttf") @@ -450,7 +442,7 @@ block: bounds = image.wh ) - doDiff(image, "huge2") + image.xray("tests/fonts/masters/huge2.png") block: var font = readFont("tests/fonts/Ubuntu-Regular_1.ttf") @@ -465,7 +457,7 @@ block: bounds = image.wh ) - doDiff(image, "huge2_nokern") + image.xray("tests/fonts/masters/huge2_nokern.png") block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") @@ -479,7 +471,7 @@ block: bounds = image.wh ) - doDiff(image, "huge3") + image.xray("tests/fonts/masters/huge3.png") block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") @@ -494,7 +486,7 @@ block: bounds = image.wh ) - doDiff(image, "huge3_nokern") + image.xray("tests/fonts/masters/huge3_nokern.png") block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") @@ -508,7 +500,7 @@ block: bounds = image.wh ) - doDiff(image, "pairs1") + image.xray("tests/fonts/masters/pairs1.png") block: var font = readFont("tests/fonts/Ubuntu-Regular_1.ttf") @@ -522,7 +514,7 @@ block: bounds = image.wh ) - doDiff(image, "pairs2") + image.xray("tests/fonts/masters/pairs2.png") block: var font = readFont("tests/fonts/IBMPlexSans-Regular_2.ttf") @@ -536,7 +528,7 @@ block: bounds = image.wh ) - doDiff(image, "pairs3") + image.xray("tests/fonts/masters/pairs3.png") block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") @@ -556,7 +548,7 @@ Seventh line""", bounds = image.wh ) - doDiff(image, "lines1") + image.xray("tests/fonts/masters/lines1.png") block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") @@ -575,7 +567,7 @@ Fifth line""", bounds = image.wh ) - doDiff(image, "lines2") + image.xray("tests/fonts/masters/lines2.png") block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") @@ -656,7 +648,7 @@ block: vAlign = BottomAlign ) - doDiff(image, "alignments") + image.xray("tests/fonts/masters/alignments.png") block: var font = readFont("tests/fonts/IBMPlexSans-Regular_2.ttf") @@ -675,7 +667,7 @@ block: image.fill(rgba(255, 255, 255, 255)) image.fillText(font, "Text") - doDiff(image, "image_paint_fill") + image.xray("tests/fonts/masters/image_paint_fill.png") block: var font1 = readFont("tests/fonts/Roboto-Regular_1.ttf") @@ -700,14 +692,14 @@ block: image.fillText(arrangement) - doDiff(image, "spans1") + image.xray("tests/fonts/masters/spans1.png") let ctx = newContext(image) ctx.fillStyle = rgba(127, 127, 127, 127) for i, rect in arrangement.selectionRects: ctx.fillRect(rect) - doDiff(image, "selection_rects1") + image.xray("tests/fonts/masters/selection_rects1.png") block: var font1 = readFont("tests/fonts/Roboto-Regular_1.ttf") @@ -732,14 +724,14 @@ block: image.fillText(arrangement) - doDiff(image, "spans2") + image.xray("tests/fonts/masters/spans2.png") let ctx = newContext(image) ctx.fillStyle = rgba(127, 127, 127, 127) for i, rect in arrangement.selectionRects: ctx.fillRect(rect) - doDiff(image, "selection_rects2") + image.xray("tests/fonts/masters/selection_rects2.png") block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") @@ -759,7 +751,7 @@ block: for i, rect in arrangement.selectionRects: ctx.fillRect(rect) - doDiff(image, "selection_rects3") + image.xray("tests/fonts/masters/selection_rects3.png") block: let @@ -821,7 +813,7 @@ block: image.fillText(arrangement) - doDiff(image, "spans4") + image.xray("tests/fonts/masters/spans4.png") block: let ubuntu = readTypeface("tests/fonts/Ubuntu-Regular_1.ttf") @@ -855,7 +847,7 @@ block: image.fillText(arrangement, translate(vec2(20, 20))) - doDiff(image, "spans5") + image.xray("tests/fonts/masters/spans5.png") block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") @@ -870,7 +862,7 @@ block: bounds = vec2(200, 0) ) - doDiff(image, "underline1") + image.xray("tests/fonts/masters/underline1.png") block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") @@ -886,7 +878,7 @@ block: bounds = vec2(200, 0) ) - doDiff(image, "underline2") + image.xray("tests/fonts/masters/underline2.png") block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") @@ -901,7 +893,7 @@ block: bounds = vec2(200, 0) ) - doDiff(image, "underline3") + image.xray("tests/fonts/masters/underline3.png") block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") @@ -916,7 +908,7 @@ block: bounds = vec2(200, 0) ) - doDiff(image, "strikethrough1") + image.xray("tests/fonts/masters/strikethrough1.png") block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") @@ -932,7 +924,7 @@ block: bounds = vec2(200, 0) ) - doDiff(image, "strikethrough2") + image.xray("tests/fonts/masters/strikethrough2.png") block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") @@ -947,7 +939,7 @@ block: bounds = vec2(200, 0) ) - doDiff(image, "strikethrough3") + image.xray("tests/fonts/masters/strikethrough3.png") block: let ubuntu = readTypeface("tests/fonts/Ubuntu-Regular_1.ttf") @@ -994,7 +986,7 @@ block: image.fillText(arrangement, translate(vec2(20, 20))) - doDiff(image, "spans6") + image.xray("tests/fonts/masters/spans6.png") block: @@ -1031,7 +1023,7 @@ block: # Enable this to show how text is drawing directly # image.fillText(arrangement, translate(vec2(40, 170))) - doDiff(image, "spans7") + image.xray("tests/fonts/masters/spans7.png") block: var font = readFont("tests/fonts/Roboto-Regular_1.ttf") @@ -1051,7 +1043,7 @@ block: bounds = vec2(200, 0) ) - doDiff(image, "paints1") + image.xray("tests/fonts/masters/paints1.png") block: var typeface = readTypeface("tests/fonts/Roboto-Regular_1.ttf") @@ -1064,7 +1056,7 @@ block: image.fill(rgba(255, 255, 255, 255)) image.fillText(font, "Grumpy wizards make toxic brew for the evil Queen and Jack.") - doDiff(image, "cff") + image.xray("tests/fonts/masters/cff.png") block: var font = readFont("tests/fonts/NotoSansJP-Regular.ttf") @@ -1073,7 +1065,7 @@ block: image.fill(rgba(255, 255, 255, 255)) image.fillText(font, "仰コソ会票カク帰了ノ終準港みせス議徳モチタ提請ルまつ力路お") - doDiff(image, "cff_jp") + image.xray("tests/fonts/masters/cff_jp.png") block: var font = readFont("tests/fonts/Inter-Regular.ttf") @@ -1083,7 +1075,7 @@ block: image.fill(rgba(255, 255, 255, 255)) image.fillText(font, "Grumpy wizards make toxic brew for the evil Queen and Jack.") - doDiff(image, "cff_underline") + image.xray("tests/fonts/masters/cff_underline.png") block: var font = readFont("tests/fonts/Inter-Regular.ttf") @@ -1093,7 +1085,7 @@ block: image.fill(rgba(255, 255, 255, 255)) image.fillText(font, "Grumpy wizards make toxic brew for the evil Queen and Jack.") - doDiff(image, "cff_strikethrough") + image.xray("tests/fonts/masters/cff_strikethrough.png") block: var font = readFont("tests/fonts/Inter-Regular.ttf") @@ -1104,7 +1096,7 @@ block: image.fill(rgba(255, 255, 255, 255)) image.fillText(font, "Grumpy ウィザード make 有毒な醸造 for the 悪い女王 and Jack.") - doDiff(image, "fallback") + image.xray("tests/fonts/masters/fallback.png") block: let @@ -1127,7 +1119,7 @@ block: image.fill(rgba(255, 255, 255, 255)) image.fillText(font, "Grumpy ウィザード make 有毒な醸造 for the 悪い女王 and Jack.") - doDiff(image, "fallback2") + image.xray("tests/fonts/masters/fallback2.png") block: var font = readFont("tests/fonts/Inter-Regular.ttf") @@ -1137,7 +1129,7 @@ block: image.fill(rgba(255, 255, 255, 255)) image.fillText(font, "This[]Advance!") - doDiff(image, "tofu_advance") + image.xray("tests/fonts/masters/tofu_advance.png") block: let image = newImage(200, 200) @@ -1195,7 +1187,7 @@ block: transform = translate(vec2(0, 60)) ) - doDiff(image, "customlineheight") + image.xray("tests/fonts/masters/customlineheight.png") block: var font = readTypefaces("tests/fonts/PTSans.ttc")[0].newFont diff --git a/tests/test_gif.nim b/tests/test_gif.nim index a460165..85a1b24 100644 --- a/tests/test_gif.nim +++ b/tests/test_gif.nim @@ -1,11 +1,11 @@ -import pixie, pixie/fileformats/gif +import pixie, pixie/fileformats/gif, xrays block: let path = "tests/fileformats/gif/3x5.gif" image = readImage(path) dimensions = decodeGifDimensions(readFile(path)) - image.writeFile("tests/fileformats/gif/3x5.png") + image.xray("tests/fileformats/gif/3x5.png") doAssert image.width == dimensions.width doAssert image.height == dimensions.height @@ -14,7 +14,7 @@ block: path = "tests/fileformats/gif/audrey.gif" image = readImage(path) dimensions = decodeGifDimensions(readFile(path)) - image.writeFile("tests/fileformats/gif/audrey.png") + image.xray("tests/fileformats/gif/audrey.png") doAssert image.width == dimensions.width doAssert image.height == dimensions.height @@ -23,7 +23,7 @@ block: path = "tests/fileformats/gif/sunflower.gif" image = readImage(path) dimensions = decodeGifDimensions(readFile(path)) - image.writeFile("tests/fileformats/gif/sunflower.png") + image.xray("tests/fileformats/gif/sunflower.png") doAssert image.width == dimensions.width doAssert image.height == dimensions.height @@ -32,13 +32,13 @@ block: path = "tests/fileformats/gif/sunflower.gif" image = readImage(path) dimensions = decodeGifDimensions(readFile(path)) - image.writeFile("tests/fileformats/gif/sunflower.png") + image.xray("tests/fileformats/gif/sunflower.png") doAssert image.width == dimensions.width doAssert image.height == dimensions.height block: let img4 = readImage("tests/fileformats/gif/newtons_cradle.gif") - img4.writeFile("tests/fileformats/gif/newtons_cradle.png") + img4.xray("tests/fileformats/gif/newtons_cradle.png") let animatedGif = decodeGif(readFile("tests/fileformats/gif/newtons_cradle.gif")) diff --git a/tests/test_images.nim b/tests/test_images.nim index 4ae2938..9351af0 100644 --- a/tests/test_images.nim +++ b/tests/test_images.nim @@ -1,4 +1,4 @@ -import chroma, pixie, pixie/internal, vmath +import chroma, pixie, pixie/internal, vmath, xrays block: let image = newImage(10, 10) @@ -45,77 +45,77 @@ block: a.draw(b) - a.writeFile("tests/images/flipped1.png") + a.xray("tests/images/flipped1.png") a.flipVertical() - a.writeFile("tests/images/flipped2.png") + a.xray("tests/images/flipped2.png") a.flipHorizontal() - a.writeFile("tests/images/flipped3.png") + a.xray("tests/images/flipped3.png") block: let a = readImage("tests/images/flipped1.png") b = a.superImage(-10, 0, 20, 20) - b.writeFile("tests/images/superimage1.png") + b.xray("tests/images/superimage1.png") block: let a = readImage("tests/images/flipped1.png") b = a.superImage(-10, -10, 20, 20) - b.writeFile("tests/images/superimage2.png") + b.xray("tests/images/superimage2.png") block: let a = readImage("tests/images/flipped1.png") b = a.superImage(90, 0, 120, 120) - b.writeFile("tests/images/superimage3.png") + b.xray("tests/images/superimage3.png") block: let a = readImage("tests/images/flipped1.png") b = a.superImage(90, 90, 120, 120) - b.writeFile("tests/images/superimage4.png") + b.xray("tests/images/superimage4.png") block: let a = readImage("tests/images/flipped1.png") b = a.superImage(-10, -10, 120, 120) - b.writeFile("tests/images/superimage5.png") + b.xray("tests/images/superimage5.png") block: let a = readImage("tests/images/flipped1.png") b = a.superImage(45, 45, 20, 20) - b.writeFile("tests/images/superimage6.png") + b.xray("tests/images/superimage6.png") block: let a = readImage("tests/images/flipped1.png") b = a.minifyBy2() - b.writeFile("tests/images/minifiedBy2.png") + b.xray("tests/images/minifiedBy2.png") block: let a = readImage("tests/images/minifiedBy2.png") b = a.magnifyBy2() - b.writeFile("tests/images/magnifiedBy2.png") + b.xray("tests/images/magnifiedBy2.png") block: let a = readImage("tests/images/flipped1.png") b = a.minifyBy2(2) - b.writeFile("tests/images/minifiedBy4.png") + b.xray("tests/images/minifiedBy4.png") block: let a = readImage("tests/images/minifiedBy4.png") b = a.magnifyBy2(2) - b.writeFile("tests/images/magnifiedBy4.png") + b.xray("tests/images/magnifiedBy4.png") block: let a = readImage("tests/fileformats/png/mandrill.png") b = a.minifyBy2() - b.writeFile("tests/images/minifiedMandrill.png") + b.xray("tests/images/minifiedMandrill.png") block: let a = newImage(100, 100) @@ -129,7 +129,7 @@ block: ctx.image.fill(rgba(0, 0, 0, 255)) ctx.fillRect(rect(25, 25, 50, 50), ) ctx.image.blur(20) - ctx.image.writeFile("tests/images/imageblur20.png") + ctx.image.xray("tests/images/imageblur20.png") block: let ctx = newContext(100, 100) @@ -137,7 +137,7 @@ block: ctx.image.fill(rgba(0, 0, 0, 255)) ctx.fillRect(rect(25, 25, 50, 50)) ctx.image.blur(20, rgba(0, 0, 0, 255)) - ctx.image.writeFile("tests/images/imageblur20oob.png") + ctx.image.xray("tests/images/imageblur20oob.png") block: # Test conversion between image and mask let @@ -163,7 +163,7 @@ block: let image = newImage(100, 100) image.fillPath(p, rgba(255, 0, 0, 255)) - newImage(newMask(image)).writeFile("tests/images/mask2image.png") + newImage(newMask(image)).xray("tests/images/mask2image.png") block: let image = newImage(100, 100) diff --git a/tests/test_images_draw.nim b/tests/test_images_draw.nim index 4c926f6..c2d99f1 100644 --- a/tests/test_images_draw.nim +++ b/tests/test_images_draw.nim @@ -1,12 +1,4 @@ -import pixie, strformat - -proc doDiff(rendered: Image, name: string) = - rendered.writeFile(&"tests/images/rendered/{name}.png") - let - master = readImage(&"tests/images/masters/{name}.png") - (diffScore, diffImage) = diff(master, rendered) - echo &"{name} score: {diffScore}" - diffImage.writeFile(&"tests/images/diffs/{name}.png") +import pixie, strformat, xrays block: let @@ -16,7 +8,7 @@ block: b.fill(rgba(0, 255, 0, 255)) a.draw(b, translate(vec2(250, 250))) - a.writeFile("tests/images/rotate0.png") + a.xray("tests/images/rotate0.png") block: let @@ -26,7 +18,7 @@ block: b.fill(rgba(0, 255, 0, 255)) a.draw(b, translate(vec2(250, 250)) * rotate(90 * PI.float32 / 180)) - a.writeFile("tests/images/rotate90.png") + a.xray("tests/images/rotate90.png") block: let @@ -36,7 +28,7 @@ block: b.fill(rgba(0, 255, 0, 255)) a.draw(b, translate(vec2(250, 250)) * rotate(180 * PI.float32 / 180)) - a.writeFile("tests/images/rotate180.png") + a.xray("tests/images/rotate180.png") block: let @@ -46,7 +38,7 @@ block: b.fill(rgba(0, 255, 0, 255)) a.draw(b, translate(vec2(250, 250)) * rotate(270 * PI.float32 / 180)) - a.writeFile("tests/images/rotate270.png") + a.xray("tests/images/rotate270.png") block: let @@ -56,14 +48,14 @@ block: b.fill(rgba(0, 255, 0, 255)) a.draw(b, translate(vec2(250, 250)) * rotate(360 * PI.float32 / 180)) - a.writeFile("tests/images/rotate360.png") + a.xray("tests/images/rotate360.png") block: let ctx = newContext(100, 100) ctx.fillStyle = rgba(255, 255, 0, 255) ctx.image.fill(rgba(0, 255, 255, 255)) ctx.fillRect(rect(vec2(10, 10), vec2(30, 30))) - ctx.image.writeFile("tests/images/drawRect.png") + ctx.image.xray("tests/images/drawRect.png") block: let ctx = newContext(100, 100) @@ -71,14 +63,14 @@ block: ctx.lineWidth = 10 ctx.image.fill(rgba(0, 255, 255, 255)) ctx.strokeRect(rect(vec2(10, 10), vec2(30, 30))) - ctx.image.writeFile("tests/images/strokeRect.png") + ctx.image.xray("tests/images/strokeRect.png") block: let ctx = newContext(100, 100) ctx.fillStyle = rgba(255, 255, 0, 255) ctx.image.fill(rgba(0, 255, 255, 255)) ctx.fillRoundedRect(rect(vec2(10, 10), vec2(30, 30)), 10) - ctx.image.writeFile("tests/images/drawRoundedRect.png") + ctx.image.xray("tests/images/drawRoundedRect.png") block: let ctx = newContext(100, 100) @@ -86,7 +78,7 @@ block: ctx.lineWidth = 10 ctx.image.fill(rgba(0, 255, 255, 255)) ctx.strokeRoundedRect(rect(vec2(10, 10), vec2(30, 30)), 10) - ctx.image.writeFile("tests/images/strokeRoundedRect.png") + ctx.image.xray("tests/images/strokeRoundedRect.png") block: let ctx = newContext(100, 100) @@ -94,14 +86,14 @@ block: ctx.lineWidth = 10 ctx.image.fill(rgba(0, 255, 255, 255)) ctx.strokeSegment(segment(vec2(10, 10), vec2(90, 90))) - ctx.image.writeFile("tests/images/drawSegment.png") + ctx.image.xray("tests/images/drawSegment.png") block: let ctx = newContext(100, 100) ctx.fillStyle = rgba(255, 255, 0, 255) ctx.image.fill(rgba(0, 255, 255, 255)) ctx.fillEllipse(vec2(50, 50), 25, 25) - ctx.image.writeFile("tests/images/drawEllipse.png") + ctx.image.xray("tests/images/drawEllipse.png") block: let ctx = newContext(100, 100) @@ -109,14 +101,14 @@ block: ctx.lineWidth = 10 ctx.image.fill(rgba(0, 255, 255, 255)) ctx.strokeEllipse(vec2(50, 50), 25, 25) - ctx.image.writeFile("tests/images/strokeEllipse.png") + ctx.image.xray("tests/images/strokeEllipse.png") block: let ctx = newContext(100, 100) ctx.fillStyle = rgba(255, 255, 0, 255) ctx.image.fill(rgba(0, 255, 255, 255)) ctx.fillPolygon(vec2(50, 50), 30, 6) - ctx.image.writeFile("tests/images/drawPolygon.png") + ctx.image.xray("tests/images/drawPolygon.png") block: let ctx = newContext(100, 100) @@ -124,7 +116,7 @@ block: ctx.lineWidth = 10 ctx.image.fill(rgba(0, 255, 255, 255)) ctx.strokePolygon(vec2(50, 50), 30, 6) - ctx.image.writeFile("tests/images/strokePolygon.png") + ctx.image.xray("tests/images/strokePolygon.png") block: let @@ -134,7 +126,7 @@ block: b.fill(rgba(0, 255, 0, 255)) a.draw(b, translate(vec2(250, 250)) * scale(vec2(0.5, 0.5))) - a.writeFile("tests/images/scaleHalf.png") + a.xray("tests/images/scaleHalf.png") block: let @@ -143,7 +135,7 @@ block: a.fill(rgba(255, 255, 255, 255)) b.fill(rgbx(0, 0, 0, 255)) a.draw(b, translate(vec2(0.5, 0.5))) - doDiff(a, "smooth1") + a.xray("tests/images/masters/smooth1.png") block: let @@ -152,7 +144,7 @@ block: a.fill(rgba(255, 255, 255, 255)) b.fill(rgbx(0, 0, 0, 255)) a.draw(b, translate(vec2(0, 50)) * rotate(45.toRadians)) - doDiff(a, "smooth2") + a.xray("tests/images/masters/smooth2.png") block: let @@ -161,7 +153,7 @@ block: a.fill(rgba(255, 255, 255, 255)) b.fill(rgba(0, 0, 0, 255)) a.draw(b, translate(vec2(25.2, 25))) - doDiff(a, "smooth3") + a.xray("tests/images/masters/smooth3.png") block: let @@ -170,7 +162,7 @@ block: a.fill(rgba(255, 255, 255, 255)) b.fill(rgba(0, 0, 0, 255)) a.draw(b, translate(vec2(25.2, 25.6))) - doDiff(a, "smooth4") + a.xray("tests/images/masters/smooth4.png") block: let @@ -180,7 +172,7 @@ block: b.fill(rgbx(255, 0, 0, 255)) let m = translate(vec2(50, 50)) * rotate(30.toRadians) a.draw(b, m) - doDiff(a, "smooth5") + a.xray("tests/images/masters/smooth5.png") block: let @@ -189,7 +181,7 @@ block: a.fill(rgba(255, 255, 255, 255)) let m = translate(vec2(50, 50)) * rotate(30.toRadians) a.draw(b, m) - doDiff(a, "smooth6") + a.xray("tests/images/masters/smooth6.png") block: let @@ -198,7 +190,7 @@ block: a.fill(rgba(255, 255, 255, 255)) let m = translate(vec2(50, 50)) * rotate(30.toRadians) * scale(vec2(0.1, 0.1)) a.draw(b, m) - doDiff(a, "smooth7") + a.xray("tests/images/masters/smooth7.png") block: let @@ -207,7 +199,7 @@ block: a.fill(rgba(255, 255, 255, 255)) let m = scale(vec2(2, 2)) a.draw(b, m) - doDiff(a, "smooth8") + a.xray("tests/images/masters/smooth8.png") block: let @@ -216,7 +208,7 @@ block: a.fill(rgba(255, 255, 255, 255)) let m = translate(vec2(1, 1)) * scale(vec2(2, 2)) a.draw(b, m) - doDiff(a, "smooth9") + a.xray("tests/images/masters/smooth9.png") block: let @@ -225,7 +217,7 @@ block: a.fill(rgba(255, 255, 255, 255)) let m = translate(vec2(0.5, 0.5)) * scale(vec2(2, 2)) a.draw(b, m) - doDiff(a, "smooth10") + a.xray("tests/images/masters/smooth10.png") block: let @@ -236,7 +228,7 @@ block: rotate(-15.toRadians) * scale(vec2(263.86/40, 263.86/40)) a.draw(b, m) - doDiff(a, "smooth11") + a.xray("tests/images/masters/smooth11.png") block: let @@ -248,7 +240,7 @@ block: a.draw(b, m * translate(vec2(-40, 0))) a.draw(b, m * translate(vec2(-40, -40))) a.draw(b, m * translate(vec2(0, -40))) - doDiff(a, "smooth12") + a.xray("tests/images/masters/smooth12.png") block: let @@ -257,19 +249,19 @@ block: a.fill(rgba(255, 255, 255, 255)) b.fill(rgba(0, 0, 0, 255)) a.draw(b, scale(vec2(0.5, 0.5))) - doDiff(a, "minify_odd") + a.xray("tests/images/masters/minify_odd.png") block: let rock = readImage("tests/images/rock.png") minified = rock.minifyBy2() - doDiff(minified, "rock_minified") + minified.xray("tests/images/masters/rock_minified.png") block: let rock = readImage("tests/images/rock.png") minified = rock.minifyBy2(2) - doDiff(minified, "rock_minified2") + minified.xray("tests/images/masters/rock_minified2.png") block: let pathStr = """ @@ -286,7 +278,7 @@ block: strokeImage.strokePath(pathStr, color(1, 1, 1, 1), strokeWidth = 4) image.draw(strokeImage) - image.writeFile("tests/images/fillOptimization.png") + image.xray("tests/images/fillOptimization.png") doAssert image[10, 10] == rgbx(255, 127, 63, 255) block: @@ -314,4 +306,4 @@ block: a.draw(b, translate(translation)) - a.writeFile("tests/images/fillOptimization2.png") + a.xray("tests/images/fillOptimization2.png") diff --git a/tests/test_masks.nim b/tests/test_masks.nim index 0be2fc1..a48c02b 100644 --- a/tests/test_masks.nim +++ b/tests/test_masks.nim @@ -1,4 +1,4 @@ -import pixie +import pixie, xrays block: let mask = newMask(100, 100) @@ -34,13 +34,13 @@ block: doAssert minified.width == 50 and minified.height == 50 - minified.writeFile("tests/masks/maskMinified.png") + minified.xray("tests/masks/maskMinified.png") block: let a = readImage("tests/masks/maskMinified.png") b = a.magnifyBy2() - b.writeFile("tests/masks/maskMagnified.png") + b.xray("tests/masks/maskMagnified.png") block: let image = newImage(100, 100) @@ -53,7 +53,7 @@ block: mask.fillPath(path) image.draw(mask) - image.writeFile("tests/masks/circleMask.png") + image.xray("tests/masks/circleMask.png") block: let a = newMask(100, 100) @@ -66,7 +66,7 @@ block: b.fillPath(path) a.draw(b) - a.writeFile("tests/masks/maskedMask.png") + a.xray("tests/masks/maskedMask.png") block: let a = newMask(100, 100) @@ -79,7 +79,7 @@ block: b.fillPath(path, rgba(0, 0, 0, 255)) a.draw(b) - a.writeFile("tests/masks/imageMaskedMask.png") + a.xray("tests/masks/imageMaskedMask.png") block: let path = newPath() @@ -90,7 +90,7 @@ block: a.spread(10) - a.writeFile("tests/masks/spread.png") + a.xray("tests/masks/spread.png") block: let path = newPath() @@ -101,7 +101,7 @@ block: a.spread(-5) - a.writeFile("tests/masks/negativeSpread.png") + a.xray("tests/masks/negativeSpread.png") block: let mask = newMask(100, 100) @@ -112,7 +112,7 @@ block: mask.fillPath(path) mask.ceil() - mask.writeFile("tests/masks/circleMaskSharpened.png") + mask.xray("tests/masks/circleMaskSharpened.png") block: let path = newPath() @@ -120,7 +120,7 @@ block: let mask = newMask(100, 100) mask.fillPath(path) - mask.writeFile("tests/masks/drawRect.png") + mask.xray("tests/masks/drawRect.png") block: let path = newPath() @@ -128,7 +128,7 @@ block: let mask = newMask(100, 100) mask.strokePath(path, strokeWidth = 10) - mask.writeFile("tests/masks/strokeRect.png") + mask.xray("tests/masks/strokeRect.png") block: let path = newPath() @@ -136,14 +136,14 @@ block: let mask = newMask(100, 100) mask.fillPath(path) - mask.writeFile("tests/masks/drawRoundedRect.png") + mask.xray("tests/masks/drawRoundedRect.png") block: let path = newPath() path.roundedRect(rect(vec2(10, 10), vec2(30, 30)), 10, 10, 10, 10) let mask = newMask(100, 100) mask.strokePath(path, strokeWidth = 10) - mask.writeFile("tests/masks/strokeRoundedRect.png") + mask.xray("tests/masks/strokeRoundedRect.png") block: let path = newPath() @@ -152,7 +152,7 @@ block: let mask = newMask(100, 100) mask.strokePath(path, strokeWidth = 10) - mask.writeFile("tests/masks/drawSegment.png") + mask.xray("tests/masks/drawSegment.png") block: let path = newPath() @@ -160,7 +160,7 @@ block: let mask = newMask(100, 100) mask.fillPath(path) - mask.writeFile("tests/masks/drawEllipse.png") + mask.xray("tests/masks/drawEllipse.png") block: let path = newPath() @@ -168,7 +168,7 @@ block: let mask = newMask(100, 100) mask.strokePath(path, strokeWidth = 10) - mask.writeFile("tests/masks/strokeEllipse.png") + mask.xray("tests/masks/strokeEllipse.png") block: let path = newPath() @@ -176,7 +176,7 @@ block: let mask = newMask(100, 100) mask.fillPath(path) - mask.writeFile("tests/masks/drawPolygon.png") + mask.xray("tests/masks/drawPolygon.png") block: let path = newPath() @@ -184,7 +184,7 @@ block: let mask = newMask(100, 100) mask.strokepath(path, strokeWidth = 10) - mask.writeFile("tests/masks/strokePolygon.png") + mask.xray("tests/masks/strokePolygon.png") block: let path = newPath() @@ -193,7 +193,7 @@ block: let mask = newMask(100, 100) mask.fillpath(path) mask.blur(20) - mask.writeFile("tests/images/maskblur20.png") + mask.xray("tests/images/maskblur20.png") block: let path = newPath() @@ -204,7 +204,7 @@ block: mask.blur(25) let minified = mask.minifyBy2() - minified.writeFile("tests/masks/minifiedBlur.png") + minified.xray("tests/masks/minifiedBlur.png") block: let path = newPath() @@ -214,4 +214,4 @@ block: mask.fillPath(path) let magnified = mask.magnifyBy2() - magnified.writeFile("tests/masks/drawPolygonMagnified.png") + magnified.xray("tests/masks/drawPolygonMagnified.png") diff --git a/tests/test_paints.nim b/tests/test_paints.nim index 8a347c4..ebc649c 100644 --- a/tests/test_paints.nim +++ b/tests/test_paints.nim @@ -1,4 +1,4 @@ -import chroma, pixie, vmath +import chroma, pixie, vmath, xrays const heartShape = """ M 10,30 @@ -14,7 +14,7 @@ block: heartShape, rgba(255, 0, 0, 255) ) - image.writeFile("tests/paths/paintSolid.png") + image.xray("tests/paths/paintSolid.png") block: let paint = newPaint(ImagePaint) @@ -23,7 +23,7 @@ block: let image = newImage(100, 100) image.fillPath(heartShape, paint) - image.writeFile("tests/paths/paintImage.png") + image.xray("tests/paths/paintImage.png") block: let paint = newPaint(ImagePaint) @@ -33,7 +33,7 @@ block: let image = newImage(100, 100) image.fillPath(heartShape, paint) - image.writeFile("tests/paths/paintImageOpacity.png") + image.xray("tests/paths/paintImageOpacity.png") block: let paint = newPaint(TiledImagePaint) @@ -42,7 +42,7 @@ block: let image = newImage(100, 100) image.fillPath(heartShape, paint) - image.writeFile("tests/paths/paintImageTiled.png") + image.xray("tests/paths/paintImageTiled.png") block: let paint = newPaint(TiledImagePaint) @@ -52,7 +52,7 @@ block: let image = newImage(100, 100) image.fillPath(heartShape, paint) - image.writeFile("tests/paths/paintImageTiledOpacity.png") + image.xray("tests/paths/paintImageTiledOpacity.png") block: let paint = newPaint(LinearGradientPaint) @@ -67,7 +67,7 @@ block: let image = newImage(100, 100) image.fillPath(heartShape, paint) - image.writeFile("tests/paths/gradientLinear.png") + image.xray("tests/paths/gradientLinear.png") block: let paint = newPaint(LinearGradientPaint) @@ -82,7 +82,7 @@ block: let image = newImage(100, 100) image.fillPath(heartShape, paint) - image.writeFile("tests/paths/gradientLinear2.png") + image.xray("tests/paths/gradientLinear2.png") block: let paint = newPaint(RadialGradientPaint) @@ -98,7 +98,7 @@ block: let image = newImage(100, 100) image.fillPath(heartShape, paint) - image.writeFile("tests/paths/gradientRadial.png") + image.xray("tests/paths/gradientRadial.png") block: let paint = newPaint(AngularGradientPaint) @@ -114,7 +114,7 @@ block: let image = newImage(100, 100) image.fillPath(heartShape, paint) - image.writeFile("tests/paths/gradientAngular.png") + image.xray("tests/paths/gradientAngular.png") block: let paint = newPaint(AngularGradientPaint) @@ -131,4 +131,4 @@ block: let image = newImage(100, 100) image.fillPath(heartShape, paint) - image.writeFile("tests/paths/gradientAngularOpacity.png") + image.xray("tests/paths/gradientAngularOpacity.png") diff --git a/tests/test_paths.nim b/tests/test_paths.nim index b5de9cc..d452846 100644 --- a/tests/test_paths.nim +++ b/tests/test_paths.nim @@ -1,4 +1,4 @@ -import chroma, pixie, pixie/fileformats/png, strformat +import chroma, pixie, pixie/fileformats/png, strformat, xrays block: let pathStr = """ @@ -54,7 +54,7 @@ block: pathStr = "M 10 10 L 90 90" color = rgba(255, 0, 0, 255) image.strokePath(pathStr, color, strokeWidth = 10) - image.writeFile("tests/paths/pathStroke1.png") + image.xray("tests/paths/pathStroke1.png") block: let @@ -62,7 +62,7 @@ block: pathStr = "M 10 10 L 50 60 90 90" color = rgba(255, 0, 0, 255) image.strokePath(pathStr, color, strokeWidth = 10) - image.writeFile("tests/paths/pathStroke2.png") + image.xray("tests/paths/pathStroke2.png") block: let image = newImage(100, 100) @@ -71,7 +71,7 @@ block: rgba(255, 255, 0, 255), strokeWidth = 10 ) - image.writeFile("tests/paths/pathStroke3.png") + image.xray("tests/paths/pathStroke3.png") block: let @@ -79,7 +79,7 @@ block: pathStr = "M 10 10 H 90 V 90 H 10 L 10 10" color = rgba(0, 0, 0, 255) image.fillPath(pathStr, color) - image.writeFile("tests/paths/pathBlackRectangle.png") + image.xray("tests/paths/pathBlackRectangle.png") block: let @@ -87,7 +87,7 @@ block: pathStr = "M 10 10 H 90 V 90 H 10 Z" color = rgba(0, 0, 0, 255) image.fillPath(parsePath(pathStr), color) - image.writeFile("tests/paths/pathBlackRectangleZ.png") + image.xray("tests/paths/pathBlackRectangleZ.png") block: let image = newImage(100, 100) @@ -95,7 +95,7 @@ block: "M 10 10 H 90 V 90 H 10 L 10 10", rgba(255, 255, 0, 255) ) - image.writeFile("tests/paths/pathYellowRectangle.png") + image.xray("tests/paths/pathYellowRectangle.png") block: let path = newPath() @@ -107,7 +107,7 @@ block: let image = newImage(100, 100) image.fillPath(path, rgba(255, 0, 0, 255)) - image.writeFile("tests/paths/pathRedRectangle.png") + image.xray("tests/paths/pathRedRectangle.png") block: let image = newImage(100, 100) @@ -115,7 +115,7 @@ block: "M30 60 A 20 20 0 0 0 90 60 L 30 60", parseHtmlColor("#FC427B").rgba ) - image.writeFile("tests/paths/pathBottomArc.png") + image.xray("tests/paths/pathBottomArc.png") block: let image = newImage(100, 100) @@ -129,7 +129,7 @@ block: """, parseHtmlColor("#FC427B").rgba ) - image.writeFile("tests/paths/pathHeart.png") + image.xray("tests/paths/pathHeart.png") block: let image = newImage(100, 100) @@ -137,7 +137,7 @@ block: "M 20 50 A 20 10 45 1 1 80 50 L 20 50", parseHtmlColor("#FC427B").rgba ) - image.writeFile("tests/paths/pathRotatedArc.png") + image.xray("tests/paths/pathRotatedArc.png") block: let image = newImage(100, 100) @@ -145,7 +145,7 @@ block: "M 0 50 A 50 50 0 0 0 50 0 L 50 50 L 0 50", parseHtmlColor("#FC427B").rgba ) - image.writeFile("tests/paths/pathInvertedCornerArc.png") + image.xray("tests/paths/pathInvertedCornerArc.png") block: let image = newImage(100, 100) @@ -153,7 +153,7 @@ block: "M 0 50 A 50 50 0 0 1 50 0 L 50 50 L 0 50", parseHtmlColor("#FC427B").rgba ) - image.writeFile("tests/paths/pathCornerArc.png") + image.xray("tests/paths/pathCornerArc.png") # block: # let @@ -170,14 +170,14 @@ block: # path.arcTo(x, y + h, x, y, r) # path.arcTo(x, y, x + w, y, r) # image.fillPath(path, rgba(255, 0, 0, 255)) -# image.writeFile("tests/paths/pathRoundRect.png") +# image.xray("tests/paths/pathRoundRect.png") block: let mask = newMask(100, 100) pathStr = "M 10 10 H 90 V 90 H 10 L 10 10" mask.fillPath(pathStr) - writeFile("tests/paths/pathRectangleMask.png", mask.encodePng()) + mask.xray("tests/paths/pathRectangleMask.png") # block: # let @@ -206,7 +206,7 @@ block: image.strokePath(p, rgba(0, 255, 0, 255), scale(vec2(200, 200)), strokeWidth = 0.01) - image.writeFile("tests/paths/pixelScale.png") + image.xray("tests/paths/pixelScale.png") block: let @@ -217,7 +217,7 @@ block: path, rgba(0, 0, 0, 255), translate(vec2(10, 10)), 10, RoundCap, RoundJoin ) - image.writeFile("tests/paths/boxRound.png") + image.xray("tests/paths/boxRound.png") block: let @@ -228,7 +228,7 @@ block: path, rgba(0, 0, 0, 255), translate(vec2(10, 10)), 10, RoundCap, BevelJoin ) - image.writeFile("tests/paths/boxBevel.png") + image.xray("tests/paths/boxBevel.png") block: let @@ -239,7 +239,7 @@ block: path, rgba(0, 0, 0, 255), translate(vec2(10, 10)), 10, RoundCap, MiterJoin ) - image.writeFile("tests/paths/boxMiter.png") + image.xray("tests/paths/boxMiter.png") block: let @@ -250,7 +250,7 @@ block: path, rgba(0, 0, 0, 255), translate(vec2(10, 10)), 10, ButtCap, BevelJoin ) - image.writeFile("tests/paths/ButtCap.png") + image.xray("tests/paths/ButtCap.png") block: let @@ -261,7 +261,7 @@ block: path, rgba(0, 0, 0, 255), translate(vec2(10, 10)), 10, RoundCap, BevelJoin ) - image.writeFile("tests/paths/RoundCap.png") + image.xray("tests/paths/RoundCap.png") block: let @@ -272,7 +272,7 @@ block: path, rgba(0, 0, 0, 255), translate(vec2(10, 10)), 10, SquareCap, BevelJoin ) - image.writeFile("tests/paths/SquareCap.png") + image.xray("tests/paths/SquareCap.png") block: let @@ -309,7 +309,7 @@ block: dashes = @[1.float32, 2, 3, 4, 5, 6, 7, 8, 9] ) - image.writeFile("tests/paths/dashes.png") + image.xray("tests/paths/dashes.png") block: proc miterTest(angle, limit: float32) = @@ -326,7 +326,7 @@ block: path, rgba(0, 0, 0, 255), translate(vec2(30, 30)), 8, ButtCap, MiterJoin, miterLimit = limit ) - image.writeFile(&"tests/paths/miterLimit_{angle.int}deg_{limit:0.2f}num.png") + image.xray(&"tests/paths/miterLimit_{angle.int}deg_{limit:0.2f}num.png") miterTest(10, 2) miterTest(145, 2) @@ -343,7 +343,7 @@ block: path = parsePath("M0 0 L0 0 L60 0 L60 60 L0 60") image.fill(rgba(255, 255, 255, 255)) image.fillPath(path, rgba(127, 127, 127, 255)) - image.writeFile("tests/paths/selfclosing.png") + image.xray("tests/paths/selfclosing.png") # Potential error cases, ensure they do not crash @@ -398,7 +398,7 @@ block: "M 30 30 H 80 V 80 H 30 z", paint ) - image.writeFile("tests/paths/rectExcludeMask.png") + image.xray("tests/paths/rectExcludeMask.png") block: let image = newImage(100, 100) @@ -415,7 +415,7 @@ block: "M 30.1 30.1 H 80.1 V 80.1 H 30.1 z", paint ) - image.writeFile("tests/paths/rectExcludeMaskAA.png") + image.xray("tests/paths/rectExcludeMaskAA.png") block: let image = newImage(100, 100) @@ -432,7 +432,7 @@ block: "M 30 30 H 80 V 80 H 30 z", paint ) - image.writeFile("tests/paths/rectMask.png") + image.xray("tests/paths/rectMask.png") block: let image = newImage(100, 100) @@ -449,7 +449,7 @@ block: "M 30.1 30.1 H 80.1 V 80.1 H 30.1 z", paint ) - image.writeFile("tests/paths/rectMaskAA.png") + image.xray("tests/paths/rectMaskAA.png") block: let image = newImage(100, 100) @@ -467,13 +467,13 @@ block: paint, strokeWidth = 10 ) - image.writeFile("tests/paths/rectMaskStroke.png") + image.xray("tests/paths/rectMaskStroke.png") block: let mask = newMask(100, 100) mask.fillPath("M 10 10 H 60 V 60 H 10 z") mask.fillPath("M 30 30 H 80 V 80 H 30 z", blendMode = ExcludeMaskBlend) - writeFile("tests/paths/maskRectExcludeMask.png", mask.encodePng()) + mask.xray("tests/paths/maskRectExcludeMask.png") block: let mask = newMask(100, 100) @@ -482,19 +482,19 @@ block: "M 30.1 30.1 H 80.1 V 80.1 H 30.1 z", blendMode = ExcludeMaskBlend ) - writeFile("tests/paths/maskRectExcludeMaskAA.png", mask.encodePng()) + mask.xray("tests/paths/maskRectExcludeMaskAA.png") block: let mask = newMask(100, 100) mask.fillPath("M 10 10 H 60 V 60 H 10 z") mask.fillPath("M 30 30 H 80 V 80 H 30 z", blendMode = MaskBlend) - writeFile("tests/paths/maskRectMask.png", mask.encodePng()) + mask.xray("tests/paths/maskRectMask.png") block: let mask = newMask(100, 100) mask.fillPath("M 10.1 10.1 H 60.1 V 60.1 H 10.1 z") mask.fillPath("M 30.1 30.1 H 80.1 V 80.1 H 30.1 z", blendMode = MaskBlend) - writeFile("tests/paths/maskRectMaskAA.png", mask.encodePng()) + mask.xray("tests/paths/maskRectMaskAA.png") block: let mask = newMask(100, 100) @@ -504,7 +504,7 @@ block: strokeWidth = 10, blendMode = MaskBlend ) - writeFile("tests/paths/maskStrokeRectMask.png", mask.encodePng()) + mask.xray("tests/paths/maskStrokeRectMask.png") block: var @@ -531,7 +531,7 @@ block: else: ctx.stroke() - surface.writeFile("tests/paths/arc.png") + surface.xray("tests/paths/arc.png") block: var @@ -550,7 +550,7 @@ block: ctx.lineTo(p2.x, p2.y) ctx.stroke() - surface.writeFile("tests/paths/arcTo1.png") + surface.xray("tests/paths/arcTo1.png") block: var @@ -586,7 +586,7 @@ block: ctx.arc(50, 20, 5, 0, 2 * PI) # Control point two ctx.fill() - surface.writeFile("tests/paths/arcTo2.png") + surface.xray("tests/paths/arcTo2.png") block: var @@ -600,7 +600,7 @@ block: ctx.lineTo(110, 130) ctx.stroke() - surface.writeFile("tests/paths/arcTo3.png") + surface.xray("tests/paths/arcTo3.png") block: let path = newPath() @@ -651,7 +651,7 @@ block: let image = newImage(100, 100) image.fillPath(path, paint) - image.writeFile("tests/paths/opacityFill.png") + image.xray("tests/paths/opacityFill.png") block: let path = newPath() @@ -664,7 +664,7 @@ block: let image = newImage(100, 100) image.strokePath(path, paint, strokeWidth = 10) - image.writeFile("tests/paths/opacityStroke.png") + image.xray("tests/paths/opacityStroke.png") block: let @@ -672,14 +672,14 @@ block: pathStr = "M0 0 L200 200" color = rgba(255, 0, 0, 255) image.strokePath(pathStr, color, strokeWidth = 10) - image.writeFile("tests/paths/pathStroke1Big.png") + image.xray("tests/paths/pathStroke1Big.png") block: let image = newMask(100, 100) pathStr = "M0 0 L200 200" image.strokePath(pathStr, strokeWidth = 10) - image.writeFile("tests/paths/pathStroke1BigMask.png") + image.xray("tests/paths/pathStroke1BigMask.png") block: let @@ -687,7 +687,7 @@ block: pathStr = "M99 99 L999 99 L999 100 L99 100 Z" color = rgba(255, 0, 0, 255) image.fillPath(pathStr, color) - image.writeFile("tests/paths/path1pxCover.png") + image.xray("tests/paths/path1pxCover.png") block: let @@ -695,7 +695,7 @@ block: pathStr = "M100 100 L999 100 L999 101 L100 101 Z" color = rgba(255, 0, 0, 255) image.fillPath(pathStr, color) - image.writeFile("tests/paths/path0pxCover.png") + image.xray("tests/paths/path0pxCover.png") block: let image = newImage(200, 200) @@ -729,7 +729,7 @@ block: path.polygon(vec2(50, 50), 30, i) let mask = newMask(100, 100) mask.fillPath(path) - mask.writeFile(&"tests/paths/polygon{i}.png") + mask.xray(&"tests/paths/polygon{i}.png") block: let image = newImage(200, 200) @@ -783,4 +783,4 @@ block: color = rgba(0, 0, 0, 255) image.fill(rgba(255, 255, 255, 255)) image.fillPath(pathStr, color) - image.writeFile("tests/paths/pathSwish.png") + image.xray("tests/paths/pathSwish.png") diff --git a/tests/test_svg.nim b/tests/test_svg.nim index 9bc7683..6950119 100644 --- a/tests/test_svg.nim +++ b/tests/test_svg.nim @@ -1,4 +1,4 @@ -import pixie, pixie/fileformats/svg, strformat +import pixie, pixie/fileformats/svg, strformat, xrays const files = [ "line01", @@ -17,20 +17,15 @@ const files = [ "dragon2" ] -proc doDiff(rendered: Image, name: string) = - rendered.writeFile(&"tests/fileformats/svg/rendered/{name}.png") - let - master = readImage(&"tests/fileformats/svg/masters/{name}.png") - (diffScore, diffImage) = diff(master, rendered) - echo &"{name} score: {diffScore}" - diffImage.writeFile(&"tests/fileformats/svg/diffs/{name}.png") - for file in files: - doDiff(readImage(&"tests/fileformats/svg/{file}.svg"), file) + let image = readImage(&"tests/fileformats/svg/{file}.svg") + image.xray(&"tests/fileformats/svg/masters/{file}.png") block: - let svg = parseSvg( - readFile("tests/fileformats/svg/accessibility-outline.svg"), - 512, 512 - ) - doDiff(newImage(svg), "accessibility-outline") + let + svg = parseSvg( + readFile("tests/fileformats/svg/accessibility-outline.svg"), + 512, 512 + ) + image = newImage(svg) + image.xray(&"tests/fileformats/svg/masters/accessibility-outline.png") diff --git a/tests/xrays.nim b/tests/xrays.nim new file mode 100644 index 0000000..e47a523 --- /dev/null +++ b/tests/xrays.nim @@ -0,0 +1,17 @@ +import pixie, strformat, os, strutils + +proc xray*(image: Image, masterPath: string) = + let + generatedPath = "tmp/generated/" & masterPath + xrayPath = "tmp/xray/" & masterPath + createDir(generatedPath.splitPath.head) + createDir(xrayPath.splitPath.head) + image.writeFile(generatedPath) + let + master = readImage(masterPath) + (score, xRay) = diff(image, master) + xRay.writeFile(xrayPath) + echo &"xray {masterPath} -> {score:0.6f}" + +proc xray*(mask: Mask, masterPath: string) = + mask.newImage.xray(masterPath)