def test_empty(self):
asg = {Dict, List, Set, pytypes.Empty}
empty_dict = pytypes.Empty[Dict]
self.assertEqual(pytypes.deep_type({}), empty_dict)
self.assertEqual(pytypes.type_str(empty_dict, asg), 'Empty[Dict]')
self.assertTrue(pytypes.is_subtype(empty_dict, pytypes.Empty))
#self.assertFalse(pytypes.is_subtype(Dict[str, int], empty_dict))
self.assertTrue(pytypes.is_subtype(empty_dict, Dict[str, int]))
self.assertTrue(pytypes.is_subtype(empty_dict, Dict))
empty_lst = pytypes.Empty[List]
self.assertEqual(pytypes.deep_type([]), empty_lst)
self.assertEqual(pytypes.type_str(empty_lst, asg), 'Empty[List]')
self.assertTrue(pytypes.is_subtype(empty_lst, pytypes.Empty))
#self.assertFalse(pytypes.is_subtype(List[str], empty_lst))
self.assertTrue(pytypes.is_subtype(empty_lst, List[int]))
self.assertTrue(pytypes.is_subtype(empty_lst, List))
self.assertFalse(pytypes.is_subtype(empty_lst, empty_dict))
self.assertFalse(pytypes.is_subtype(empty_dict, empty_lst))
empty_seq = pytypes.Empty[Sequence]
empty_con = pytypes.Empty[typing.Container]
self.assertTrue(pytypes.is_subtype(Dict[str, int],
typing.Container[str]))
self.assertFalse(pytypes.is_subtype(empty_dict, empty_seq))
self.assertTrue(pytypes.is_subtype(empty_dict, empty_con))
self.assertTrue(pytypes.is_subtype(empty_lst, empty_seq))
self.assertFalse(pytypes.is_subtype(empty_seq, empty_lst))
empty_set = pytypes.Empty[Set]
self.assertEqual(pytypes.deep_type(set()), empty_set)
self.assertEqual(pytypes.type_str(empty_set, asg), 'Empty[Set]')
self.assertTrue(pytypes.is_subtype(empty_set, pytypes.Empty))
#self.assertFalse(pytypes.is_subtype(Set[int], empty_set))
self.assertTrue(pytypes.is_subtype(empty_set, Set[int]))
self.assertTrue(pytypes.is_subtype(empty_set, Set))
评论列表
文章目录