84 lines
2.6 KiB
Python
Executable File
84 lines
2.6 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
import json
|
|
import time
|
|
|
|
import defl
|
|
from defl import DotDict, cl, log, Assert
|
|
from defl.testing_ import Tester
|
|
|
|
tester = Tester(name=__file__)
|
|
|
|
@tester.add()
|
|
def rollingAverage():
|
|
print()
|
|
avg = defl.RollingAverage()
|
|
assert avg.window == None
|
|
assert avg.add(2) == 2, avg
|
|
assert avg.add(4) == 3, avg
|
|
assert avg.add(6) == 4, avg
|
|
|
|
@tester.add()
|
|
def rollingAverage1():
|
|
print()
|
|
avg = defl.RollingAverage(window=1)
|
|
assert avg.window == 1
|
|
assert avg.add(4) == 4, repr(avg)
|
|
assert avg.add(2) == 2, repr(avg)
|
|
assert avg.add(6) == 6, repr(avg)
|
|
assert avg.add(10) == 10, repr(avg)
|
|
assert avg.add(20) == 20, repr(avg)
|
|
|
|
@tester.add()
|
|
def rollingAverage2():
|
|
print()
|
|
avg = defl.RollingAverage(window=2)
|
|
assert avg.window == 2
|
|
assert avg.add(4) == 4, repr(avg)
|
|
assert avg.add(2) == 3, repr(avg)
|
|
assert avg.add(8) == 5, repr(avg)
|
|
assert avg.add(10) == 9, repr(avg)
|
|
assert avg.add(20) == 15, repr(avg)
|
|
|
|
@tester.add()
|
|
def rollingAverage4():
|
|
print()
|
|
avg = defl.RollingAverage(window=4)
|
|
assert avg.window == 4
|
|
assert avg.add(2) == 2, repr(avg)
|
|
assert avg.add(4) == 3, repr(avg)
|
|
assert avg.add(6) == 4, repr(avg)
|
|
assert avg.add(8) == 5, repr(avg)
|
|
val = 5
|
|
for i in range(10, 100, 2):
|
|
assert avg.add(i) == (val := val + 2), repr(avg)
|
|
|
|
@tester.add()
|
|
def baseMaker():
|
|
base10 = defl.BaseNumberSystemMaker(tokens='0123456789')
|
|
res = [''.join(base10.fromInt(i)) for i in range(12)]
|
|
Assert(res) == ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11']
|
|
|
|
base2 = defl.BaseNumberSystemMaker(tokens='01')
|
|
res = [''.join(base2.fromInt(i)) for i in range(12)]
|
|
Assert(res) == ['0', '1', '10', '11', '100', '101', '110', '111', '1000', '1001', '1010', '1011']
|
|
|
|
base2 = defl.BaseNumberSystemMaker(tokens='01')
|
|
res = [base2.fromInt(i) for i in range(12)]
|
|
Assert(res) == [['0'], ['1'], ['1', '0'], ['1', '1'], ['1', '0', '0'], ['1', '0', '1'], ['1', '1', '0'],
|
|
['1', '1', '1'], ['1', '0', '0', '0'], ['1', '0', '0', '1'], ['1', '0', '1', '0'],
|
|
['1', '0', '1', '1']]
|
|
|
|
base2 = defl.BaseNumberSystemMaker(tokens='012')
|
|
res = [''.join(base2.fromInt(i)) for i in range(12)]
|
|
Assert(res) == ['0', '1', '2', '10', '11', '12', '20', '21', '22', '100', '101', '102']
|
|
|
|
base10 = defl.BaseNumberSystemMaker(tokens='0123456789')
|
|
for i in range(9999):
|
|
ba = base10.fromInt(i)
|
|
Assert(ba) == [x for x in str(i)]
|
|
Assert(base10.toInt(ba)) == i
|
|
|
|
log.info(tester.run())
|
|
tester.exitWithStatus()
|