Exemplo n.º 1
0
    def test_invalid_on_paramater_group_not_equal(self):
        """Test ValidationError is raised when a set of parameters that belong
        to an `equal_group` element do not have equal values."""

        validator = NumericValidator(equal_groups=[['a', 'b', 'c']])
        with self.assertRaises(ValidationError):
            validator.validate(a=1, b=1, c=2)
Exemplo n.º 2
0
    def test_invalid_on_paramater_not_equal(self):
        """Test ValidationError is raised when a parameter's value is equal to
        that specified in `not_equal_to`."""

        validator = NumericValidator(not_equal_to={'a': 1})
        with self.assertRaises(ValidationError):
            validator.validate(a=1)
Exemplo n.º 3
0
    def test_raise_on_inconsistent_assignment(self):
        """Test ValueError is raised when a parameter name appears in both
        `equal_to` and `not_equal_to`."""

        with self.assertRaises(ValueError):
            NumericValidator(
                equal_to={'a': 1},
                not_equal_to={'a': 2},
            )
Exemplo n.º 4
0
    def test_raise_on_repeated_inter_not_equal_group(self):
        """Test ValueError is raised when a parameter name is repeated across
        multiple `not_equal_group` elements."""

        with self.assertRaises(ValueError):
            NumericValidator(not_equal_groups=[
                ['a', 'b'],
                ['a', 'c'],
            ])
Exemplo n.º 5
0
    def test_raise_on_multiple_equal_group_assignment(self):
        """Test ValueError is raised when distinct parameters that belong
        to an `equal_group` element are assigned in `equal_to`."""

        with self.assertRaises(ValueError):
            NumericValidator(equal_groups=[['a', 'b']],
                             equal_to={
                                 'a': 1,
                                 'b': 2,
                             })
Exemplo n.º 6
0
    def _validate_params(self, a, b, c, alpha, beta, gamma):
        """Validate lattice parameters against the specified lattice system."""

        data = pkgutil.get_data('bravais', 'valid_parameters.yml')
        valid_parameters = yaml.safe_load(data)

        valid_lat_params = valid_parameters[self.lattice_system]
        length_validator = NumericValidator(**valid_lat_params['lengths'])
        angles_validator = NumericValidator(**valid_lat_params['angles'])

        lengths_valid = length_validator.validate(a=a, b=b, c=c)
        angles_valid = angles_validator.validate(alpha=alpha,
                                                 beta=beta,
                                                 gamma=gamma)

        return lengths_valid, angles_valid
Exemplo n.º 7
0
    def test_raise_on_repeated_intra_equal_group(self):
        """Test ValueError is raised when a parameter name is repeated within
        an `equal_group` element."""

        with self.assertRaises(ValueError):
            NumericValidator(equal_groups=[['a', 'a', 'b']])