Skip to content

missing_constant treated as if part of min/max in ascii table #1660

Description

@tbarnes4

Checked for duplicates

Yes - I've already checked

🐛 Describe the bug

This may relate to #1379 and/or #1656. Adding @benjhirsch in case of interest.

The missing constant value appears to being read as an actual value and compared to the min/max values, and fails. As a result it is throwing an error.

Label excerpt:

            <Field_Character>
               <name>Tail Length</name>
               <field_number>10</field_number>
              <field_location unit="byte">76</field_location>
               <data_type>ASCII_Real</data_type>
               <field_length unit="byte">7</field_length>
               <field_format>%7.5f</field_format>
               <unit>AU</unit>
               
               <description>Reduced length of the tail in AU, corresponding to    
                   the maximum observed angular length, if provided; otherwise this        
                   column contains a filler value.                                         
                   
                   The number of significant digits in each value here corresponds to      
                   the number of significant digits provided in the cited publication.</description>
               <Special_Constants>
                   <missing_constant>-.99999</missing_constant>
               </Special_Constants>
               <Field_Statistics>
                   <maximum>1.39</maximum>
                   <minimum>0.00001</minimum>
               </Field_Statistics>
               
           </Field_Character>

Validate error messages:

FAIL: file:phys_char/data/pccds.xml (urn:nasa:pds:compil-comet:phys_char:head_diameters_and_tail_lengths::1.0)
Begin Content Validation: file:/Volumes/echeclus05/dsfinish/compil-comet_reorg/compil-comet_v3.0/phys_char/data/pccds.tab
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 3, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 4, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 10, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 11, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 23, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 28, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 35, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 38, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 50, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 53, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 56, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 59, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 74, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 75, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 76, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 81, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 86, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 89, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 93, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 94, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 98, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 99, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 104, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 105, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 107, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 108, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 111, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 116, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 117, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 123, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 131, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 133, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 138, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 149, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 153, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 155, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 158, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 167, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 168, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 169, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 170, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 175, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 177, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 179, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 182, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
ERROR [error.table.field_value_out_of_min_max_range] data object 1, record 183, field 10: Field has a value '-.99999' that is less than the defined minimum value '1.0E-5'.
End Content Validation: file: phys_char/data/pccds.tab

🕵️ Expected behavior

I expect to see no errors or warnings, but the missing_constant to be checked as a valid constant, and then checked if in min/max.

📜 To Reproduce

Run validate on the label and table pair. See test data for example.

🖥 Environment Info

MacOSX Tahoe 26.5.2
Mac Apple M1 Ultra

📚 Version of Software Used

validate -version
Version 4.2.0
Release Date: 2026-06-15 22:25:06

🩺 Test Data / Additional context

https://pdssbn.astro.umd.edu/holdings/pds4-compil-comet:phys_char-v1.0/data/pccds.xml
https://pdssbn.astro.umd.edu/holdings/pds4-compil-comet:phys_char-v1.0/data/pccds.tab

🦄 Related requirements

🦄 #xyz

⚙️ Engineering Details

No response

🎉 Integration & Test

No response

Metadata

Metadata

Assignees

Labels

Type

Projects

Status
ToDo

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions