def test_recursive(self): from_zone = GMT(0) d = dt.datetime(2010, 10, 10, 10, 10, 10).replace(tzinfo=from_zone) img = image.Image(current_file_dir + "/images/nested/sample_grey.jpg","JPG") expected = [None, img, 1, 0.1, '1',d,array.array('d', [1, 2, 3]), {'foo': array.array('d', [1, 2,3])}] self.assertEqual(_flexible_type(expected), expected) self.assertEqual(_flexible_type([]), []) self.assertEqual(_flexible_type([[], []]), [[], []])
def test_dict(self): from_zone = GMT(0) d = dt.datetime(2010, 10, 10, 10, 10, 10).replace(tzinfo=from_zone) img = image.Image(current_file_dir + "/images/nested/sample_grey.jpg","JPG") expected = {'int': 0, 'float': 0.1, 'str': 'str', 'list': ['a', 'b', 'c'], 'array': array.array('d', [1, 2, 3]),'datetime':[d], 'image': img ,'none': None} self.assertEqual(_flexible_type(expected), expected) self.assertEqual(_flexible_type({}), {}) expected = [{'a': 1, 'b': 20, 'c': None}, {"b": 4, None: 5}, None, {'a': 0}] self.assertEqual(_flexible_type(expected), expected)
def test_float(self): self.assertEqual(_flexible_type(0.1), 0.1) # numpy types self.assertEqual(_flexible_type(np.float(0.1)), 0.1) self.assertEqual(_flexible_type(np.float_(0.1)), 0.1) self.assertAlmostEqual(_flexible_type(np.float16(0.1)), 0.1, delta=0.001) # not exact self.assertAlmostEqual(_flexible_type(np.float32(0.1)), 0.1) # not exact self.assertAlmostEqual(_flexible_type(np.float64(0.1)), 0.1) # not exact
def test_array(self): from_zone = GMT(0) d = dt.datetime(2010, 10, 10, 10, 10, 10).replace(tzinfo=from_zone) expected = array.array('d', [1, 2, 3]) self.assertEqual(_flexible_type(array.array('i', [1, 2, 3])), expected) self.assertEqual(_flexible_type(array.array('f', [1., 2., 3.])), expected) self.assertEqual(_flexible_type(array.array('d', [1., 2., 3.])), expected) self.assertEqual(_flexible_type([1, 2, 3]), expected) self.assertEqual(_flexible_type([1, 2, 3.0]), expected) self.assertEqual(_flexible_type([1.0, dt.datetime(2010, 10, 10, 10, 10, 10), 3.0]), [1, d, 3]) # numpy types expected = np.asarray([1, 2, 3]) self.assertSequenceEqual(_flexible_type(expected), list(expected)) expected = np.asarray([.1, .2, .3]) self.assertSequenceEqual(_flexible_type(expected), list(expected))
def test_image(self): img_gray_jpg = image.Image(current_file_dir + "/images/nested/sample_grey.jpg","JPG") img_gray_png = image.Image(current_file_dir + "/images/nested/sample_grey.png","PNG") img_gray_auto_jpg = image.Image(current_file_dir + "/images/nested/sample_grey.jpg") img_gray_auto_png = image.Image(current_file_dir + "/images/nested/sample_grey.png") img_color_jpg = image.Image(current_file_dir + "/images/sample.jpg","JPG") img_color_png = image.Image(current_file_dir + "/images/sample.png","PNG") img_color_auto_jpg = image.Image(current_file_dir + "/images/sample.jpg") img_color_auto_png = image.Image(current_file_dir + "/images/sample.png") self.assertEqual(_flexible_type(img_gray_jpg),img_gray_jpg) self.assertEqual(_flexible_type(img_gray_png),img_gray_png) self.assertEqual(_flexible_type(img_gray_auto_jpg),img_gray_auto_jpg) self.assertEqual(_flexible_type(img_gray_auto_png),img_gray_png) self.assertEqual(_flexible_type(img_color_jpg),img_color_jpg) self.assertEqual(_flexible_type(img_color_png),img_color_png) self.assertEqual(_flexible_type(img_color_auto_jpg),img_color_auto_jpg) self.assertEqual(_flexible_type(img_color_auto_png),img_color_auto_png)
def test_string(self): self.assertEqual(_flexible_type("a"), "a") self.assertEqual(_flexible_type(unicode("a")), "a") # numpy types self.assertEqual(_flexible_type(np.string_("a")), "a") self.assertEqual(_flexible_type(np.unicode_("a")), "a")
def test_int(self): self.assertEqual(_flexible_type(1), 1) self.assertEqual(_flexible_type(1L), 1) self.assertEqual(_flexible_type(True), 1) self.assertEqual(_flexible_type(False), 0) # numpy types self.assertEqual(_flexible_type(np.int_(1)), 1) self.assertEqual(_flexible_type(np.int64(1)), 1) self.assertEqual(_flexible_type(np.int32(1)), 1) self.assertEqual(_flexible_type(np.int16(1)), 1) self.assertEqual(_flexible_type(np.uint64(1)), 1) self.assertEqual(_flexible_type(np.uint32(1)), 1) self.assertEqual(_flexible_type(np.uint16(1)), 1) self.assertEqual(_flexible_type(np.bool(1)), 1) self.assertEqual(_flexible_type(np.bool(0)), 0) self.assertEqual(_flexible_type(np.bool_(1)), 1) self.assertEqual(_flexible_type(np.bool_(0)), 0) self.assertEqual(_flexible_type(np.bool8(1)), 1) self.assertEqual(_flexible_type(np.bool8(0)), 0)
def test_date_time(self): from_zone = GMT(0) d = dt.datetime(2010, 10, 10, 10, 10, 10).replace(tzinfo=from_zone) self.assertEqual(_flexible_type(dt.datetime(2010, 10, 10, 10, 10, 10)),d)
def test_none(self): self.assertEqual(_flexible_type(None), None)