File: test_formatter.py

package info (click to toggle)
python-pint 0.24.4-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,924 kB
  • sloc: python: 19,983; makefile: 149
file content (57 lines) | stat: -rw-r--r-- 1,877 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
from __future__ import annotations

import pytest

from pint import formatting as fmt
from pint.delegates.formatter._format_helpers import formatter, join_u


class TestFormatter:
    def test_join(self):
        for empty in ((), []):
            assert join_u("s", empty) == ""
        assert join_u("*", "1 2 3".split()) == "1*2*3"
        assert join_u("{0}*{1}", "1 2 3".split()) == "1*2*3"

    def test_formatter(self):
        assert formatter({}.items(), ()) == ""
        assert formatter(dict(meter=1).items(), ()) == "meter"
        assert formatter((), dict(meter=-1).items()) == "1 / meter"
        assert formatter((), dict(meter=-1).items(), as_ratio=False) == "meter ** -1"

        assert (
            formatter((), dict(meter=-1, second=-1).items(), as_ratio=False)
            == "meter ** -1 * second ** -1"
        )
        assert (
            formatter(
                (),
                dict(meter=-1, second=-1).items(),
            )
            == "1 / meter / second"
        )
        assert (
            formatter((), dict(meter=-1, second=-1).items(), single_denominator=True)
            == "1 / (meter * second)"
        )
        assert (
            formatter((), dict(meter=-1, second=-2).items())
            == "1 / meter / second ** 2"
        )
        assert (
            formatter((), dict(meter=-1, second=-2).items(), single_denominator=True)
            == "1 / (meter * second ** 2)"
        )

    def testparse_spec(self):
        assert fmt._parse_spec("") == ""
        assert fmt._parse_spec("") == ""
        with pytest.raises(ValueError):
            fmt._parse_spec("W")
        with pytest.raises(ValueError):
            fmt._parse_spec("PL")

    def test_format_unit(self):
        assert fmt.format_unit("", "C") == "dimensionless"
        with pytest.raises(ValueError):
            fmt.format_unit("m", "W")