| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- from direct.showbase import PythonUtil
- def test_queue():
- q = PythonUtil.Queue()
- assert q.isEmpty()
- q.clear()
- assert q.isEmpty()
- q.push(10)
- assert not q.isEmpty()
- q.push(20)
- assert not q.isEmpty()
- assert len(q) == 2
- assert q.front() == 10
- assert q.back() == 20
- assert q.top() == 10
- assert q.top() == 10
- assert q.pop() == 10
- assert len(q) == 1
- assert not q.isEmpty()
- assert q.pop() == 20
- assert len(q) == 0
- assert q.isEmpty()
- def test_flywheel():
- f = PythonUtil.flywheel(['a','b','c','d'], countList=[11,20,3,4])
- obj2count = {}
- for obj in f:
- obj2count.setdefault(obj, 0)
- obj2count[obj] += 1
- assert obj2count['a'] == 11
- assert obj2count['b'] == 20
- assert obj2count['c'] == 3
- assert obj2count['d'] == 4
- f = PythonUtil.flywheel([1,2,3,4], countFunc=lambda x: x*2)
- obj2count = {}
- for obj in f:
- obj2count.setdefault(obj, 0)
- obj2count[obj] += 1
- assert obj2count[1] == 2
- assert obj2count[2] == 4
- assert obj2count[3] == 6
- assert obj2count[4] == 8
- f = PythonUtil.flywheel([1,2,3,4], countFunc=lambda x: x, scale = 3)
- obj2count = {}
- for obj in f:
- obj2count.setdefault(obj, 0)
- obj2count[obj] += 1
- assert obj2count[1] == 1 * 3
- assert obj2count[2] == 2 * 3
- assert obj2count[3] == 3 * 3
- assert obj2count[4] == 4 * 3
- def test_unescape_html_string():
- assert PythonUtil.unescapeHtmlString('asdf') == 'asdf'
- assert PythonUtil.unescapeHtmlString('as+df') == 'as df'
- assert PythonUtil.unescapeHtmlString('as%32df') == 'as2df'
- assert PythonUtil.unescapeHtmlString('asdf%32') == 'asdf2'
- def test_priority_callbacks():
- l = []
- def a(l=l):
- l.append('a')
- def b(l=l):
- l.append('b')
- def c(l=l):
- l.append('c')
- pc = PythonUtil.PriorityCallbacks()
- pc.add(a)
- pc()
- assert l == ['a']
- del l[:]
- bItem = pc.add(b)
- pc()
- assert 'a' in l
- assert 'b' in l
- assert len(l) == 2
- del l[:]
- pc.remove(bItem)
- pc()
- assert l == ['a']
- del l[:]
- pc.add(c, 2)
- bItem = pc.add(b, 10)
- pc()
- assert l == ['a', 'c', 'b']
- del l[:]
- pc.remove(bItem)
- pc()
- assert l == ['a', 'c']
- del l[:]
- pc.clear()
- pc()
- assert len(l) == 0
|