def setup_method(self, method): self.microscope = pylo.MicroscopeInterface(DummyController()) self.microscope.supported_measurement_variables.append( pylo.MeasurementVariable("test-var-1", "Test Variable 1", 0, 10, "ut")) self.microscope.supported_measurement_variables.append( pylo.MeasurementVariable("test-var-2", "Test Variable 2", max_value=100)) self.microscope.supported_measurement_variables.append( pylo.MeasurementVariable("test-var-3", "Test Variable 3", min_value=1))
def test_random_values(self): """Test if randomly generated MeasurementVariables work.""" id_, name = self.randomIdAndName() if random.random() >= 0.5: min_value = random.randint(0, 10) else: min_value = None if random.random() >= 0.5: max_value = random.randint(10, 20) else: max_value = None if random.random() >= 0.5: unit = "".join( random.choice(string.ascii_lowercase) for i in range(5)) else: unit = None var = pylo.MeasurementVariable(id_, name, min_value, max_value, unit) assert (var.unique_id == id_ and var.name == name and var.min_value == min_value and var.max_value == max_value and var.unit == unit)
def test_one_optional2(self): """Test different construtor args.""" var = pylo.MeasurementVariable("id", "name", unit="N/mm^2") assert (var.unique_id == "id" and var.name == "name" and var.min_value == None and var.max_value == None and var.unit == "N/mm^2")
def test_format(self, format): """Test if a format is always converted to a Datatype or a type.""" id_, name = self.randomIdAndName() var = pylo.MeasurementVariable(id_, name, format=format) assert isinstance(var.format, (type, pylo.Datatype))
def test_invalid_calibration(self, calibration, uncalibration): """Test invalid calibrations.""" id_, name = self.randomIdAndName() with pytest.raises((TypeError, ValueError)): pylo.MeasurementVariable(id_, name, calibration=calibration, uncalibration=uncalibration)
def reset(self): self.init_time = time.time() self.performed_steps = [] self.supported_measurement_variables = [ pylo.MeasurementVariable("measurement-var", "Dummy Measurement Variable", -1, 1, "unit") ]
def test_valid_calibration(self, calibration, uncalibration, test_calibrated, test_uncalibrated): """Test if the calibration works for valid calibrations.""" id_, name = self.randomIdAndName() if calibration is not None and uncalibration is not None: var = pylo.MeasurementVariable(id_, name, calibration=calibration, uncalibration=uncalibration) elif calibration is not None: var = pylo.MeasurementVariable(id_, name, calibration=calibration) elif uncalibration is not None: var = pylo.MeasurementVariable(id_, name, uncalibration=uncalibration) assert var.has_calibration assert var.convertToCalibrated(test_uncalibrated) == test_calibrated assert var.convertToUncalibrated(test_calibrated) == test_uncalibrated
def test_calibrated_min_max(self, min_value, max_value, calibration, uncalibration, calibrated_min, calibrated_max, expected_min, expected_max): """Test the calibrated_min and calibrated_max values.""" id_, name = self.randomIdAndName() args = {"calibration": calibration, "uncalibration": uncalibration} if min_value is not None: args["min_value"] = min_value if max_value is not None: args["max_value"] = max_value if calibrated_min is not None: args["calibrated_min"] = calibrated_min if calibrated_max is not None: args["calibrated_max"] = calibrated_max var = pylo.MeasurementVariable(id_, name, **args) assert var.min_value == expected_min assert var.max_value == expected_max
def test_no_optionals(self): """Test different construtor args.""" var = pylo.MeasurementVariable("id", "name") assert var.unique_id == "id" and var.name == "name"