diff options
Diffstat (limited to 'scss/tests/test_types.py')
-rw-r--r-- | scss/tests/test_types.py | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/scss/tests/test_types.py b/scss/tests/test_types.py index b55c5f2..48f8223 100644 --- a/scss/tests/test_types.py +++ b/scss/tests/test_types.py @@ -10,10 +10,23 @@ import pytest # Test them all! def test_addition(): + # Numbers are a little complicated, what with all the units + # Simple case assert Number(123) + Number(456) == Number(579) - + # Simple equal units assert Number(1, "px") + Number(2, "px") == Number(3, "px") - + # Unitless values inherit units of the other operand + assert Number(5) + Number(6, "px") == Number(11, "px") + # Zero values can cast to any units + assert Number(0, "in") + Number(24, "deg") == Number(24, "deg") + # With different units, the left operand wins + assert Number(10, "cm") + Number(100, "mm") == Number(20, "cm") + assert Number(100, "mm") + Number(10, "cm") == Number(200, "mm") + # Unconvertible units raise an error + with pytest.raises(ValueError): + Number(1, "px") + Number(1, "em") + + # Adding anything to a string makes a string assert Number(123) + String('abc') == String('123abc') assert String('abc') + Number(123) == String('abc123') @@ -66,6 +79,16 @@ def test_comparison_numeric(): assert not lo != lo assert not lo == hi + # Numbers with units should also auto-cast numbers with units + units = Number(123, "px") + plain = Number(123) + assert units == plain + assert units <= plain + assert units >= plain + assert not units != plain + assert not units < plain + assert not units > plain + def test_comparison_stringerific(): abc = String('abc') |