ladybird/Tests
Nico Weber 1570751d64 Tests/LibGfx: Add a jbig2 file using refinement in the symbol segment
This adds a test for the code added in #23710.

I created this file using `jbig2` (see below for details), but as
usual it required a bunch of changes to it to make it actually produce
spec-compliant output. See the PR adding this image for my local diff.

I created the test image file by running this shell script with
`jbig2` tweaked as described above:

    #!/bin/bash

    set -eu

    S=Tests/LibGfx/test-inputs/bmp/bitmap.bmp

    # See make-symbol-jbig.sh (the script in #23659) for the general
    # setup and some comments. See also make-symbol-textrefine.sh (in
    # #23713).
    #
    # `-Ref` takes 5 arguments:
    # 1. The symbol ID of this symbol (like after a `-Simple`)
    # 2. A bmp file that the base symbol gets refined to
    # 3. The ID of the base symbol
    # 4. dx, dy
    cat << EOF > jbig2-symbol-symbolrefine.ini
    -sym -Seg 1
    -sym -file -numClass -HeightClass 3 -WidthClass 1
    -sym -file -numSymbol 3
    -sym -file -Height 250
    -sym -file -Width 120 -Simple 0 mouth-1bpp.bmp
    -sym -file -EndOfHeightClass
    -sym -file -Height 100
    -sym -file -Width 100 -Simple 1 nose-1bpp.bmp
    -sym -file -EndOfHeightClass
    -sym -file -Height 30
    -sym -file -Width 30 -Simple 2 top_eye-1bpp.bmp
    -sym -file -EndOfHeightClass
    -sym -Param -Huff_DH 0
    -sym -Param -Huff_DW 0

    -sym -Seg 2
    -sym -file -numClass -HeightClass 1 -WidthClass 1
    -sym -file -numSymbol 1
    -sym -file -Height 30
    -sym -file -Width 30 -Ref 3 bottom_eye-1bpp.bmp 2 0 0
    -sym -file -EndOfHeightClass
    -sym -Param -Huff_DH 0
    -sym -Param -Huff_DW 0
    -sym -Param -RefTemplate 1

    -txt -Seg 3
    -txt -Param -numInst 4
        -ID 2 108 50 -ID 3 265 60 -ID 1 100 135 -ID 0 70 232
    -txt -Param -RefCorner 1
    -txt -Param -Xlocation 0
    -txt -Param -Ylocation 0
    -txt -Param -W 399
    -txt -Param -H 400
    EOF

    J=$HOME/Downloads/T-REC-T.88-201808-I\!\!SOFT-ZST-E/Software
    J=$J/JBIG2_SampleSoftware-A20180829/source/jbig2

    $J -i "${S%.bmp}" -f bmp -o symbol-symbolrefine -F jb2 \
        -ini jbig2-symbol-symbolrefine.ini
2024-03-27 11:20:08 -04:00
..
AK AK: Make BigIntBase more agnostic to non native word sizes 2024-03-25 14:26:29 -06:00
JSSpecCompiler JSSpecCompiler: Add option to silence all diagnostics and use in tests 2024-03-25 14:28:52 -06:00
Kernel Tests/Kernel: Add tests for verifying proper loop device support 2024-03-13 15:33:47 -06:00
LibAudio LibAudio: Test reading and writing of wav files 2024-01-08 07:20:11 -07:00
LibC LibFileSystem+Everywhere: Return ByteString from read_link() 2024-01-16 08:42:34 +00:00
LibCompress Tests/LibCompress: Add a reproducer of oss-fuzz issue 58046 2024-01-13 15:17:08 -07:00
LibCore Tests: Use Core::Environment instead of Core::System::*env() 2024-02-27 08:33:48 +00:00
LibCpp Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
LibCrypto LibCrypto: Add roundtrip test for parsing RSA private keys 2024-03-25 14:06:19 -06:00
LibDeviceTree LibDeviceTree: Add a simple DeviceTree class 2024-02-24 16:43:44 -07:00
LibDiff LibDiff: Fix wrong index used when prepending context lines 2023-09-11 12:10:50 +01:00
LibEDID AK: Rename AK::FixedPoint::round to rint and fix a rounding error 2023-08-14 14:20:45 -06:00
LibELF LibFileSystem+Everywhere: Return ByteString from read_link() 2024-01-16 08:42:34 +00:00
LibGfx Tests/LibGfx: Add a jbig2 file using refinement in the symbol segment 2024-03-27 11:20:08 -04:00
LibGL LibGL+LibGPU+LibSoftGPU: Implement blend equations 2024-02-19 23:23:40 +01:00
LibGLSL Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
LibIMAP Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
LibJS Tests: Use Core::Environment instead of Core::System::*env() 2024-02-27 08:33:48 +00:00
LibLocale LibLocale+LibJS+ClockSettings: Make date time format APIs infallible 2023-08-23 05:29:21 +02:00
LibMarkdown Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
LibPDF LibPDF: Handle indirect reference resolving during parsing more robustly 2024-03-19 19:20:01 -04:00
LibRegex LibRegex: Account for extra explicit And/Or in class parser assertion 2024-03-24 08:24:46 +01:00
LibSemVer Userland+Tests: Remove unused <AK/Tuple.h> includes 2024-03-01 14:05:53 -07:00
LibSQL LibSQL: Add a helper to convert a SQL::Value to a UnixDateTime 2024-01-10 23:26:40 +01:00
LibTest LibTest: Add more numeric generators 2024-01-12 16:42:51 -07:00
LibTextCodec LibTextCodec+Everywhere: Port Decoders to new Strings 2023-02-19 17:15:47 +01:00
LibThreading LibThreading: Improve resiliancy of timed threading tests 2023-05-24 00:25:35 +02:00
LibTimeZone LibTimeZone+Userland: Change timezone functions to use UnixDateTime 2023-05-24 23:18:07 +02:00
LibTLS LibTLS: Implement ASN.1 parser function for PrivateKeyInfo 2024-03-25 17:01:23 -06:00
LibTTF LibGfx/OpenType: Ensure Cmap subtable offset is within expected range 2023-11-11 22:20:17 +01:00
LibUnicode LibUnicode: Add IDNA::to_ascii 2023-12-10 08:04:58 -05:00
LibURL LibURL+LibWeb: Move data URL processing to LibWeb's fetch infrastructure 2024-03-25 08:13:27 +01:00
LibVideo Tests: Add regression tests for fixed OSS-Fuzz test cases 2023-10-24 07:30:04 +02:00
LibWasm Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
LibWeb LibWeb: Return the correct substring when parsing an HTTP quoted string 2024-03-26 19:19:13 +00:00
LibWebView AK+LibURL: Move AK::URL into a new URL library 2024-03-18 14:06:28 -04:00
LibXML LibXML: Actually append resolved references when parsing content 2023-07-23 16:09:12 +02:00
Spreadsheet Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
Utilities patch+LibDiff: Add support for applying patches with preprocessor macro 2024-03-03 08:56:00 +01:00
CMakeLists.txt AK+LibURL: Move AK::URL into a new URL library 2024-03-18 14:06:28 -04:00