Skip to content

Commit

Permalink
float-values: Refactor tests to be less verbose
Browse files Browse the repository at this point in the history
The goal is to be more concise thus more readable, as well as consistent
with most other tests.
  • Loading branch information
adrienverge committed Jul 8, 2022
1 parent e6af957 commit dc2d099
Showing 1 changed file with 70 additions and 111 deletions.
181 changes: 70 additions & 111 deletions tests/rules/test_float_values.py
Expand Up @@ -20,142 +20,101 @@ class FloatValuesTestCase(RuleTestCase):
rule_id = 'float-values'

def test_disabled(self):
conf = (
'float-values: disable\n'
'new-line-at-end-of-file: disable\n'
'document-start: disable\n'
)
self.check('angle: 0.0', conf)
self.check('angle: .NaN', conf)
self.check('angle: .INF', conf)
self.check('angle: .1', conf)
self.check('angle: 10e-6', conf)
self.check(
'- &angle .0\n'
'- *angle\n',
conf,
)
self.check(
'- &angle 10e6\n'
'- *angle\n',
conf,
)
self.check(
'- &angle .nan\n'
'- *angle\n',
conf,
)
self.check(
'- &angle .inf\n'
'- *angle\n',
conf,
)
conf = 'float-values: disable\n'
self.check('---\n'
'- 0.0\n'
'- .NaN\n'
'- .INF\n'
'- .1\n'
'- 10e-6\n',
conf)

def test_numeral_before_decimal(self):
conf = (
'float-values:\n'
' require-numeral-before-decimal: true\n'
' forbid-scientific-notation: false\n'
' forbid-nan: false\n'
' forbid-inf: false\n'
'new-line-at-end-of-file: disable\n'
'document-start: disable\n'
)
self.check('angle: .1', conf, problem=(1, 8))
self.check('angle: 0.0', conf)
self.check('angle: \'.1\'', conf)
self.check('angle: !custom_tag 0.0', conf)
self.check(
'- &angle 0.0\n'
'- *angle\n',
conf
)
self.check(
'- &angle .0\n'
'- *angle\n',
conf,
problem=(1, 10)
)
' forbid-inf: false\n')
self.check('---\n'
'- 0.0\n'
'- .1\n'
'- \'.1\'\n'
'- !custom_tag .2\n'
'- &angle1 0.0\n'
'- *angle1\n'
'- &angle2 .3\n'
'- *angle2\n',
conf,
problem1=(3, 3),
problem2=(8, 11))

def test_scientific_notation(self):
conf = (
'float-values:\n'
' require-numeral-before-decimal: false\n'
' forbid-scientific-notation: true\n'
' forbid-nan: false\n'
' forbid-inf: false\n'
'new-line-at-end-of-file: disable\n'
'document-start: disable\n'
)
self.check('angle: 10e6', conf, problem=(1, 8))
self.check('angle: 10e-6', conf, problem=(1, 8))
self.check('angle: 0.00001', conf)
self.check('angle: \'10e-6\'', conf)
self.check('angle: !custom_tag 10e-6', conf)
self.check(
'- &angle 0.000001\n'
'- *angle\n',
conf
)
self.check(
'- &angle 10e-6\n'
'- *angle\n',
conf,
problem=(1, 10)
)
self.check(
'- &angle 10e6\n'
'- *angle\n',
conf,
problem=(1, 10)
)
' forbid-inf: false\n')
self.check('---\n'
'- 10e6\n'
'- 10e-6\n'
'- 0.00001\n'
'- \'10e-6\'\n'
'- !custom_tag 10e-6\n'
'- &angle1 0.000001\n'
'- *angle1\n'
'- &angle2 10e-6\n'
'- *angle2\n'
'- &angle3 10e6\n'
'- *angle3\n',
conf,
problem1=(2, 3),
problem2=(3, 3),
problem3=(9, 11),
problem4=(11, 11))

def test_nan(self):
conf = (
'float-values:\n'
' require-numeral-before-decimal: false\n'
' forbid-scientific-notation: false\n'
' forbid-nan: true\n'
' forbid-inf: false\n'
'new-line-at-end-of-file: disable\n'
'document-start: disable\n'
)
self.check('angle: .NaN', conf, problem=(1, 8))
self.check('angle: .NAN', conf, problem=(1, 8))
self.check('angle: \'.NaN\'', conf)
self.check('angle: !custom_tag .NaN', conf)
self.check(
'- &angle .nan\n'
'- *angle\n',
conf,
problem=(1, 10)
)
' forbid-inf: false\n')
self.check('---\n'
'- .NaN\n'
'- .NAN\n'
'- \'.NaN\'\n'
'- !custom_tag .NaN\n'
'- &angle .nan\n'
'- *angle\n',
conf,
problem1=(2, 3),
problem2=(3, 3),
problem3=(6, 10))

def test_inf(self):
conf = (
'float-values:\n'
' require-numeral-before-decimal: false\n'
' forbid-scientific-notation: false\n'
' forbid-nan: false\n'
' forbid-inf: true\n'
'new-line-at-end-of-file: disable\n'
'document-start: disable\n'
)
self.check('angle: .inf', conf, problem=(1, 8))
self.check('angle: .INF', conf, problem=(1, 8))
self.check('angle: -.inf', conf, problem=(1, 8))
self.check('angle: -.INF', conf, problem=(1, 8))
self.check('angle: \'.inf\'', conf)
self.check('angle: !custom_tag .inf', conf)
self.check(
'- &angle .inf\n'
'- *angle\n',
conf,
problem=(1, 10)
)
self.check(
'- &angle -.inf\n'
'- *angle\n',
conf,
problem=(1, 10)
)
' forbid-inf: true\n')
self.check('---\n'
'- .inf\n'
'- .INF\n'
'- -.inf\n'
'- -.INF\n'
'- \'.inf\'\n'
'- !custom_tag .inf\n'
'- &angle .inf\n'
'- *angle\n'
'- &angle -.inf\n'
'- *angle\n',
conf,
problem1=(2, 3),
problem2=(3, 3),
problem3=(4, 3),
problem4=(5, 3),
problem5=(8, 10),
problem6=(10, 10))

0 comments on commit dc2d099

Please sign in to comment.