def test_non_overridable_properties() -> None: """ Test to make sure properties that are private or marked as constant/readonly/NON OVERRIDABLE are not configurable through the commandline. """ non_overridable = ["--" + k + "=" + str(v.default) for k, v in SegmentationModelBase.params().items() if k not in SegmentationModelBase.get_overridable_parameters().keys()] parser = SegmentationModelBase.create_argparser() # try to parse the non overridable arguments _, unknown = parser.parse_known_args(non_overridable) assert all([x in unknown for x in non_overridable])
def test_overridable_properties() -> None: """ Test to make sure all valid types can be parsed by the config parser """ overridable = [ "--num_dataload_workers=100", "--local_dataset=hello_world", "--norm_method=Simple Norm", "--l_rate=100.0", "--test_crop_size=1,2,3", "--output_range=-100.0,100.0" ] parser = SegmentationModelBase.create_argparser() args = vars(parser.parse_args(overridable)) assert args["num_dataload_workers"] == 100 assert str(args["local_dataset"]) == "hello_world" assert args["norm_method"] == PhotometricNormalizationMethod.SimpleNorm assert args["test_crop_size"] == (1, 2, 3) assert args["output_range"] == (-100.0, 100.0)