VICARIO feature tests
Failures
- Batch, streaming and remote input: Batch, streaming and remote input › OUT=- with SILENT writes the image to stdoutNeeds review (bug or intended?): REVIEW-12: OUT=- fails with IllegalArgumentException "image == null!" and writes nothingError: expect(received).toBe(expected) // Object.is equality
- Data type conversion: Data type conversion › BYTE to HALF with the default RESCALE keeps the image contrastNeeds review (bug or intended?): REVIEW-6: OFORM=HALF with default RESCALE saturates byte input (mean 254.5, std 9.8; source std 56)Error: relative contrast
- ISIS cubes: ISIS cubes › reads the Cassini VIMS cube and converts it to VICARNeeds review (bug or intended?): REVIEW-14: ISIS reader does not trim CORE_ITEMS values: NumberFormatException for " 352", then a NullPointerException (no image); jConvertIIO exits 0 with no outputError: jConvertIIO exit code
- ISIS cubes: ISIS cubes › reads the GDAL ISIS2 cube and converts it to VICARNeeds review (bug or intended?): REVIEW-14: ISIS reader does not trim CORE_ITEMS values: NumberFormatException for " 352", then a NullPointerException (no image); jConvertIIO exits 0 with no outputError: jConvertIIO exit code
- Magellan products: Magellan products › jConvertIIO converts the F-BIDR to VICARNeeds review (bug or intended?): REVIEW-18: F-BIDR read fails in jConvertIIO ("must be read from a stream allowing random access"): VicarInputFile only treats javax FileImageInputStream as random access, but the FAT jar's ImageIO returns imageio-ext FileImageInputStreamExtImpl; exits 0 with no outputError: jConvertIIO exit code
- Output formats: Output formats › FORMAT=raw (#17)Needs review (bug or intended?): REVIEW-3: RAW output is padded to 256 x 256 tiles unless OFORM is givenError: raw size = width x height x bands
- Output formats: Output formats › FORMAT=RAW (#18)Needs review (bug or intended?): REVIEW-3: RAW output is padded to 256 x 256 tiles unless OFORM is givenError: raw size = width x height x bands
- Output formats: Output formats › FORMAT=bmp (#19)Needs review (bug or intended?): REVIEW-4: BMP writer throws ArrayIndexOutOfBoundsException for 3-band inputError: jConvertIIO exit code
- Output formats: Output formats › FORMAT=BMP (#20)Needs review (bug or intended?): REVIEW-4: BMP writer throws ArrayIndexOutOfBoundsException for 3-band inputError: jConvertIIO exit code
- Output formats: Output formats › FORMAT=pnm (#21)Needs review (bug or intended?): REVIEW-4: PNM writer (jai-imageio) fails to initialise on JDK 17+Error: jConvertIIO exit code
- Output formats: Output formats › FORMAT=PNM (#22)Needs review (bug or intended?): REVIEW-4: PNM writer (jai-imageio) fails to initialise on JDK 17+Error: jConvertIIO exit code
- Output formats: Output formats › FORMAT=jfif (#23)Needs review (bug or intended?): REVIEW-19: no ImageIO writer for this format name, though the legacy tstjConvertIIO.csh lists itError: jConvertIIO exit code
- Output formats: Output formats › FORMAT=JFIF (#24)Needs review (bug or intended?): REVIEW-19: no ImageIO writer for this format name, though the legacy tstjConvertIIO.csh lists itError: jConvertIIO exit code
- Output formats: Output formats › FORMAT=jpeg-ls (#25)Needs review (bug or intended?): REVIEW-19: no ImageIO writer for this format name, though the legacy tstjConvertIIO.csh lists itError: jConvertIIO exit code
- Output formats: Output formats › FORMAT=JPEG-LS (#26)Needs review (bug or intended?): REVIEW-19: no ImageIO writer for this format name, though the legacy tstjConvertIIO.csh lists itError: jConvertIIO exit code
- Output formats: Output formats › FORMAT=jpeg-lossless (#27)Needs review (bug or intended?): REVIEW-19: no ImageIO writer for this format name, though the legacy tstjConvertIIO.csh lists itError: jConvertIIO exit code
- Output formats: Output formats › FORMAT=JPEG-LOSSLESS (#28)Needs review (bug or intended?): REVIEW-19: no ImageIO writer for this format name, though the legacy tstjConvertIIO.csh lists itError: jConvertIIO exit code
- Output formats: Output formats › FORMAT=isis (#29)Needs review (bug or intended?): REVIEW-19: no ImageIO writer for this format name, though the legacy tstjConvertIIO.csh lists itError: jConvertIIO exit code
- PDS3 products: PDS3 products › PDS_FILENAME_IN_LABEL=true puts the output file name in the labelNeeds review (bug or intended?): REVIEW-9: the documented keyword PDS_FILENAME_IN_LABEL is parsed as PDS_FILENAME, so it is ignoredError: expect(received).toContain(expected) // indexOf
- PDS3 products: PDS3 products › reads an MSL Navcam EDR through its detached .LBLNeeds review (bug or intended?): REVIEW-7: PDSImageReader fails on the detached MSL label: "Error reading header: Negative size"Error: jConvertIIO exit code
- PDS4 tables: PDS4 tables › without -o the table is written to stdoutNeeds review (bug or intended?): REVIEW-15: ExtractTableJPL prints nothing (exit 0) when no output file is given, and --list-tables prints nothingError: expect(received).toBe(expected) // Object.is equality
- PDS4 tables: PDS4 tables › delimited (CSV) tableNeeds review (bug or intended?): REVIEW-16: pds4-jparser needs a newer opencsv than the 5.5 pinned in pom.xml: NoSuchMethodError CSVParserBuilder.withKeepQuotationsError: expect(received).toBe(expected) // Object.is equality
- PDS4 tables: PDS4 tables › jConvertIIO PDS4_TABLE_OUPUT_FORMAT=csv exports the tableNeeds review (bug or intended?): REVIEW-17: jConvertIIO never passes the label to the PDS4 table reader (the PDS4TableReadParam setup is commented out); "Cannot read label file", no outputError: expect(received).toBe(expected) // Object.is equality
- Regions, subsampling and bands: Regions, subsampling and bands › CROP=(x,y,height,width) as documentedNeeds review (bug or intended?): REVIEW-11: CROP uses cropX for the y offset (jConvertIIO.java:4816) and reads the last two values as width,height although the help text says height,width; CROP to VICAR also fails (raster bounds)Error: expect(received).toEqual(expected) // deep equality
- VICAR binary headers and prefixes: VICAR binary headers and prefixes › KEEP_LINE_PREFIX=true carries the prefixes into VICAR outputNeeds review (bug or intended?): REVIEW-13: VICAR output drops the line prefixes (NBB=0) even with KEEP_LINE_PREFIX=trueError: expect(received).toBe(expected) // Object.is equality
- VICAR binary headers and prefixes: VICAR binary headers and prefixes › ADD_BINARY_HEADER=true writes the binary header to VICAR outputNeeds review (bug or intended?): REVIEW-13: VICAR output has no binary header (NLB=0) even with ADD_BINARY_HEADER=trueError: expect(received).toBe(expected) // Object.is equality
- VICAR image read/write: VICAR image read/write › ImageIO API decodes little-endian HALF the same as BYTE 1..24Needs review (bug or intended?): REVIEW-1: VicarImageReader via the ImageIO API returns byte-swapped samples for INTFMT=LOW files (256, 512, ... instead of 1, 2, ...); jConvertIIO output is correctError: expect(received).toBe(expected) // Object.is equality
- VICAR image read/write: VICAR image read/write › reads bigendian-int16 (system label with DAT_TIM/BINC)Needs review (bug or intended?): REVIEW-2: VICAR reader rejects GDAL-written system labels: "DAT_TIM may only go in history label"Error: expect(received).not.toBeNull()
- VICAR image read/write: VICAR image read/write › reads bigendian-float32 (system label with DAT_TIM/BINC)Needs review (bug or intended?): REVIEW-2: VICAR reader rejects GDAL-written system labels: "DAT_TIM may only go in history label"Error: expect(received).not.toBeNull()
- VICAR image read/write: VICAR image read/write › reads vax-float32 (system label with DAT_TIM/BINC)Needs review (bug or intended?): REVIEW-2: VICAR reader rejects GDAL-written system labels: "DAT_TIM may only go in history label"Error: expect(received).not.toBeNull()
Features
| Feature | Status | Passed | Failed |
|---|---|---|---|
| VICAR image read/write Reading and writing VICAR images in every data type (BYTE, HALF, FULL, REAL, DOUB) and organization (BSQ, BIL, BIP), in both byte orders, including degenerate shapes and damaged files. Procedures |
Failing | 31 | 4 |
| VICAR binary headers and prefixes Images with binary label headers and per-line prefixes (NLB/NBB): decoding them, and keeping the prefix bytes when converting to VICAR or PDS (KEEP_LINE_PREFIX, ADD_BINARY_HEADER). Procedures |
Failing | 2 | 2 |
| PDS3 products Reading PDS3 products (attached and detached labels, dual PDS3/VICAR labels) and writing PDS3 with an embedded VICAR label, file name in the label, or ODL3 labels. Procedures |
Failing | 14 | 2 |
| PDS label transcoding (XSL) Building PDS labels from VICAR labels with the bundled XSL stylesheets, the default stylesheet (XSL=-) and the legacy mission recipes. Procedures |
Passing | 5 | 0 |
| PDS4 images Reading images through PDS4 XML labels; the PDS4 view must match the attached-label view of the same data. Procedures |
Passing | 4 | 0 |
| PDS4 tables Exporting PDS4 tables (character, delimited) as CSV or fixed-width text, with the bundled ExtractTableJPL tool and jConvertIIO's PDS4_TABLE_* keywords. Procedures |
Failing | 2 | 3 |
| ISIS cubes Reading ISIS2 cubes with SFDU labels, such as Cassini VIMS spectral cubes (ISIS3 cubes are not supported). Procedures |
Failing | 0 | 2 |
| FITS images Reading FITS images and converting them to other formats. Procedures |
Passing | 1 | 0 |
| Magellan products Reading Magellan F-BIDR radar image strips (full-resolution basic image data records). The resampled format (MgnResampImageReader) has no public sample and is not tested. Procedures |
Failing | 1 | 1 |
| Output formats Every FORMAT= name and alias used by the legacy test (TIFF, PNG, JPEG, JPEG 2000, JPEG-LS, BMP, PNM, RAW, PDS, VICAR, ISIS), for 8-bit, 16-bit and float images. Procedures |
Failing | 26 | 13 |
| Data type conversion Changing the output data type (OFORM) with or without rescaling, clamping, and float data to 8-bit display formats. Procedures |
Failing | 7 | 1 |
| Regions, subsampling and bands Cropping (SOURCE_REGION, CROP), subsampling, scaling, band selection and reordering (READ_BANDS, BANDS), single band to RGB (2RGB), and PNG alpha (WRITE_TRANSPARENCY). Procedures |
Failing | 9 | 1 |
| XML metadata and parser security Label DOM utilities and XML debug output (XML=true), with every XML parser hardened against external entity (XXE) attacks. Procedures |
Passing | 9 | 0 |
| Batch, streaming and remote input Batch runs from an argument file (serial and parallel), files without extensions, output to stdout, and https input from the public PDS archive. Procedures |
Failing | 4 | 1 |
| Visual check (replaces JADE review) Every output a person would look at decodes to an image of the right size that is neither blank nor saturated, with a preview in the report. Replaces opening each output in the JADE viewer in the legacy procedure; the viewer itself is not tested. Procedures |
Passing | 8 | 0 |
| Python label scripts The Python utilities in src/main/scripts: xml_swap.py (replace, list and show modes, XXE hardening) and build_mesh_extras.py (mesh label extras, path validation). Procedures |
Passing | 5 | 0 |
| PDS4 label generation (Labelocity) Generating detached PDS4 labels from Velocity templates with the public Labelocity release (PDS4 writer and mission templates) and the vicario build under test. Generated labels must match the archive label's array structure and read back to the same pixels. Procedures |
Passing | 2 | 0 |
| Test suite integrity Feature registry, specs and test-data manifest are consistent. Procedures |
Passing | 6 | 0 |
Click a feature to see its tests in the full Playwright report, with commands, logs and image previews for every conversion.































