Mercurial > ~astiob > upreckon > hgweb
comparison problem.py @ 75:007f7eb6fb2b
The test context stack is now a deque.
Deques have a faster pop() than lists do.
| author | Oleg Oshmyan <chortos@inbox.lv> |
|---|---|
| date | Thu, 06 Jan 2011 23:53:31 +0200 |
| parents | aea4fc87698a |
| children | 0e5ae28e0b2b |
comparison
equal
deleted
inserted
replaced
| 74:aea4fc87698a | 75:007f7eb6fb2b |
|---|---|
| 11 __main__.import_error(sys.exc_info()[1]) | 11 __main__.import_error(sys.exc_info()[1]) |
| 12 else: | 12 else: |
| 13 from __main__ import clock, options | 13 from __main__ import clock, options |
| 14 | 14 |
| 15 import os, re, sys | 15 import os, re, sys |
| 16 | |
| 17 try: | |
| 18 from collections import deque | |
| 19 except ImportError: | |
| 20 deque = list | |
| 16 | 21 |
| 17 try: | 22 try: |
| 18 import signal | 23 import signal |
| 19 except ImportError: | 24 except ImportError: |
| 20 signalnames = () | 25 signalnames = () |
| 101 raise NotImplementedError | 106 raise NotImplementedError |
| 102 | 107 |
| 103 def test(prob): | 108 def test(prob): |
| 104 case = None | 109 case = None |
| 105 try: | 110 try: |
| 106 contexts = [TestGroup()] | 111 contexts = deque((TestGroup(),)) |
| 107 for case in prob.testcases: | 112 for case in prob.testcases: |
| 108 if case is test_context_end: | 113 if case is test_context_end: |
| 109 for case, correct, granted in contexts.pop().end(): | 114 for case, correct, granted in contexts.pop().end(): |
| 110 contexts[-1].case_start(case) | 115 contexts[-1].case_start(case) |
| 111 if correct: | 116 if correct: |
