import unittest
from olc.utils.empty_checker import EmptyChecker
class TestEmptyChecker(unittest.TestCase):
"""
测试EmptyChecker类的功能
"""
def test_is_empty_none(self):
"""测试None值"""
self.assertTrue(EmptyChecker.is_empty(None))
def test_is_empty_list(self):
"""测试列表"""
self.assertTrue(EmptyChecker.is_empty([]))
self.assertFalse(EmptyChecker.is_empty([1, 2, 3]))
def test_is_empty_dict(self):
"""测试字典"""
self.assertTrue(EmptyChecker.is_empty({}))
self.assertFalse(EmptyChecker.is_empty({"a": 1}))
def test_is_empty_set(self):
"""测试集合"""
self.assertTrue(EmptyChecker.is_empty(set()))
self.assertFalse(EmptyChecker.is_empty({1, 2, 3}))
def test_is_empty_string(self):
"""测试字符串"""
self.assertTrue(EmptyChecker.is_empty(""))
self.assertTrue(EmptyChecker.is_empty(" "))
self.assertFalse(EmptyChecker.is_empty("hello"))
def test_is_empty_tuple(self):
"""测试元组"""
self.assertTrue(EmptyChecker.is_empty(()))
self.assertFalse(EmptyChecker.is_empty((1, 2, 3)))
def test_is_empty_bytes(self):
"""测试字节串"""
self.assertTrue(EmptyChecker.is_empty(b""))
self.assertFalse(EmptyChecker.is_empty(b"hello"))
def test_is_empty_bytearray(self):
"""测试字节数组"""
self.assertTrue(EmptyChecker.is_empty(bytearray()))
self.assertFalse(EmptyChecker.is_empty(bytearray(b"hello")))
def test_is_empty_generator(self):
"""测试生成器"""
def empty_gen():
if False:
yield 1
def non_empty_gen():
yield 1
self.assertTrue(EmptyChecker.is_empty(empty_gen()))
self.assertFalse(EmptyChecker.is_empty(non_empty_gen()))
def test_is_empty_iterator(self):
"""测试迭代器"""
empty_iter = iter([])
non_empty_iter = iter([1, 2, 3])
self.assertTrue(EmptyChecker.is_empty(empty_iter))
self.assertFalse(EmptyChecker.is_empty(non_empty_iter))
def test_is_empty_specific_methods(self):
"""测试特定容器类型的方法"""
self.assertTrue(EmptyChecker.is_empty_list(None))
self.assertTrue(EmptyChecker.is_empty_list([]))
self.assertFalse(EmptyChecker.is_empty_list([1, 2, 3]))
self.assertTrue(EmptyChecker.is_empty_dict(None))
self.assertTrue(EmptyChecker.is_empty_dict({}))
self.assertFalse(EmptyChecker.is_empty_dict({"a": 1}))
self.assertTrue(EmptyChecker.is_empty_set(None))
self.assertTrue(EmptyChecker.is_empty_set(set()))
self.assertFalse(EmptyChecker.is_empty_set({1, 2, 3}))
self.assertTrue(EmptyChecker.is_empty_string(None))
self.assertTrue(EmptyChecker.is_empty_string(""))
self.assertTrue(EmptyChecker.is_empty_string(" "))
self.assertFalse(EmptyChecker.is_empty_string("hello"))
self.assertTrue(EmptyChecker.is_empty_tuple(None))
self.assertTrue(EmptyChecker.is_empty_tuple(()))
self.assertFalse(EmptyChecker.is_empty_tuple((1, 2, 3)))
self.assertTrue(EmptyChecker.is_empty_bytes(None))
self.assertTrue(EmptyChecker.is_empty_bytes(b""))
self.assertFalse(EmptyChecker.is_empty_bytes(b"hello"))
self.assertTrue(EmptyChecker.is_empty_bytearray(None))
self.assertTrue(EmptyChecker.is_empty_bytearray(bytearray()))
self.assertFalse(EmptyChecker.is_empty_bytearray(bytearray(b"hello")))
self.assertTrue(EmptyChecker.is_empty_iterable(None))
self.assertTrue(EmptyChecker.is_empty_iterable([]))
self.assertFalse(EmptyChecker.is_empty_iterable([1, 2, 3]))
if __name__ == "__main__":
unittest.main()