|
3 | 3 | import unittest
|
4 | 4 | import pprint
|
5 | 5 | from datetime import datetime
|
6 |
| -from cromulent.extract import Dimension |
| 6 | +from cromulent.extract import Dimension, normalized_dimension_object |
7 | 7 | import cromulent.extract
|
8 | 8 |
|
9 | 9 | class TestDateCleaners(unittest.TestCase):
|
@@ -45,6 +45,10 @@ def test_parse_simple_dimensions(self):
|
45 | 45 | '8 1/4 pouces': [Dimension('8.25', 'inches', None)],
|
46 | 46 | '8 1/8 pouces': [Dimension('8.125', 'inches', None)],
|
47 | 47 | '1': [Dimension('1', None, None)],
|
| 48 | + |
| 49 | + # values without a unit that follow values with a unit stay in the same system but using the next-finer unit |
| 50 | + '2 pieds 3': [Dimension('2', 'feet', None), Dimension('3', 'inches', None)], |
| 51 | + "1' 3": [Dimension('1', 'feet', None), Dimension('3', 'inches', None)], |
48 | 52 | }
|
49 | 53 |
|
50 | 54 | for value, expected in tests.items():
|
@@ -88,5 +92,21 @@ def test_dimension_cleaner(self):
|
88 | 92 | else:
|
89 | 93 | self.assertIsNone(dims)
|
90 | 94 |
|
| 95 | + def test_normalize_dimension(self): |
| 96 | + tests = { |
| 97 | + '1 ft, 2 in': ('1 feet, 2 inches', Dimension(value='14.0', unit='inches', which=None)), |
| 98 | + '8 1/2 pouces': ('8.5 inches', Dimension(value='8.5', unit='inches', which=None)), |
| 99 | + '1 pied 7 pouces': ('1 feet, 7 inches', Dimension(value='19.0', unit='inches', which=None)), |
| 100 | + '2 pied 1/2 pouces': ('2 feet, 0.5 inches', Dimension(value='24.5', unit='inches', which=None)), |
| 101 | + "4' 8": ('4 feet, 8 inches', Dimension(value='56.0', unit='inches', which=None)), |
| 102 | + "1 pied 2": ('1 feet, 2 inches', Dimension(value='14.0', unit='inches', which=None)), |
| 103 | + } |
| 104 | + for value, expected in tests.items(): |
| 105 | + elabel, edim = expected |
| 106 | + dims = cromulent.extract.parse_simple_dimensions(value) |
| 107 | + dim, label = normalized_dimension_object(dims) |
| 108 | + self.assertEqual(label, elabel) |
| 109 | + self.assertEqual(dim, edim) |
| 110 | + |
91 | 111 | if __name__ == '__main__':
|
92 | 112 | unittest.main()
|
0 commit comments