test_figure.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. # -*- coding: utf-8 -*-
  2. import pytest
  3. from ioex.calcex import Figure
  4. @pytest.mark.parametrize(('init_kwargs', 'expected_value', 'expected_unit'), [
  5. [{}, None, None],
  6. [{'value': 123.4}, 123.4, None],
  7. [{'unit': 'm/s²'}, None, 'm/s²'],
  8. [{'value': 123.4, 'unit': 'm/s²'}, 123.4, 'm/s²'],
  9. [{'value': 1234, 'unit': '米/s²'}, 1234, '米/s²'],
  10. ])
  11. def test_init(init_kwargs, expected_value, expected_unit):
  12. f = Figure(**init_kwargs)
  13. assert expected_value == f.value
  14. assert expected_unit == f.unit
  15. @pytest.mark.parametrize(('value'), [
  16. 1234,
  17. 123.4,
  18. '一千',
  19. ])
  20. def test_set_value(value):
  21. f = Figure()
  22. assert None == f.value
  23. f.value = value
  24. assert value == f.value
  25. f.value = None
  26. assert None == f.value
  27. f.set_value(value)
  28. assert value == f.value
  29. @pytest.mark.parametrize(('unit'), [
  30. 'μg/l',
  31. '米/s²',
  32. ])
  33. def test_set_unit(unit):
  34. f = Figure()
  35. assert None == f.unit
  36. f.unit = unit
  37. assert unit == f.unit
  38. f.unit = None
  39. assert None == f.unit
  40. f.set_unit(unit)
  41. assert unit == f.unit
  42. @pytest.mark.parametrize(('figure', 'expected_string'), [
  43. [Figure(), '?'],
  44. [Figure(value=123.4), '123.4'],
  45. [Figure(unit='m/s²'), '? m/s²'],
  46. [Figure(value=123.4, unit='m/s²'), '123.4 m/s²'],
  47. [Figure(value=1234, unit='米/s²'), '1234 米/s²'],
  48. ])
  49. def test_str(figure, expected_string):
  50. assert expected_string == str(figure)