Some checks failed
Test before pr merge / test-lint (pull_request) Successful in 6s
Build on push / prepare (push) Successful in 9s
Build on push / core (push) Successful in 18s
Build on push / query (push) Successful in 19s
Build on push / dependency (push) Successful in 18s
Build on push / mail (push) Successful in 16s
Build on push / application (push) Successful in 19s
Build on push / database (push) Successful in 19s
Build on push / translation (push) Successful in 20s
Build on push / auth (push) Successful in 15s
Build on push / api (push) Has been cancelled
61 lines
2.0 KiB
Python
61 lines
2.0 KiB
Python
from cpl.core.console import Console
|
|
from cpl.core.utils.benchmark import Benchmark
|
|
from cpl.query.enumerable import Enumerable
|
|
from cpl.query.immutable_list import ImmutableList
|
|
from cpl.query.list import List
|
|
from cpl.query.set import Set
|
|
|
|
|
|
def _default():
|
|
Console.write_line(Enumerable.empty().to_list())
|
|
|
|
Console.write_line(Enumerable.range(0, 100).length)
|
|
Console.write_line(Enumerable.range(0, 100).to_list())
|
|
|
|
Console.write_line(Enumerable.range(0, 100).where(lambda x: x % 2 == 0).length)
|
|
Console.write_line(
|
|
Enumerable.range(0, 100).where(lambda x: x % 2 == 0).to_list().select(lambda x: str(x)).to_list()
|
|
)
|
|
Console.write_line(List)
|
|
|
|
s =Enumerable.range(0, 10).to_set()
|
|
Console.write_line(s)
|
|
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("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()
|
|
)
|
|
Benchmark.all("List comprehension", lambda: [x * 2 for x in data if x % 2 == 0])
|
|
|
|
|
|
def main():
|
|
N = 10_000_000
|
|
data = list(range(N))
|
|
#t_benchmark(data)
|
|
|
|
Console.write_line()
|
|
_default()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|