Updated docs
This commit is contained in:
@@ -1 +1 @@
|
||||
# imports:
|
||||
# imports:
|
||||
|
@@ -9,32 +9,18 @@ from unittests_query.models import User, Address
|
||||
|
||||
|
||||
class EnumerableQueryTestCase(unittest.TestCase):
|
||||
|
||||
def setUp(self) -> None:
|
||||
users = []
|
||||
for i in range(0, 100):
|
||||
users.append(User(
|
||||
String.random_string(string.ascii_letters, 8).lower(),
|
||||
Address(
|
||||
String.random_string(string.ascii_letters, 10).lower(),
|
||||
randint(1, 10)
|
||||
users.append(
|
||||
User(
|
||||
String.random_string(string.ascii_letters, 8).lower(),
|
||||
Address(String.random_string(string.ascii_letters, 10).lower(), randint(1, 10)),
|
||||
)
|
||||
))
|
||||
)
|
||||
|
||||
self._t_user = User(
|
||||
'Test user',
|
||||
Address(
|
||||
'teststr.',
|
||||
15
|
||||
)
|
||||
)
|
||||
self._t_user2 = User(
|
||||
'Test user',
|
||||
Address(
|
||||
'teststr.',
|
||||
14
|
||||
)
|
||||
)
|
||||
self._t_user = User("Test user", Address("teststr.", 15))
|
||||
self._t_user2 = User("Test user", Address("teststr.", 14))
|
||||
|
||||
users.append(self._t_user)
|
||||
users.append(self._t_user2)
|
||||
@@ -76,7 +62,7 @@ class EnumerableQueryTestCase(unittest.TestCase):
|
||||
self.assertEqual(avg, res)
|
||||
|
||||
def invalid():
|
||||
tests = Enumerable(str, ['hello', 'world'])
|
||||
tests = Enumerable(str, ["hello", "world"])
|
||||
e_res = tests.average()
|
||||
|
||||
self.assertRaises(InvalidTypeException, invalid)
|
||||
@@ -172,10 +158,7 @@ class EnumerableQueryTestCase(unittest.TestCase):
|
||||
|
||||
def test_for_each(self):
|
||||
users = []
|
||||
self._tests.for_each(lambda user: (
|
||||
users.append(user)
|
||||
)
|
||||
)
|
||||
self._tests.for_each(lambda user: (users.append(user)))
|
||||
|
||||
self.assertEqual(len(users), len(self._tests))
|
||||
|
||||
@@ -187,7 +170,7 @@ class EnumerableQueryTestCase(unittest.TestCase):
|
||||
self.assertEqual(99, tests.max())
|
||||
|
||||
def invalid():
|
||||
tests = Enumerable(str, ['hello', 'world'])
|
||||
tests = Enumerable(str, ["hello", "world"])
|
||||
e_res = tests.average()
|
||||
|
||||
self.assertRaises(InvalidTypeException, invalid)
|
||||
@@ -200,7 +183,7 @@ class EnumerableQueryTestCase(unittest.TestCase):
|
||||
self.assertEqual(0, tests.min())
|
||||
|
||||
def invalid():
|
||||
tests = Enumerable(str, ['hello', 'world'])
|
||||
tests = Enumerable(str, ["hello", "world"])
|
||||
e_res = tests.average()
|
||||
|
||||
self.assertRaises(InvalidTypeException, invalid)
|
||||
@@ -238,7 +221,11 @@ class EnumerableQueryTestCase(unittest.TestCase):
|
||||
self.assertEqual(res, s_res)
|
||||
|
||||
def test_then_by_descending(self):
|
||||
res = self._tests.order_by_descending(lambda user: user.address.street).then_by_descending(lambda user: user.address.nr).to_list()
|
||||
res = (
|
||||
self._tests.order_by_descending(lambda user: user.address.street)
|
||||
.then_by_descending(lambda user: user.address.nr)
|
||||
.to_list()
|
||||
)
|
||||
|
||||
s_res = self._tests.to_list()
|
||||
s_res.sort(key=lambda user: (user.address.street, user.address.nr), reverse=True)
|
||||
@@ -268,7 +255,10 @@ class EnumerableQueryTestCase(unittest.TestCase):
|
||||
selected_range = range_list.select(lambda x: [x, x])
|
||||
|
||||
self.assertEqual(selected_range.to_list(), [[x, x] for x in range(0, 100)])
|
||||
self.assertEqual(selected_range.select_many(lambda x: x).to_list(), [_x for _l in [2 * [x] for x in range(0, 100)] for _x in _l])
|
||||
self.assertEqual(
|
||||
selected_range.select_many(lambda x: x).to_list(),
|
||||
[_x for _l in [2 * [x] for x in range(0, 100)] for _x in _l],
|
||||
)
|
||||
|
||||
class TestClass:
|
||||
def __init__(self, i, is_sub=False):
|
||||
@@ -323,7 +313,7 @@ class EnumerableQueryTestCase(unittest.TestCase):
|
||||
self.assertEqual(0, tests.min())
|
||||
|
||||
def invalid():
|
||||
tests2 = Enumerable(str, ['hello', 'world'])
|
||||
tests2 = Enumerable(str, ["hello", "world"])
|
||||
e_res = tests2.average()
|
||||
|
||||
self.assertRaises(InvalidTypeException, invalid)
|
||||
|
@@ -4,13 +4,12 @@ from cpl_query.enumerable.enumerable import Enumerable
|
||||
|
||||
|
||||
class EnumerableTestCase(unittest.TestCase):
|
||||
|
||||
def setUp(self) -> None:
|
||||
self._list = Enumerable(int, list(range(1, 4)))
|
||||
|
||||
def test_append(self):
|
||||
self.assertEqual(self._list.to_list(), [1, 2, 3])
|
||||
self.assertRaises(Exception, lambda v: self._list.add(v), '3')
|
||||
self.assertRaises(Exception, lambda v: self._list.add(v), "3")
|
||||
|
||||
def test_default(self):
|
||||
self.assertEqual(Enumerable.empty().to_list(), [])
|
||||
|
@@ -10,23 +10,10 @@ from unittests_query.models import User, Address
|
||||
|
||||
|
||||
class IterableQueryTestCase(unittest.TestCase):
|
||||
|
||||
def setUp(self) -> None:
|
||||
self._tests = List(User)
|
||||
self._t_user = User(
|
||||
'Test user',
|
||||
Address(
|
||||
'teststr.',
|
||||
15
|
||||
)
|
||||
)
|
||||
self._t_user2 = User(
|
||||
'Test user',
|
||||
Address(
|
||||
'teststr.',
|
||||
14
|
||||
)
|
||||
)
|
||||
self._t_user = User("Test user", Address("teststr.", 15))
|
||||
self._t_user2 = User("Test user", Address("teststr.", 14))
|
||||
|
||||
self._generate_test_data()
|
||||
|
||||
@@ -34,10 +21,7 @@ class IterableQueryTestCase(unittest.TestCase):
|
||||
for i in range(0, 100):
|
||||
user = User(
|
||||
String.random_string(string.ascii_letters, 8).lower(),
|
||||
Address(
|
||||
String.random_string(string.ascii_letters, 10).lower(),
|
||||
randint(1, 10)
|
||||
)
|
||||
Address(String.random_string(string.ascii_letters, 10).lower(), randint(1, 10)),
|
||||
)
|
||||
|
||||
self._tests.append(user)
|
||||
@@ -80,7 +64,7 @@ class IterableQueryTestCase(unittest.TestCase):
|
||||
self.assertEqual(avg, res)
|
||||
|
||||
def invalid():
|
||||
tests = List(str, ['hello', 'world'])
|
||||
tests = List(str, ["hello", "world"])
|
||||
e_res = tests.average()
|
||||
|
||||
self.assertRaises(InvalidTypeException, invalid)
|
||||
@@ -204,10 +188,7 @@ class IterableQueryTestCase(unittest.TestCase):
|
||||
|
||||
def test_for_each(self):
|
||||
users = []
|
||||
self._tests.for_each(lambda user: (
|
||||
users.append(user)
|
||||
)
|
||||
)
|
||||
self._tests.for_each(lambda user: (users.append(user)))
|
||||
|
||||
self.assertEqual(len(users), len(self._tests))
|
||||
|
||||
@@ -219,7 +200,7 @@ class IterableQueryTestCase(unittest.TestCase):
|
||||
self.assertEqual(99, tests.max())
|
||||
|
||||
def invalid():
|
||||
tests = List(str, ['hello', 'world'])
|
||||
tests = List(str, ["hello", "world"])
|
||||
e_res = tests.average()
|
||||
|
||||
self.assertRaises(InvalidTypeException, invalid)
|
||||
@@ -232,7 +213,7 @@ class IterableQueryTestCase(unittest.TestCase):
|
||||
self.assertEqual(0, tests.min())
|
||||
|
||||
def invalid():
|
||||
tests = List(str, ['hello', 'world'])
|
||||
tests = List(str, ["hello", "world"])
|
||||
e_res = tests.average()
|
||||
|
||||
self.assertRaises(InvalidTypeException, invalid)
|
||||
@@ -270,7 +251,11 @@ class IterableQueryTestCase(unittest.TestCase):
|
||||
self.assertEqual(res, s_res)
|
||||
|
||||
def test_then_by_descending(self):
|
||||
res = self._tests.order_by_descending(lambda user: user.address.street).then_by_descending(lambda user: user.address.nr).to_list()
|
||||
res = (
|
||||
self._tests.order_by_descending(lambda user: user.address.street)
|
||||
.then_by_descending(lambda user: user.address.nr)
|
||||
.to_list()
|
||||
)
|
||||
|
||||
s_res = self._tests.to_list()
|
||||
s_res.sort(key=lambda user: (user.address.street, user.address.nr), reverse=True)
|
||||
@@ -300,7 +285,10 @@ class IterableQueryTestCase(unittest.TestCase):
|
||||
selected_range = range_list.select(lambda x: [x, x])
|
||||
|
||||
self.assertEqual(selected_range.to_list(), [[x, x] for x in range(0, 100)])
|
||||
self.assertEqual(selected_range.select_many(lambda x: x).to_list(), [_x for _l in [2 * [x] for x in range(0, 100)] for _x in _l])
|
||||
self.assertEqual(
|
||||
selected_range.select_many(lambda x: x).to_list(),
|
||||
[_x for _l in [2 * [x] for x in range(0, 100)] for _x in _l],
|
||||
)
|
||||
|
||||
class TestClass:
|
||||
def __init__(self, i, is_sub=False):
|
||||
@@ -342,7 +330,7 @@ class IterableQueryTestCase(unittest.TestCase):
|
||||
self.assertEqual(skipped.to_list(), self._tests[:-5])
|
||||
self.assertEqual(skipped.last(), self._tests[:-5][len(self._tests[:-5]) - 1])
|
||||
|
||||
def test_sum(self) -> List['int']:
|
||||
def test_sum(self) -> List["int"]:
|
||||
res = self._tests.sum(lambda u: u.address.nr)
|
||||
|
||||
s_res = 0
|
||||
@@ -355,7 +343,7 @@ class IterableQueryTestCase(unittest.TestCase):
|
||||
self.assertEqual(0, tests.min())
|
||||
|
||||
def invalid():
|
||||
tests2 = List(str, ['hello', 'world'])
|
||||
tests2 = List(str, ["hello", "world"])
|
||||
e_res = tests2.average()
|
||||
|
||||
self.assertRaises(InvalidTypeException, invalid)
|
||||
|
@@ -4,7 +4,6 @@ from cpl_query.extension.list import List
|
||||
|
||||
|
||||
class IterableTestCase(unittest.TestCase):
|
||||
|
||||
def setUp(self) -> None:
|
||||
self._list = List(int)
|
||||
|
||||
@@ -18,7 +17,7 @@ class IterableTestCase(unittest.TestCase):
|
||||
self._list.append(3)
|
||||
|
||||
self.assertEqual(self._list.to_list(), [1, 2, 3])
|
||||
self.assertRaises(Exception, lambda v: self._list.append(v), '3')
|
||||
self.assertRaises(Exception, lambda v: self._list.append(v), "3")
|
||||
|
||||
def test_assign(self):
|
||||
self._list.append(1)
|
||||
@@ -32,4 +31,4 @@ class IterableTestCase(unittest.TestCase):
|
||||
del self._list[3]
|
||||
|
||||
self.assertEqual(self._list.to_list(), [1, 2, 3])
|
||||
self.assertRaises(Exception, lambda v: self._list.append(v), '3')
|
||||
self.assertRaises(Exception, lambda v: self._list.append(v), "3")
|
||||
|
@@ -1,18 +1,16 @@
|
||||
class User:
|
||||
|
||||
def __init__(self, name, address):
|
||||
self.name = name
|
||||
self.address = address
|
||||
|
||||
def __repr__(self):
|
||||
return f'<{type(self).__name__} {self.name} {self.address}>'
|
||||
return f"<{type(self).__name__} {self.name} {self.address}>"
|
||||
|
||||
|
||||
class Address:
|
||||
|
||||
def __init__(self, street, nr):
|
||||
self.street = street
|
||||
self.nr = nr
|
||||
|
||||
def __repr__(self):
|
||||
return f'<{type(self).__name__} {self.street} {self.nr}>'
|
||||
return f"<{type(self).__name__} {self.street} {self.nr}>"
|
||||
|
@@ -10,7 +10,6 @@ COUNT = 50
|
||||
|
||||
|
||||
class PerformanceTestCase(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
i = 0
|
||||
self.values = []
|
||||
@@ -23,10 +22,10 @@ class PerformanceTestCase(unittest.TestCase):
|
||||
iterable = timeit.timeit(lambda: Iterable.range(0, VALUES), number=COUNT)
|
||||
enumerable = timeit.timeit(lambda: Enumerable.range(0, VALUES), number=COUNT)
|
||||
|
||||
print('Range')
|
||||
print(f'd: {default}s')
|
||||
print(f'i: {iterable}s')
|
||||
print(f'e: {enumerable}s')
|
||||
print("Range")
|
||||
print(f"d: {default}s")
|
||||
print(f"i: {iterable}s")
|
||||
print(f"e: {enumerable}s")
|
||||
|
||||
self.assertAlmostEqual(round(default, 3), round(enumerable, 3))
|
||||
self.assertAlmostEqual(round(default, 3), round(iterable, 3))
|
||||
@@ -36,17 +35,16 @@ class PerformanceTestCase(unittest.TestCase):
|
||||
iterable = timeit.timeit(lambda: Iterable.range(0, VALUES).where(lambda x: x == 50).single(), number=COUNT)
|
||||
enumerable = timeit.timeit(lambda: Enumerable.range(0, VALUES).where(lambda x: x == 50).single(), number=COUNT)
|
||||
|
||||
print('Where single')
|
||||
print(f'd: {default}s')
|
||||
print(f'i: {iterable}s')
|
||||
print(f'e: {enumerable}s')
|
||||
print("Where single")
|
||||
print(f"d: {default}s")
|
||||
print(f"i: {iterable}s")
|
||||
print(f"e: {enumerable}s")
|
||||
|
||||
self.assertLess(default, enumerable)
|
||||
self.assertLess(default, iterable)
|
||||
|
||||
def test_where_single_complex(self):
|
||||
class TestModel:
|
||||
|
||||
def __init__(self, v, tm=None):
|
||||
self.value = v
|
||||
self.tm = tm
|
||||
@@ -56,13 +54,17 @@ class PerformanceTestCase(unittest.TestCase):
|
||||
values.append(TestModel(i, TestModel(i + 1)))
|
||||
|
||||
default = timeit.timeit(lambda: [x for x in values if x.tm.value == 50], number=COUNT)
|
||||
iterable = timeit.timeit(lambda: Iterable(TestModel, values).where(lambda x: x.tm.value == 50).single(), number=COUNT)
|
||||
enumerable = timeit.timeit(lambda: Enumerable(TestModel, values).where(lambda x: x.tm.value == 50).single(), number=COUNT)
|
||||
iterable = timeit.timeit(
|
||||
lambda: Iterable(TestModel, values).where(lambda x: x.tm.value == 50).single(), number=COUNT
|
||||
)
|
||||
enumerable = timeit.timeit(
|
||||
lambda: Enumerable(TestModel, values).where(lambda x: x.tm.value == 50).single(), number=COUNT
|
||||
)
|
||||
|
||||
print('Complex where single')
|
||||
print(f'd: {default}s')
|
||||
print(f'i: {iterable}s')
|
||||
print(f'e: {enumerable}s')
|
||||
print("Complex where single")
|
||||
print(f"d: {default}s")
|
||||
print(f"i: {iterable}s")
|
||||
print(f"e: {enumerable}s")
|
||||
|
||||
self.assertLess(default, enumerable)
|
||||
self.assertLess(default, iterable)
|
||||
|
@@ -8,7 +8,6 @@ from unittests_query.sequence_test_case import SequenceTestCase
|
||||
|
||||
|
||||
class QueryTestSuite(unittest.TestSuite):
|
||||
|
||||
def __init__(self):
|
||||
unittest.TestSuite.__init__(self)
|
||||
|
||||
|
@@ -6,7 +6,6 @@ from cpl_query.iterable import Iterable
|
||||
|
||||
|
||||
class SequenceTestCase(unittest.TestCase):
|
||||
|
||||
def test_to_list(self):
|
||||
_list = List().extend(range(0, 100))
|
||||
enumerable = Enumerable.range(0, 100)
|
||||
|
@@ -2,9 +2,9 @@
|
||||
"ProjectSettings": {
|
||||
"Name": "unittest_query",
|
||||
"Version": {
|
||||
"Major": "2022",
|
||||
"Minor": "12",
|
||||
"Micro": "dev134"
|
||||
"Major": "2023",
|
||||
"Minor": "2",
|
||||
"Micro": "0"
|
||||
},
|
||||
"Author": "",
|
||||
"AuthorEmail": "",
|
||||
@@ -16,8 +16,8 @@
|
||||
"LicenseName": "",
|
||||
"LicenseDescription": "",
|
||||
"Dependencies": [
|
||||
"cpl-core>=2022.12.0",
|
||||
"cpl-query>=2022.12.dev134"
|
||||
"cpl-core>=2023.2.0",
|
||||
"cpl-query>=2023.2.0"
|
||||
],
|
||||
"PythonVersion": ">=3.10.4",
|
||||
"PythonPath": {},
|
||||
|
Reference in New Issue
Block a user