Added enumerable order & added array & removed collection
Some checks failed
Test before pr merge / test-lint (pull_request) Failing after 6s
Build on push / prepare (push) Successful in 10s
Build on push / query (push) Successful in 18s
Build on push / core (push) Successful in 25s
Build on push / api (push) Has been cancelled
Build on push / application (push) Has been cancelled
Build on push / auth (push) Has been cancelled
Build on push / database (push) Has been cancelled
Build on push / mail (push) Has been cancelled
Build on push / translation (push) Has been cancelled
Build on push / dependency (push) Has been cancelled

This commit is contained in:
2025-09-24 19:25:26 +02:00
parent 01a2ff7166
commit ad22bb6ecf
10 changed files with 170 additions and 273 deletions

View File

@@ -1,9 +1,8 @@
from cpl.core.console import Console
from cpl.core.utils.benchmark import Benchmark
from cpl.query.collection import Collection
from cpl.query.enumerable import Enumerable
from cpl.query.list import List
from cpl.query.immutable_list import ImmutableList
from cpl.query.list import List
from cpl.query.set import Set
@@ -24,11 +23,23 @@ def _default():
s.add(1)
Console.write_line(s)
data = Enumerable(
[
{"name": "Alice", "age": 30},
{"name": "Dave", "age": 35},
{"name": "Charlie", "age": 25},
{"name": "Bob", "age": 25},
]
)
Console.write_line(data.order_by(lambda x: x["age"]).to_list())
Console.write_line(data.order_by(lambda x: x["age"]).then_by(lambda x: x["name"]).to_list())
Console.write_line(data.order_by(lambda x: x["name"]).then_by(lambda x: x["age"]).to_list())
def t_benchmark(data: list):
Benchmark.all("Enumerable", lambda: Enumerable(data).where(lambda x: x % 2 == 0).select(lambda x: x * 2).to_list())
Benchmark.all("Set", lambda: Set(data).where(lambda x: x % 2 == 0).select(lambda x: x * 2).to_list())
Benchmark.all("Collection", lambda: Collection(data).where(lambda x: x % 2 == 0).select(lambda x: x * 2).to_list())
Benchmark.all("List", lambda: List(data).where(lambda x: x % 2 == 0).select(lambda x: x * 2).to_list())
Benchmark.all(
"ImmutableList", lambda: ImmutableList(data).where(lambda x: x % 2 == 0).select(lambda x: x * 2).to_list()
@@ -39,7 +50,7 @@ def t_benchmark(data: list):
def main():
N = 10_000_000
data = list(range(N))
t_benchmark(data)
#t_benchmark(data)
Console.write_line()
_default()