test_figure.py 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. # -*- coding: utf-8 -*-
  2. import pytest
  3. from ioex.calcex import Figure
  4. @pytest.mark.parametrize(('init_params', 'init_kwargs', 'expected_value', 'expected_unit'), [
  5. [[], {}, None, None],
  6. [[123.4], {}, 123.4, None],
  7. [[None, 'm/s²'], {}, None, 'm/s²'],
  8. [[123.4, 'm/s²'], {}, 123.4, 'm/s²'],
  9. [[1234, '米/s²'], {}, 1234, '米/s²'],
  10. [[], {'value': 123.4}, 123.4, None],
  11. [[], {'unit': 'm/s²'}, None, 'm/s²'],
  12. [[], {'value': 123.4, 'unit': 'm/s²'}, 123.4, 'm/s²'],
  13. [[], {'value': 1234, 'unit': '米/s²'}, 1234, '米/s²'],
  14. [[1234], {'unit': '米/s²'}, 1234, '米/s²'],
  15. ])
  16. def test_init(init_params, init_kwargs, expected_value, expected_unit):
  17. f = Figure(*init_params, **init_kwargs)
  18. assert expected_value == f.value
  19. assert expected_unit == f.unit
  20. @pytest.mark.parametrize(('init_params', 'init_kwargs'), [
  21. [[12.34], {'value': 123.4}],
  22. [[12, 'm/h'], {'unit': 'm/s²'}],
  23. ])
  24. def test_init_multiple_values(init_params, init_kwargs):
  25. with pytest.raises(Exception):
  26. Figure(*init_params, **init_kwargs)
  27. @pytest.mark.parametrize(('value'), [
  28. 1234,
  29. 123.4,
  30. '一千',
  31. ])
  32. def test_set_value(value):
  33. f = Figure()
  34. assert None == f.value
  35. f.value = value
  36. assert value == f.value
  37. f.value = None
  38. assert None == f.value
  39. f.set_value(value)
  40. assert value == f.value
  41. @pytest.mark.parametrize(('unit'), [
  42. 'μg/l',
  43. '米/s²',
  44. ])
  45. def test_set_unit(unit):
  46. f = Figure()
  47. assert None == f.unit
  48. f.unit = unit
  49. assert unit == f.unit
  50. f.unit = None
  51. assert None == f.unit
  52. f.set_unit(unit)
  53. assert unit == f.unit
  54. @pytest.mark.parametrize(('figure', 'expected_string'), [
  55. [Figure(), '?'],
  56. [Figure(value=123.4), '123.4'],
  57. [Figure(unit='m/s²'), '? m/s²'],
  58. [Figure(value=123.4, unit='m/s²'), '123.4 m/s²'],
  59. [Figure(value=1234, unit='米/s²'), '1234 米/s²'],
  60. ])
  61. def test_str(figure, expected_string):
  62. assert expected_string == str(figure)
  63. @pytest.mark.parametrize(('a', 'b'), [
  64. [Figure(1, 'm'), Figure(1, 'm')],
  65. ])
  66. def test_eq(a, b):
  67. assert a == b
  68. print(a == b, a != b)
  69. assert not (a != b)
  70. @pytest.mark.parametrize(('a', 'b'), [
  71. [Figure(1, 'm'), Figure(2, 'g')],
  72. [Figure(1, 'm'), Figure(2, 'm')],
  73. [Figure(2, 'm'), Figure(2, 'g')],
  74. ])
  75. def test_neq(a, b):
  76. assert a != b
  77. assert not (a == b)