cadquery-freecad-module/CadQuery/Libs/pint/testsuite/test_formatter.py

44 lines
1.9 KiB
Python

# -*- coding: utf-8 -*-
from __future__ import division, unicode_literals, print_function, absolute_import
from pint import formatting as fmt
from pint.testsuite import QuantityTestCase
class TestFormatter(QuantityTestCase):
def test_join(self):
for empty in (tuple(), []):
self.assertEqual(fmt._join('s', empty), '')
self.assertEqual(fmt._join('*', '1 2 3'.split()), '1*2*3')
self.assertEqual(fmt._join('{0}*{1}', '1 2 3'.split()), '1*2*3')
def test_formatter(self):
self.assertEqual(fmt.formatter(dict().items()), '')
self.assertEqual(fmt.formatter(dict(meter=1).items()), 'meter')
self.assertEqual(fmt.formatter(dict(meter=-1).items()), '1 / meter')
self.assertEqual(fmt.formatter(dict(meter=-1).items(), as_ratio=False), 'meter ** -1')
self.assertEqual(fmt.formatter(dict(meter=-1, second=-1).items(), as_ratio=False),
'meter ** -1 * second ** -1')
self.assertEqual(fmt.formatter(dict(meter=-1, second=-1).items()),
'1 / meter / second')
self.assertEqual(fmt.formatter(dict(meter=-1, second=-1).items(), single_denominator=True),
'1 / (meter * second)')
self.assertEqual(fmt.formatter(dict(meter=-1, second=-2).items()),
'1 / meter / second ** 2')
self.assertEqual(fmt.formatter(dict(meter=-1, second=-2).items(), single_denominator=True),
'1 / (meter * second ** 2)')
def test_parse_spec(self):
self.assertEqual(fmt._parse_spec(''), '')
self.assertEqual(fmt._parse_spec(''), '')
self.assertRaises(ValueError, fmt._parse_spec, 'W')
self.assertRaises(ValueError, fmt._parse_spec, 'PL')
def test_format_unit(self):
self.assertEqual(fmt.format_unit('', 'C'), 'dimensionless')
self.assertRaises(ValueError, fmt.format_unit, 'm', 'W')