From 479dfe9ffef6dc87d01b2e964ed7e8c9bdd00672 Mon Sep 17 00:00:00 2001 From: Leon Ross Date: Thu, 29 Jun 2023 10:41:40 -0600 Subject: [PATCH] detector_properties_types reference --- riid/gadras/api_schema.json | 128 ++++++++---------------------------- tests/config_tests.py | 29 ++++++++ 2 files changed, 55 insertions(+), 102 deletions(-) diff --git a/riid/gadras/api_schema.json b/riid/gadras/api_schema.json index eabe4ef..dab62ad 100644 --- a/riid/gadras/api_schema.json +++ b/riid/gadras/api_schema.json @@ -23,123 +23,27 @@ "properties": { "distance_cm": { "description": "Distance between detector and sourcecentimeters", - "anyOf": [ - { - "type": "number" - }, - { - "type": "array", - "items": { - "anyOf": [ - {"type":"number"}, - {"$ref": "#/$defs/sample_range"}, - {"$ref": "#/$defs/sample_norm"} - ] - } - }, - {"$ref":"#/$defs/sample_range"}, - {"$ref":"#/$defs/sample_norm"} - ] + "$ref": "#/$defs/detector_properties_types" }, "height_cm": { "description": "Detector height off ground, in centimeters", - "anyOf": [ - { - "type": "number" - }, - { - "type": "array", - "items": { - "anyOf": [ - {"type":"number"}, - {"$ref": "#/$defs/sample_range"}, - {"$ref": "#/$defs/sample_norm"} - ] - } - }, - {"$ref":"#/$defs/sample_range"}, - {"$ref":"#/$defs/sample_norm"} - ] + "$ref": "#/$defs/detector_properties_types" }, "dead_time_per_pulse": { "description": "Detector dead time, in microseconds", - "anyOf": [ - { - "type": "number" - }, - { - "type": "array", - "items": { - "anyOf": [ - {"type":"number"}, - {"$ref": "#/$defs/sample_range"}, - {"$ref": "#/$defs/sample_norm"} - ] - } - }, - {"$ref":"#/$defs/sample_range"}, - {"$ref":"#/$defs/sample_norm"} - ] + "$ref": "#/$defs/detector_properties_types" }, "latitude_deg": { "description": "Latitude, in degrees", - "anyOf": [ - { - "type": "number" - }, - { - "type": "array", - "items": { - "anyOf": [ - {"type":"number"}, - {"$ref": "#/$defs/sample_range"}, - {"$ref": "#/$defs/sample_norm"} - ] - } - }, - {"$ref":"#/$defs/sample_range"}, - {"$ref":"#/$defs/sample_norm"} - ] + "$ref": "#/$defs/detector_properties_types" }, "longitude_deg": { "description": "Longitude, in degrees", - "anyOf": [ - { - "type": "number" - }, - { - "type": "array", - "items": { - "anyOf": [ - {"type":"number"}, - {"$ref": "#/$defs/sample_range"}, - {"$ref": "#/$defs/sample_norm"} - ] - } - }, - {"$ref":"#/$defs/sample_range"}, - {"$ref":"#/$defs/sample_norm"} - ] + "$ref": "#/$defs/detector_properties_types" }, "elevation_m": { "description": "Elevation, in meters", - "anyOf": [ - { - "type": "number" - }, - { - "type": "array", - "items": { - "anyOf": [ - {"type":"number"}, - {"$ref": "#/$defs/sample_range"}, - {"$ref": "#/$defs/sample_norm"} - ] - } - }, - {"$ref":"#/$defs/sample_range"}, - {"$ref":"#/$defs/sample_norm"} - ] + "$ref": "#/$defs/detector_properties_types" } }, @@ -165,6 +69,26 @@ } }, "$defs": { + "detector_properties_types": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "array", + "items": { + "anyOf": [ + {"type":"number"}, + {"$ref": "#/$defs/sample_range"}, + {"$ref": "#/$defs/sample_norm"} + ] + } + }, + {"$ref":"#/$defs/sample_range"}, + {"$ref":"#/$defs/sample_norm"} + ] + }, + "sample_range": { "type": "object", "required": [ "min", "max", "dist", "num_samples" ], diff --git a/tests/config_tests.py b/tests/config_tests.py index e046ff8..4227cf3 100644 --- a/tests/config_tests.py +++ b/tests/config_tests.py @@ -286,7 +286,36 @@ def test_invalid_validate_inject_config(self): invalid_config["gamma_detector"]["parameters"][ "distance_cm" ] = "a_string_which_is_an_error" + self.assertRaises(Exception, self.return_validate_inject_config, invalid_config) + + invalid_config = copy.deepcopy(base_config) + invalid_config["gamma_detector"]["parameters"][ + "height_cm" + ] = True + self.assertRaises(Exception, self.return_validate_inject_config, invalid_config) + + invalid_config = copy.deepcopy(base_config) + invalid_config["gamma_detector"]["parameters"][ + "dead_time_per_pulse" + ] = "a_string_which_is_an_error" + self.assertRaises(Exception, self.return_validate_inject_config, invalid_config) + + invalid_config = copy.deepcopy(base_config) + invalid_config["gamma_detector"]["parameters"][ + "latitude_deg" + ] = False + self.assertRaises(Exception, self.return_validate_inject_config, invalid_config) + invalid_config = copy.deepcopy(base_config) + invalid_config["gamma_detector"]["parameters"][ + "longitude_deg" + ] = "a_string_which_is_an_error" + self.assertRaises(Exception, self.return_validate_inject_config, invalid_config) + + invalid_config = copy.deepcopy(base_config) + invalid_config["gamma_detector"]["parameters"][ + "elevation_m" + ] = True self.assertRaises(Exception, self.return_validate_inject_config, invalid_config) # Expanded Configs