Coverage report: 29%

Files Functions Classes

coverage.py v7.13.5, created at 2026-04-14 23:38 +0000

      Statements   Branches   Total
File function   coverage statements missing excluded   coverage branches partial   coverage
python / astro_metadata_translator / __init__.py (no function)   100% 7 0 0   100% 0 0   100%
python / astro_metadata_translator / bin / __init__.py (no function)   100% 0 0 0   100% 0 0   100%
python / astro_metadata_translator / bin / translate.py read_file   0% 45 45 0   0% 34 0   0%
python / astro_metadata_translator / bin / translate.py _fill_bad_values   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / bin / translate.py _dump_columns   0% 26 26 0   0% 18 0   0%
python / astro_metadata_translator / bin / translate.py translate_or_dump_headers   0% 20 20 0   0% 12 0   0%
python / astro_metadata_translator / bin / translate.py (no function)   100% 24 0 2   100% 0 0   100%
python / astro_metadata_translator / bin / writeindex.py write_index_files   0% 26 26 0   0% 14 0   0%
python / astro_metadata_translator / bin / writeindex.py (no function)   100% 12 0 0   100% 0 0   100%
python / astro_metadata_translator / bin / writesidecar.py write_sidecar_file   0% 18 18 0   0% 8 0   0%
python / astro_metadata_translator / bin / writesidecar.py write_sidecar_files   0% 9 9 0   0% 4 0   0%
python / astro_metadata_translator / bin / writesidecar.py (no function)   100% 11 0 2   100% 0 0   100%
python / astro_metadata_translator / cli / __init__.py (no function)   100% 0 0 0   100% 0 0   100%
python / astro_metadata_translator / cli / astrometadata.py main   0% 41 41 0   0% 18 0   0%
python / astro_metadata_translator / cli / astrometadata.py translate   0% 9 9 0   0% 8 0   0%
python / astro_metadata_translator / cli / astrometadata.py dump   0% 7 7 0   0% 6 0   0%
python / astro_metadata_translator / cli / astrometadata.py write_sidecar   0% 11 11 0   0% 8 0   0%
python / astro_metadata_translator / cli / astrometadata.py write_index   0% 7 7 0   0% 6 0   0%
python / astro_metadata_translator / cli / astrometadata.py (no function)   100% 55 0 0   100% 0 0   100%
python / astro_metadata_translator / file_helpers.py _read_fits_metadata_afw   0% 8 8 0   0% 4 0   0%
python / astro_metadata_translator / file_helpers.py _read_fits_metadata_astropy   0% 14 14 0   0% 4 0   0%
python / astro_metadata_translator / file_helpers.py _read_fits_metadata   0% 4 4 0   0% 2 0   0%
python / astro_metadata_translator / file_helpers.py find_files   0% 8 8 0   0% 4 0   0%
python / astro_metadata_translator / file_helpers.py read_basic_metadata_from_file   0% 23 23 0   0% 16 0   0%
python / astro_metadata_translator / file_helpers.py read_file_info   0% 35 35 0   0% 20 0   0%
python / astro_metadata_translator / file_helpers.py (no function)   92% 26 2 2   100% 0 0   92%
python / astro_metadata_translator / headers.py merge_headers   0% 72 72 0   0% 62 0   0%
python / astro_metadata_translator / headers.py merge_headers.key_func   0% 7 7 0   100% 0 0   0%
python / astro_metadata_translator / headers.py merge_headers.retain_value   0% 6 6 0   0% 8 0   0%
python / astro_metadata_translator / headers.py _read_yaml   0% 9 9 0   0% 2 0   0%
python / astro_metadata_translator / headers.py _find_from_file   0% 11 11 0   0% 6 0   0%
python / astro_metadata_translator / headers.py _find_from_resource   0% 12 12 0   0% 6 0   0%
python / astro_metadata_translator / headers.py fix_header   0% 43 43 0   0% 18 0   0%
python / astro_metadata_translator / headers.py (no function)   100% 27 0 0   100% 0 0   100%
python / astro_metadata_translator / indexing.py index_files   0% 25 25 0   0% 12 0   0%
python / astro_metadata_translator / indexing.py calculate_index   0% 10 10 0   0% 6 0   0%
python / astro_metadata_translator / indexing.py read_index   100% 0 0 0   100% 0 0   100%
python / astro_metadata_translator / indexing.py read_index   100% 0 0 0   100% 0 0   100%
python / astro_metadata_translator / indexing.py read_index   0% 7 7 0   0% 4 0   0%
python / astro_metadata_translator / indexing.py process_index_data   100% 0 0 0   100% 0 0   100%
python / astro_metadata_translator / indexing.py process_index_data   100% 0 0 0   100% 0 0   100%
python / astro_metadata_translator / indexing.py process_index_data   100% 0 0 0   100% 0 0   100%
python / astro_metadata_translator / indexing.py process_index_data   0% 31 31 0   0% 20 0   0%
python / astro_metadata_translator / indexing.py read_sidecar   0% 7 7 0   0% 4 0   0%
python / astro_metadata_translator / indexing.py process_sidecar_data   100% 0 0 0   100% 0 0   100%
python / astro_metadata_translator / indexing.py process_sidecar_data   100% 0 0 0   100% 0 0   100%
python / astro_metadata_translator / indexing.py process_sidecar_data   100% 0 0 0   100% 0 0   100%
python / astro_metadata_translator / indexing.py process_sidecar_data   0% 24 24 0   0% 14 0   0%
python / astro_metadata_translator / indexing.py (no function)   100% 37 0 2   50% 16 8   85%
python / astro_metadata_translator / observationGroup.py ObservationGroup.__init__   0% 2 2 0   100% 0 0   0%
python / astro_metadata_translator / observationGroup.py ObservationGroup.__len__   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / observationGroup.py ObservationGroup.__delitem__   0% 2 2 0   100% 0 0   0%
python / astro_metadata_translator / observationGroup.py ObservationGroup.__getitem__   100% 1 0 0   50% 2 1   67%
python / astro_metadata_translator / observationGroup.py ObservationGroup.__getitem__   100% 1 0 0   50% 2 1   67%
python / astro_metadata_translator / observationGroup.py ObservationGroup.__getitem__   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / observationGroup.py ObservationGroup.__str__   0% 4 4 0   0% 2 0   0%
python / astro_metadata_translator / observationGroup.py ObservationGroup._coerce_value   0% 15 15 0   0% 10 0   0%
python / astro_metadata_translator / observationGroup.py ObservationGroup.__eq__   0% 6 6 0   0% 6 0   0%
python / astro_metadata_translator / observationGroup.py ObservationGroup.__setitem__   100% 1 0 0   50% 2 1   67%
python / astro_metadata_translator / observationGroup.py ObservationGroup.__setitem__   100% 0 0 0   100% 0 0   100%
python / astro_metadata_translator / observationGroup.py ObservationGroup.__setitem__   0% 6 6 0   0% 4 0   0%
python / astro_metadata_translator / observationGroup.py ObservationGroup.insert   0% 3 3 0   100% 0 0   0%
python / astro_metadata_translator / observationGroup.py ObservationGroup.reverse   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / observationGroup.py ObservationGroup.sort   0% 3 3 0   0% 2 0   0%
python / astro_metadata_translator / observationGroup.py ObservationGroup.extremes   0% 3 3 0   0% 2 0   0%
python / astro_metadata_translator / observationGroup.py ObservationGroup.newest   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / observationGroup.py ObservationGroup.oldest   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / observationGroup.py ObservationGroup.property_values   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / observationGroup.py ObservationGroup.to_simple   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / observationGroup.py ObservationGroup.model_dump_json   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / observationGroup.py ObservationGroup.model_validate_json   0% 2 2 0   100% 0 0   0%
python / astro_metadata_translator / observationGroup.py ObservationGroup.__get_pydantic_core_schema__   100% 2 0 0   100% 0 0   100%
python / astro_metadata_translator / observationGroup.py ObservationGroup._validate_pydantic   0% 5 5 0   0% 4 0   0%
python / astro_metadata_translator / observationGroup.py ObservationGroup._serialize_pydantic   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / observationGroup.py ObservationGroup.from_simple   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / observationGroup.py (no function)   100% 45 0 2   50% 2 1   98%
python / astro_metadata_translator / observationInfo.py ObservationInfo._before_core_from_simple   0% 4 4 0   100% 0 0   0%
python / astro_metadata_translator / observationInfo.py ObservationInfo.__init__   100% 0 0 0   100% 0 0   100%
python / astro_metadata_translator / observationInfo.py ObservationInfo.__init__   100% 0 0 0   100% 0 0   100%
python / astro_metadata_translator / observationInfo.py ObservationInfo.__init__   0% 8 8 0   0% 6 0   0%
python / astro_metadata_translator / observationInfo.py ObservationInfo._init_from_header   0% 54 54 1   0% 26 0   0%
python / astro_metadata_translator / observationInfo.py ObservationInfo._init_from_kwargs   0% 33 33 0   0% 20 0   0%
python / astro_metadata_translator / observationInfo.py ObservationInfo._apply_constructor_defaults   0% 7 7 0   0% 6 0   0%
python / astro_metadata_translator / observationInfo.py ObservationInfo.from_header   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / observationInfo.py ObservationInfo._get_all_properties   0% 4 4 0   0% 2 0   0%
python / astro_metadata_translator / observationInfo.py ObservationInfo._declare_extensions   0% 7 7 0   0% 6 0   0%
python / astro_metadata_translator / observationInfo.py ObservationInfo.__setattr__   0% 3 3 0   0% 2 0   0%
python / astro_metadata_translator / observationInfo.py ObservationInfo._serialize   0% 12 12 0   0% 8 0   0%
python / astro_metadata_translator / observationInfo.py ObservationInfo._validate_property_mapping   0% 9 9 0   0% 6 0   0%
python / astro_metadata_translator / observationInfo.py ObservationInfo._coerce_property_value   0% 5 5 0   0% 2 0   0%
python / astro_metadata_translator / observationInfo.py ObservationInfo._coerce_from_simple   0% 6 6 0   0% 4 0   0%
python / astro_metadata_translator / observationInfo.py ObservationInfo.cards_used   0% 3 3 0   0% 2 0   0%
python / astro_metadata_translator / observationInfo.py ObservationInfo.stripped_header   0% 6 6 0   0% 4 0   0%
python / astro_metadata_translator / observationInfo.py ObservationInfo.__str__   0% 10 10 0   0% 4 0   0%
python / astro_metadata_translator / observationInfo.py ObservationInfo.__eq__   0% 16 16 0   0% 10 0   0%
python / astro_metadata_translator / observationInfo.py ObservationInfo.__lt__   0% 5 5 0   0% 4 0   0%
python / astro_metadata_translator / observationInfo.py ObservationInfo.__gt__   0% 5 5 0   0% 4 0   0%
python / astro_metadata_translator / observationInfo.py ObservationInfo.__getstate__   0% 4 4 0   0% 2 0   0%
python / astro_metadata_translator / observationInfo.py ObservationInfo.__setstate__   0% 14 14 0   0% 4 0   0%
python / astro_metadata_translator / observationInfo.py ObservationInfo.to_simple   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / observationInfo.py ObservationInfo.to_json   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / observationInfo.py ObservationInfo.from_simple   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / observationInfo.py ObservationInfo.from_json   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / observationInfo.py ObservationInfo.makeObservationInfo   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / observationInfo.py makeObservationInfo   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / observationInfo.py (no function)   100% 109 0 3   50% 4 2   98%
python / astro_metadata_translator / properties.py _ToValueProtocol.to_value   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / properties.py _quantity_to_float   0% 4 4 0   0% 2 0   0%
python / astro_metadata_translator / properties.py earthlocation_to_simple   0% 2 2 0   100% 0 0   0%
python / astro_metadata_translator / properties.py simple_to_earthlocation   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / properties.py datetime_to_simple   0% 2 2 0   100% 0 0   0%
python / astro_metadata_translator / properties.py simple_to_datetime   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / properties.py exptime_to_simple   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / properties.py simple_to_exptime   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / properties.py angle_to_simple   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / properties.py simple_to_angle   0% 4 4 0   0% 2 0   0%
python / astro_metadata_translator / properties.py focusz_to_simple   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / properties.py simple_to_focusz   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / properties.py temperature_to_simple   0% 2 2 0   100% 0 0   0%
python / astro_metadata_translator / properties.py simple_to_temperature   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / properties.py pressure_to_simple   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / properties.py simple_to_pressure   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / properties.py skycoord_to_simple   0% 8 8 0   0% 2 0   0%
python / astro_metadata_translator / properties.py simple_to_skycoord   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / properties.py altaz_to_simple   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / properties.py simple_to_altaz   0% 8 8 0   0% 4 0   0%
python / astro_metadata_translator / properties.py timedelta_to_simple   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / properties.py simple_to_timedelta   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / properties.py PropertyDefinition.__init__   79% 19 4 0   60% 10 4   72%
python / astro_metadata_translator / properties.py PropertyDefinition.str_type   100% 3 0 0   100% 2 0   100%
python / astro_metadata_translator / properties.py PropertyDefinition.is_value_conformant   0% 3 3 0   0% 2 0   0%
python / astro_metadata_translator / properties.py (no function)   100% 42 0 0   100% 0 0   100%
python / astro_metadata_translator / serialize / __init__.py (no function)   100% 1 0 0   100% 0 0   100%
python / astro_metadata_translator / serialize / fits.py dates_to_fits   0% 13 13 0   0% 8 0   0%
python / astro_metadata_translator / serialize / fits.py info_to_fits   0% 7 7 0   0% 2 0   0%
python / astro_metadata_translator / serialize / fits.py group_to_fits   0% 9 9 0   0% 2 0   0%
python / astro_metadata_translator / serialize / fits.py (no function)   100% 6 0 4   100% 0 0   100%
python / astro_metadata_translator / tests.py pl_constructor   0% 11 11 0   0% 8 0   0%
python / astro_metadata_translator / tests.py read_test_file   0% 14 14 0   0% 8 0   0%
python / astro_metadata_translator / tests.py MetadataAssertHelper.assertAlmostEqual   100% 0 0 1   100% 0 0   100%
python / astro_metadata_translator / tests.py MetadataAssertHelper.assertIsNotNone   100% 0 0 1   100% 0 0   100%
python / astro_metadata_translator / tests.py MetadataAssertHelper.assertEqual   100% 0 0 1   100% 0 0   100%
python / astro_metadata_translator / tests.py MetadataAssertHelper.assertLess   100% 0 0 1   100% 0 0   100%
python / astro_metadata_translator / tests.py MetadataAssertHelper.assertLessEqual   100% 0 0 1   100% 0 0   100%
python / astro_metadata_translator / tests.py MetadataAssertHelper.assertGreaterEqual   100% 0 0 1   100% 0 0   100%
python / astro_metadata_translator / tests.py MetadataAssertHelper.fail   100% 0 0 1   100% 0 0   100%
python / astro_metadata_translator / tests.py MetadataAssertHelper.assertCoordinatesConsistent   0% 12 12 0   100% 0 0   0%
python / astro_metadata_translator / tests.py MetadataAssertHelper.assertObservationInfoFromYaml   0% 12 12 1   0% 6 0   0%
python / astro_metadata_translator / tests.py MetadataAssertHelper.assertObservationInfo   0% 29 29 0   0% 14 0   0%
python / astro_metadata_translator / tests.py MetadataAssertHelper.assertObservationInfo._format_date_for_testing   0% 5 5 0   0% 2 0   0%
python / astro_metadata_translator / tests.py (no function)   84% 32 5 17   50% 2 1   82%
python / astro_metadata_translator / translator.py cache_translation   100% 4 0 0   100% 0 0   100%
python / astro_metadata_translator / translator.py cache_translation.func_wrapper   0% 3 3 0   0% 2 0   0%
python / astro_metadata_translator / translator.py _set_method_metadata   100% 12 0 0   100% 2 0   100%
python / astro_metadata_translator / translator.py MetadataTranslator.defined_in_this_class   100% 10 0 0   100% 8 0   100%
python / astro_metadata_translator / translator.py MetadataTranslator._make_const_mapping   83% 12 2 0   75% 4 1   81%
python / astro_metadata_translator / translator.py MetadataTranslator._make_const_mapping.constant_translator   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator._make_trivial_mapping   73% 11 3 0   50% 2 1   69%
python / astro_metadata_translator / translator.py MetadataTranslator._make_trivial_mapping.trivial_translator   0% 27 27 0   0% 18 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator.__init_subclass__   80% 41 8 0   68% 22 5   76%
python / astro_metadata_translator / translator.py MetadataTranslator.__init__   0% 7 7 0   0% 2 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator.can_translate   100% 0 0 1   100% 0 0   100%
python / astro_metadata_translator / translator.py MetadataTranslator.can_translate_with_options   0% 4 4 0   0% 4 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator.determine_translator   0% 13 13 0   0% 8 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator.get_translator_by_name   0% 3 3 0   0% 2 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator.translator_version   0% 16 16 0   0% 10 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator.fix_header   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator._construct_log_prefix   0% 3 3 0   0% 2 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator._log_prefix   0% 7 7 0   0% 2 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator._used_these_cards   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator.cards_used   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator.validate_value   0% 7 7 0   0% 6 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator.is_keyword_defined   0% 7 7 0   0% 6 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator.resource_root   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator.search_paths   0% 3 3 0   0% 2 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator.is_key_ok   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator.are_keys_ok   0% 4 4 0   0% 4 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator.quantity_from_card   0% 22 22 0   0% 12 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator._join_keyword_values   0% 9 9 0   0% 6 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator.to_detector_unique_name   0% 6 6 1   0% 2 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator.to_exposure_group   0% 4 4 0   0% 2 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator.to_observation_reason   0% 4 4 0   0% 2 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator.to_exposure_time_requested   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator.to_altaz_end   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator.observing_date_to_offset   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator.observing_date_to_observing_day   0% 6 6 0   0% 4 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator.to_observing_day_offset   0% 4 4 0   0% 2 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator.to_observing_day   0% 5 5 0   0% 2 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator.to_observation_counter   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator.to_group_counter_start   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator.to_group_counter_end   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator.to_has_simulated_content   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator.to_focus_z   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator.to_can_see_sky   0% 8 8 0   0% 6 0   0%
python / astro_metadata_translator / translator.py MetadataTranslator.determine_translatable_headers   0% 6 6 0   0% 2 0   0%
python / astro_metadata_translator / translator.py _make_abstract_translator_method   100% 3 0 0   100% 0 0   100%
python / astro_metadata_translator / translator.py _make_abstract_translator_method.to_property   100% 0 0 1   100% 0 0   100%
python / astro_metadata_translator / translator.py _make_forwarded_stub_translator_method   100% 4 0 0   100% 0 0   100%
python / astro_metadata_translator / translator.py _make_forwarded_stub_translator_method.to_stub   0% 8 8 0   0% 2 0   0%
python / astro_metadata_translator / translator.py (no function)   100% 143 0 31   100% 6 0   100%
python / astro_metadata_translator / translators / __init__.py (no function)   100% 8 0 0   100% 0 0   100%
python / astro_metadata_translator / translators / decam.py DecamTranslator.can_translate   0% 7 7 0   0% 6 0   0%
python / astro_metadata_translator / translators / decam.py DecamTranslator.to_exposure_id   0% 3 3 0   100% 0 0   0%
python / astro_metadata_translator / translators / decam.py DecamTranslator.to_observation_counter   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translators / decam.py DecamTranslator.to_visit_id   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translators / decam.py DecamTranslator.to_datetime_end   0% 4 4 0   0% 2 0   0%
python / astro_metadata_translator / translators / decam.py DecamTranslator._translate_from_calib_id   0% 6 6 0   0% 2 0   0%
python / astro_metadata_translator / translators / decam.py DecamTranslator.to_physical_filter   0% 5 5 0   0% 2 0   0%
python / astro_metadata_translator / translators / decam.py DecamTranslator.to_location   0% 9 9 0   0% 2 0   0%
python / astro_metadata_translator / translators / decam.py DecamTranslator.to_observation_type   0% 7 7 0   0% 4 0   0%
python / astro_metadata_translator / translators / decam.py DecamTranslator.to_tracking_radec   0% 3 3 0   100% 0 0   0%
python / astro_metadata_translator / translators / decam.py DecamTranslator.to_altaz_begin   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translators / decam.py DecamTranslator.to_detector_exposure_id   0% 2 2 0   100% 0 0   0%
python / astro_metadata_translator / translators / decam.py DecamTranslator.to_detector_group   0% 2 2 0   100% 0 0   0%
python / astro_metadata_translator / translators / decam.py DecamTranslator.to_detector_name   0% 2 2 0   100% 0 0   0%
python / astro_metadata_translator / translators / decam.py DecamTranslator.to_focus_z   0% 2 2 0   100% 0 0   0%
python / astro_metadata_translator / translators / decam.py DecamTranslator.fix_header   0% 22 22 0   0% 6 0   0%
python / astro_metadata_translator / translators / decam.py DecamTranslator.determine_translatable_headers   0% 18 18 0   0% 10 0   0%
python / astro_metadata_translator / translators / decam.py DecamTranslator.observing_date_to_offset   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translators / decam.py (no function)   100% 65 0 3   100% 0 0   100%
python / astro_metadata_translator / translators / fits.py FitsTranslator.can_translate   0% 8 8 0   0% 2 0   0%
python / astro_metadata_translator / translators / fits.py FitsTranslator._from_fits_date_string   0% 3 3 0   0% 2 0   0%
python / astro_metadata_translator / translators / fits.py FitsTranslator._from_fits_date   0% 18 18 0   0% 8 0   0%
python / astro_metadata_translator / translators / fits.py FitsTranslator.to_datetime_begin   0% 14 14 0   0% 10 0   0%
python / astro_metadata_translator / translators / fits.py FitsTranslator.to_datetime_end   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translators / fits.py FitsTranslator.to_location   0% 5 5 0   100% 0 0   0%
python / astro_metadata_translator / translators / fits.py (no function)   100% 21 0 0   100% 0 0   100%
python / astro_metadata_translator / translators / helpers.py to_location_via_telescope_name   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translators / helpers.py is_non_science   0% 2 2 0   0% 2 0   0%
python / astro_metadata_translator / translators / helpers.py altitude_from_zenith_distance   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translators / helpers.py tracking_from_degree_headers   0% 18 18 0   0% 12 0   0%
python / astro_metadata_translator / translators / helpers.py altaz_from_degree_headers   0% 22 22 0   0% 16 0   0%
python / astro_metadata_translator / translators / helpers.py (no function)   100% 13 0 3   100% 0 0   100%
python / astro_metadata_translator / translators / hsc.py HscTranslator.can_translate   0% 7 7 0   0% 8 0   0%
python / astro_metadata_translator / translators / hsc.py HscTranslator.to_exposure_id   0% 21 21 0   0% 10 0   0%
python / astro_metadata_translator / translators / hsc.py HscTranslator.to_boresight_rotation_angle   0% 3 3 0   100% 0 0   0%
python / astro_metadata_translator / translators / hsc.py HscTranslator.to_detector_num   0% 8 8 0   0% 2 0   0%
python / astro_metadata_translator / translators / hsc.py HscTranslator.to_detector_exposure_id   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translators / hsc.py HscTranslator.to_detector_group   0% 2 2 0   100% 0 0   0%
python / astro_metadata_translator / translators / hsc.py HscTranslator.to_detector_unique_name   0% 2 2 0   100% 0 0   0%
python / astro_metadata_translator / translators / hsc.py HscTranslator.to_detector_name   0% 2 2 0   100% 0 0   0%
python / astro_metadata_translator / translators / hsc.py HscTranslator.to_focus_z   0% 2 2 0   100% 0 0   0%
python / astro_metadata_translator / translators / hsc.py (no function)   100% 46 0 0   100% 0 0   100%
python / astro_metadata_translator / translators / megaprime.py MegaPrimeTranslator.to_datetime_begin   0% 8 8 0   0% 4 0   0%
python / astro_metadata_translator / translators / megaprime.py MegaPrimeTranslator.to_datetime_end   0% 5 5 0   0% 2 0   0%
python / astro_metadata_translator / translators / megaprime.py MegaPrimeTranslator.to_location   0% 10 10 0   0% 4 0   0%
python / astro_metadata_translator / translators / megaprime.py MegaPrimeTranslator.to_detector_name   0% 6 6 0   0% 4 0   0%
python / astro_metadata_translator / translators / megaprime.py MegaPrimeTranslator.to_detector_num   0% 2 2 0   100% 0 0   0%
python / astro_metadata_translator / translators / megaprime.py MegaPrimeTranslator.to_observation_type   0% 5 5 0   0% 2 0   0%
python / astro_metadata_translator / translators / megaprime.py MegaPrimeTranslator.to_tracking_radec   0% 3 3 0   100% 0 0   0%
python / astro_metadata_translator / translators / megaprime.py MegaPrimeTranslator.to_altaz_begin   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translators / megaprime.py MegaPrimeTranslator.to_detector_exposure_id   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translators / megaprime.py MegaPrimeTranslator.to_pressure   0% 4 4 0   0% 4 0   0%
python / astro_metadata_translator / translators / megaprime.py MegaPrimeTranslator.to_observation_counter   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translators / megaprime.py MegaPrimeTranslator.determine_translatable_headers   0% 13 13 0   0% 8 0   0%
python / astro_metadata_translator / translators / megaprime.py MegaPrimeTranslator.observing_date_to_offset   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translators / megaprime.py (no function)   100% 51 0 4   100% 0 0   100%
python / astro_metadata_translator / translators / sdss.py SdssTranslator.can_translate   0% 3 3 0   0% 2 0   0%
python / astro_metadata_translator / translators / sdss.py SdssTranslator.to_detector_unique_name   0% 3 3 0   0% 2 0   0%
python / astro_metadata_translator / translators / sdss.py SdssTranslator.to_detector_num   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translators / sdss.py SdssTranslator.to_observation_id   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translators / sdss.py SdssTranslator.to_datetime_begin   0% 3 3 0   100% 0 0   0%
python / astro_metadata_translator / translators / sdss.py SdssTranslator.to_datetime_end   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translators / sdss.py SdssTranslator.to_location   0% 5 5 0   100% 0 0   0%
python / astro_metadata_translator / translators / sdss.py SdssTranslator.to_observation_type   0% 6 6 0   0% 2 0   0%
python / astro_metadata_translator / translators / sdss.py SdssTranslator.to_tracking_radec   0% 3 3 0   100% 0 0   0%
python / astro_metadata_translator / translators / sdss.py SdssTranslator.to_altaz_begin   0% 11 11 0   0% 2 0   0%
python / astro_metadata_translator / translators / sdss.py SdssTranslator.to_boresight_airmass   0% 4 4 0   0% 2 0   0%
python / astro_metadata_translator / translators / sdss.py SdssTranslator.to_detector_exposure_id   0% 13 13 0   0% 2 0   0%
python / astro_metadata_translator / translators / sdss.py SdssTranslator.to_detector_group   0% 3 3 0   0% 2 0   0%
python / astro_metadata_translator / translators / sdss.py (no function)   100% 47 0 3   100% 0 0   100%
python / astro_metadata_translator / translators / subaru.py SubaruTranslator.to_location   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translators / subaru.py SubaruTranslator.to_observation_counter   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translators / subaru.py SubaruTranslator.observing_date_to_offset   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translators / subaru.py (no function)   100% 14 0 0   100% 0 0   100%
python / astro_metadata_translator / translators / suprimecam.py SuprimeCamTranslator.can_translate   0% 7 7 0   0% 8 0   0%
python / astro_metadata_translator / translators / suprimecam.py SuprimeCamTranslator._get_adjusted_mjd   0% 3 3 0   100% 0 0   0%
python / astro_metadata_translator / translators / suprimecam.py SuprimeCamTranslator.to_physical_filter   0% 7 7 0   0% 4 0   0%
python / astro_metadata_translator / translators / suprimecam.py SuprimeCamTranslator.to_datetime_begin   0% 8 8 0   0% 4 0   0%
python / astro_metadata_translator / translators / suprimecam.py SuprimeCamTranslator.to_datetime_end   0% 12 12 0   0% 6 0   0%
python / astro_metadata_translator / translators / suprimecam.py SuprimeCamTranslator.to_exposure_id   0% 13 13 0   0% 6 0   0%
python / astro_metadata_translator / translators / suprimecam.py SuprimeCamTranslator.to_visit_id   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translators / suprimecam.py SuprimeCamTranslator.to_observation_type   0% 5 5 0   0% 2 0   0%
python / astro_metadata_translator / translators / suprimecam.py SuprimeCamTranslator.to_tracking_radec   0% 3 3 0   100% 0 0   0%
python / astro_metadata_translator / translators / suprimecam.py SuprimeCamTranslator.to_altaz_begin   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translators / suprimecam.py SuprimeCamTranslator.to_boresight_rotation_angle   0% 3 3 0   100% 0 0   0%
python / astro_metadata_translator / translators / suprimecam.py SuprimeCamTranslator.to_detector_exposure_id   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translators / suprimecam.py SuprimeCamTranslator.to_detector_name   0% 3 3 0   100% 0 0   0%
python / astro_metadata_translator / translators / suprimecam.py (no function)   100% 50 0 3   100% 0 0   100%
python / astro_metadata_translator / translators / visit_info.py VisitInfoTranslator.can_translate   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translators / visit_info.py VisitInfoTranslator.to_observation_counter   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translators / visit_info.py VisitInfoTranslator.to_boresight_rotation_coord   0% 4 4 0   0% 2 0   0%
python / astro_metadata_translator / translators / visit_info.py VisitInfoTranslator.to_visit_id   0% 5 5 0   0% 2 0   0%
python / astro_metadata_translator / translators / visit_info.py VisitInfoTranslator.to_datetime_begin   0% 5 5 0   0% 2 0   0%
python / astro_metadata_translator / translators / visit_info.py VisitInfoTranslator.to_datetime_end   0% 4 4 0   0% 2 0   0%
python / astro_metadata_translator / translators / visit_info.py VisitInfoTranslator.to_location   0% 4 4 0   100% 0 0   0%
python / astro_metadata_translator / translators / visit_info.py VisitInfoTranslator.to_tracking_radec   0% 2 2 0   100% 0 0   0%
python / astro_metadata_translator / translators / visit_info.py VisitInfoTranslator.to_altaz_begin   0% 1 1 0   100% 0 0   0%
python / astro_metadata_translator / translators / visit_info.py VisitInfoTranslator.fix_header   0% 2 2 0   100% 0 0   0%
python / astro_metadata_translator / translators / visit_info.py (no function)   100% 41 0 2   100% 0 0   100%
python / astro_metadata_translator / version.py (no function)   100% 5 0 0   100% 0 0   100%
tests / test_basics.py BasicTestCase.test_basic   0% 2 2 0   100% 0 0   0%
tests / test_basics.py BasicTestCase.test_obsinfo   0% 32 32 0   100% 0 0   0%
tests / test_basics.py BasicTestCase.test_simple   0% 8 8 0   100% 0 0   0%
tests / test_basics.py BasicTestCase.test_pydantic   0% 19 19 0   100% 0 0   0%
tests / test_basics.py BasicTestCase.test_embedded_pydantic   0% 8 8 0   100% 0 0   0%
tests / test_basics.py BasicTestCase.test_altaz_extraction   0% 15 15 0   100% 0 0   0%
tests / test_basics.py (no function)   100% 20 0 2   100% 0 0   100%
tests / test_cfht.py MegaPrimeTestCase.test_megaprime_translator   0% 4 4 0   0% 2 0   0%
tests / test_cfht.py MegaPrimeTestCase.test_megaprime_stripping   0% 6 6 0   100% 0 0   0%
tests / test_cfht.py (no function)   100% 11 0 2   100% 0 0   100%
tests / test_cli.py click_result_msg   0% 4 4 0   0% 2 0   0%
tests / test_cli.py TestCLI.setUp   0% 1 1 0   100% 0 0   0%
tests / test_cli.py TestCLI.test_package_load   0% 4 4 0   100% 0 0   0%
tests / test_cli.py TestCLI.test_translate   0% 6 6 0   100% 0 0   0%
tests / test_cli.py TestCLI.test_dump   0% 4 4 0   100% 0 0   0%
tests / test_cli.py TestCLI.test_write_sidecar   0% 15 15 0   100% 0 0   0%
tests / test_cli.py TestCLI.test_write_index   0% 8 8 0   100% 0 0   0%
tests / test_cli.py TestCLI.test_list_plugins   0% 3 3 0   100% 0 0   0%
tests / test_cli.py (no function)   100% 20 0 2   100% 0 0   100%
tests / test_decam.py DecamTestCase.test_decam_translator   0% 4 4 0   0% 2 0   0%
tests / test_decam.py (no function)   100% 9 0 2   100% 0 0   100%
tests / test_extensions.py DummyTranslator.can_translate   0% 1 1 0   100% 0 0   0%
tests / test_extensions.py DummyTranslator.to_ext_number   0% 1 1 0   100% 0 0   0%
tests / test_extensions.py ExtensionsTestCase.setUp   0% 3 3 0   100% 0 0   0%
tests / test_extensions.py ExtensionsTestCase.assert_observation_info   0% 5 5 0   100% 0 0   0%
tests / test_extensions.py ExtensionsTestCase.test_basic   0% 16 16 0   100% 0 0   0%
tests / test_extensions.py ExtensionsTestCase.test_pickle   0% 2 2 0   100% 0 0   0%
tests / test_extensions.py ExtensionsTestCase.test_simple   0% 5 5 0   100% 0 0   0%
tests / test_extensions.py ExtensionsTestCase.test_json   0% 5 5 0   100% 0 0   0%
tests / test_extensions.py ExtensionsTestCase.test_pydantic_extensions   0% 11 11 0   100% 0 0   0%
tests / test_extensions.py (no function)   100% 25 0 2   100% 0 0   100%
tests / test_groups.py ObservationGroupTestCase.setUp   0% 2 2 0   100% 0 0   0%
tests / test_groups.py ObservationGroupTestCase._files_to_headers   0% 1 1 0   100% 0 0   0%
tests / test_groups.py ObservationGroupTestCase.test_groups   0% 37 37 0   100% 0 0   0%
tests / test_groups.py ObservationGroupTestCase.test_sort_key   0% 7 7 0   100% 0 0   0%
tests / test_groups.py ObservationGroupTestCase.test_sort_key.by_airmass   0% 4 4 0   0% 2 0   0%
tests / test_groups.py ObservationGroupTestCase.test_fits_group   0% 5 5 0   100% 0 0   0%
tests / test_groups.py ObservationGroupTestCase.test_fits_info   0% 5 5 0   100% 0 0   0%
tests / test_groups.py ObservationGroupTestCase.test_pydantic_roundtrip   0% 13 13 0   100% 0 0   0%
tests / test_groups.py ObservationGroupTestCase.test_iteration_semantics   0% 3 3 0   100% 0 0   0%
tests / test_groups.py (no function)   100% 24 0 2   100% 0 0   100%
tests / test_headers.py NotDecamTranslator.fix_header   0% 2 2 0   100% 0 0   0%
tests / test_headers.py NotDecamTranslator.translator_version   0% 1 1 0   100% 0 0   0%
tests / test_headers.py NotDecamTranslator2.fix_header   0% 2 2 0   100% 0 0   0%
tests / test_headers.py AlsoNotDecamTranslator.fix_header   0% 1 1 0   100% 0 0   0%
tests / test_headers.py NullDecamTranslator.fix_header   0% 1 1 0   100% 0 0   0%
tests / test_headers.py HeadersTestCase.setUp   0% 8 8 0   100% 0 0   0%
tests / test_headers.py HeadersTestCase.test_fail   0% 4 4 0   100% 0 0   0%
tests / test_headers.py HeadersTestCase.test_one   0% 2 2 0   100% 0 0   0%
tests / test_headers.py HeadersTestCase.test_merging_overwrite   0% 7 7 0   100% 0 0   0%
tests / test_headers.py HeadersTestCase.test_merging_first   0% 3 3 0   100% 0 0   0%
tests / test_headers.py HeadersTestCase.test_merging_drop   0% 11 11 0   100% 0 0   0%
tests / test_headers.py HeadersTestCase.test_merging_diff   0% 13 13 0   100% 0 0   0%
tests / test_headers.py HeadersTestCase.test_merging_append   0% 6 6 0   100% 0 0   0%
tests / test_headers.py HeadersTestCase.test_merging_overwrite_sort   0% 8 8 0   100% 0 0   0%
tests / test_headers.py HeadersTestCase.test_merging_first_sort   0% 3 3 0   100% 0 0   0%
tests / test_headers.py HeadersTestCase.test_merging_append_sort   0% 8 8 0   100% 0 0   0%
tests / test_headers.py HeadersTestCase.test_stripped_header_after_mutation   0% 8 8 0   100% 0 0   0%
tests / test_headers.py FixHeadersTestCase.test_basic_fix_header   0% 15 15 0   100% 0 0   0%
tests / test_headers.py FixHeadersTestCase.test_hsc_fix_header   0% 9 9 0   100% 0 0   0%
tests / test_headers.py FixHeadersTestCase.test_decam_fix_header   0% 4 4 0   100% 0 0   0%
tests / test_headers.py FixHeadersTestCase.test_translator_fix_header   0% 12 12 0   100% 0 0   0%
tests / test_headers.py FixHeadersTestCase.test_no_double_fix   0% 11 11 0   100% 0 0   0%
tests / test_headers.py FixHeadersTestCase.test_bad_file   0% 7 7 0   100% 0 0   0%
tests / test_headers.py (no function)   100% 47 0 2   100% 0 0   100%
tests / test_indexing.py IndexingTestCase.test_indexing   0% 33 33 0   100% 0 0   0%
tests / test_indexing.py IndexingTestCase.test_file_reading   0% 66 66 0   100% 0 0   0%
tests / test_indexing.py IndexingTestCase.test_obs_info_sidecar   0% 8 8 0   100% 0 0   0%
tests / test_indexing.py IndexingTestCase.test_bad_index_structure   0% 4 4 0   100% 0 0   0%
tests / test_indexing.py IndexingTestCase.test_bad_content_mode   0% 4 4 0   100% 0 0   0%
tests / test_indexing.py (no function)   100% 17 0 2   100% 0 0   100%
tests / test_sdss.py SdssTestCase.test_sdss_translator   0% 4 4 0   0% 2 0   0%
tests / test_sdss.py (no function)   100% 8 0 2   100% 0 0   100%
tests / test_shadowing.py ShadowBase.to_instrument   0% 1 1 0   100% 0 0   0%
tests / test_shadowing.py ExplicitTranslator.to_instrument   0% 1 1 0   100% 0 0   0%
tests / test_shadowing.py TranslatorShadowing.test_shadowing   0% 16 16 0   100% 0 0   0%
tests / test_shadowing.py TranslatorShadowing.test_shadowing.ShadowTranslator.to_instrument   0% 1 1 0   100% 0 0   0%
tests / test_shadowing.py TranslatorShadowing.test_shadowing.ShadowTranslator.to_instrument   0% 1 1 0   100% 0 0   0%
tests / test_shadowing.py TranslatorShadowing.test_auto_maps1   0% 2 2 0   100% 0 0   0%
tests / test_shadowing.py TranslatorShadowing.test_auto_maps2   0% 2 2 0   100% 0 0   0%
tests / test_shadowing.py (no function)   100% 14 0 2   100% 0 0   100%
tests / test_subaru.py HscTestCase.test_hsc_translator   0% 4 4 0   0% 2 0   0%
tests / test_subaru.py HscTestCase.test_suprimecam_translator   0% 4 4 0   0% 2 0   0%
tests / test_subaru.py HscTestCase.test_merging_hsc   0% 14 14 0   100% 0 0   0%
tests / test_subaru.py (no function)   100% 12 0 2   100% 0 0   100%
tests / test_translate_header.py TestTranslateHeader._readlines   0% 2 2 0   100% 0 0   0%
tests / test_translate_header.py TestTranslateHeader.assert_ok_fail   0% 3 3 0   100% 0 0   0%
tests / test_translate_header.py TestTranslateHeader.test_translate_header   0% 9 9 0   100% 0 0   0%
tests / test_translate_header.py TestTranslateHeader.test_translate_header_table   0% 10 10 0   100% 0 0   0%
tests / test_translate_header.py TestTranslateHeader.test_translate_bad_header_table   0% 6 6 0   100% 0 0   0%
tests / test_translate_header.py TestTranslateHeader.test_translate_header_fails   0% 12 12 0   100% 0 0   0%
tests / test_translate_header.py TestTranslateHeader.test_translate_header_traceback   0% 10 10 0   100% 0 0   0%
tests / test_translate_header.py TestTranslateHeader.test_translate_header_dump   0% 10 10 0   100% 0 0   0%
tests / test_translate_header.py TestTranslateHeader.test_translate_header_loud   0% 9 9 0   100% 0 0   0%
tests / test_translate_header.py (no function)   100% 17 0 2   100% 0 0   100%
tests / test_translation.py InstrumentTestTranslator.to_physical_filter   0% 1 1 0   100% 0 0   0%
tests / test_translation.py TranslatorTestCase.setUp   0% 1 1 0   100% 0 0   0%
tests / test_translation.py TranslatorTestCase.test_manual_translation   0% 19 19 0   100% 0 0   0%
tests / test_translation.py TranslatorTestCase.test_translator   0% 43 43 0   100% 0 0   0%
tests / test_translation.py TranslatorTestCase.test_corrections   0% 10 10 0   100% 0 0   0%
tests / test_translation.py TranslatorTestCase.test_failures   0% 35 35 0   0% 2 0   0%
tests / test_translation.py TranslatorTestCase.test_observing_date   0% 8 8 0   100% 0 0   0%
tests / test_translation.py (no function)   100% 20 0 2   100% 0 0   100%
tests / test_translator_helpers.py HelperTranslator.to_instrument   0% 1 1 0   100% 0 0   0%
tests / test_translator_helpers.py HelperTranslator.to_observation_type   0% 1 1 0   100% 0 0   0%
tests / test_translator_helpers.py HelperTranslator.to_observation_id   0% 1 1 0   100% 0 0   0%
tests / test_translator_helpers.py HelperTranslator.to_location   0% 1 1 0   100% 0 0   0%
tests / test_translator_helpers.py ScienceTranslator.to_observation_type   0% 1 1 0   100% 0 0   0%
tests / test_translator_helpers.py HelperTestCase.assert_azel   0% 2 2 0   100% 0 0   0%
tests / test_translator_helpers.py HelperTestCase.test_altaz   0% 27 27 0   0% 2 0   0%
tests / test_translator_helpers.py HelperTestCase.test_science_altaz   0% 4 4 0   100% 0 0   0%
tests / test_translator_helpers.py (no function)   100% 16 0 2   100% 0 0   100%
tests / test_visit_info.py VisitInfoTestCase.test_decam_translator   0% 4 4 0   0% 2 0   0%
tests / test_visit_info.py (no function)   100% 9 0 2   100% 0 0   100%
Total     34% 3813 2506 125   6% 964 26   29%

No items found using the specified filter.