#!/usr/bin/env python from collections import Counter import sys, re, os, enum, itertools, timeit from functools import partial, partialmethod from time import sleep from dataclasses import dataclass, field from operator import itemgetter from defl import log, cl, Dath, Time, Run, sp, ShQu from defl._typing_ import * from defl._typing_ import T, F, N, U from defl._rich_ import * from defl._pydantic_ import * import defl number = 500_000 repeat = 5 # == loop def test_loop_comprehension(): code = [ 'output = []', 'lst1= [1, 3, 5, 7, 9, 11]', 'lst2=[2, 4, 6, 8, 10, 12]', 'output = [(a, b) for a in lst1 for b in lst2]', ] code = '\n'.join(code) res = timeit.repeat(code, number=number, repeat=repeat) res = sum(res) / len(res) print(res) def test_loop_forLoop(): code = [ 'output = []', 'lst1= [1, 3, 5, 7, 9, 11]', 'lst2=[2, 4, 6, 8, 10, 12]', 'for a in lst1:', ' for b in lst2:', ' output.extend((a, b))', ] code = '\n'.join(code) res = timeit.repeat(code, number=number, repeat=repeat) res = sum(res) / len(res) print(res) # == concatinate def test_createList_declare(): code = [ 'output = [1,2,4,5,6,7,8,9]', ] code = '\n'.join(code) res = timeit.repeat(code, number=number, repeat=repeat) res = sum(res) / len(res) print(res) def test_createList_concatinate(): code = [ 'output = [1,2] + [4,5] + [6,7] + [8,9]', ] code = '\n'.join(code) res = timeit.repeat(code, number=number, repeat=repeat) res = sum(res) / len(res) print(res) def test_createList_unpack(): code = [ 'output = [*[1,2], *[4,5], *[6,7], *[8,9]]', ] code = '\n'.join(code) res = timeit.repeat(code, number=number, repeat=repeat) res = sum(res) / len(res) print(res) def test_createList_extend(): code = [ 'output = []', 'output.extend([1,2])', 'output.extend([4,5])', 'output.extend([6,7])', 'output.extend([8,9])', ] code = '\n'.join(code) res = timeit.repeat(code, number=number, repeat=repeat) res = sum(res) / len(res) print(res)