Mercurial > ~astiob > upreckon > hgweb
comparison 2.00/testcases.py @ 24:c23d81f4a1a3
Score returned by TestCase.__call__() is now normalized to 0..1
TestCase.__call__() now returns the fraction (a number from 0 to 1) of case.points that is to be awarded.
Bug fix: %-patterns in configuration variables common to all problems are now substituted.
author | Oleg Oshmyan <chortos@inbox.lv> |
---|---|
date | Thu, 23 Sep 2010 00:11:24 +0000 |
parents | c1f52b5d80d6 |
children | b500e117080e |
comparison
equal
deleted
inserted
replaced
23:c1f52b5d80d6 | 24:c23d81f4a1a3 |
---|---|
319 refoutput.next() | 319 refoutput.next() |
320 except StopIteration: | 320 except StopIteration: |
321 pass | 321 pass |
322 else: | 322 else: |
323 raise WrongAnswer | 323 raise WrongAnswer |
324 return case.points | 324 return 1 |
325 elif callable(case.validator): | 325 elif callable(case.validator): |
326 return case.validator(output) | 326 return case.validator(output) |
327 else: | 327 else: |
328 # Call the validator program | 328 # Call the validator program |
329 output.close() | 329 output.close() |
338 comment = comment[match.end():] | 338 comment = comment[match.end():] |
339 if not case.problem.config.maxexitcode: | 339 if not case.problem.config.maxexitcode: |
340 if case.process.returncode: | 340 if case.process.returncode: |
341 raise WrongAnswer(comment) | 341 raise WrongAnswer(comment) |
342 else: | 342 else: |
343 return case.points, comment | 343 return 1, comment |
344 else: | 344 else: |
345 return case.points * case.process.returncode / case.problem.config.maxexitcode, comment | 345 return case.process.returncode / case.problem.config.maxexitcode, comment |
346 | 346 |
347 | 347 |
348 class BatchTestCase(ValidatedTestCase): | 348 class BatchTestCase(ValidatedTestCase): |
349 __slots__ = () | 349 __slots__ = () |
350 | 350 |