fix(diff): bugs in auto detect cases #14
|  | @ -166,19 +166,25 @@ def fix_diff( | ||||||
|     task_path: Path, |     task_path: Path, | ||||||
| ) -> None: | ) -> None: | ||||||
|     base_dir = JOJ3_CONFIG_ROOT / task_path.parent |     base_dir = JOJ3_CONFIG_ROOT / task_path.parent | ||||||
|     valid_cases = ( |     # all intended testcases that is detected | ||||||
|         (case, task_stage.cases[case]) |  | ||||||
|         for case in task_stage.cases |  | ||||||
|         if case not in task_stage.skip |  | ||||||
|     ) |  | ||||||
|     testcases = get_testcases(task_root, task_path) |     testcases = get_testcases(task_root, task_path) | ||||||
|  |     # all testcases that is not specified in the toml config | ||||||
|     default_cases = sorted( |     default_cases = sorted( | ||||||
|  |         testcases.difference( | ||||||
|             [ |             [ | ||||||
|             case |                 casei | ||||||
|             for case in testcases |                 for casei in testcases | ||||||
|             if any(case.endswith(other) for other in task_stage.cases) |                 if any(casei.endswith(casej) for casej in task_stage.cases) | ||||||
|             ] |             ] | ||||||
|         ) |         ) | ||||||
|  |     ) | ||||||
|  |     # those in toml config that is not skiped | ||||||
|  |     valid_cases = [ | ||||||
|  |         (casej, task_stage.cases[casei]) | ||||||
|  |         for casei in task_stage.cases | ||||||
|  |         for casej in testcases | ||||||
|  |         if (casei not in task_stage.skip and casej.endswith(casei)) | ||||||
|  |     ] | ||||||
|     stage_cases = [] |     stage_cases = [] | ||||||
|     parser_cases = [] |     parser_cases = [] | ||||||
|     for case, case_stage in valid_cases: |     for case, case_stage in valid_cases: | ||||||
|  |  | ||||||
|  | @ -719,22 +719,7 @@ | ||||||
|                             "dataSegmentLimit": false, |                             "dataSegmentLimit": false, | ||||||
|                             "addressSpaceLimit": false |                             "addressSpaceLimit": false | ||||||
|                         }, |                         }, | ||||||
|                         "cases": [ |                         "cases": [] | ||||||
|                             { |  | ||||||
|                                 "stdin": { |  | ||||||
|                                     "src": "/home/tt/.config/joj/basic/case0.in" |  | ||||||
|                                 }, |  | ||||||
|                                 "cpuLimit": 500000000, |  | ||||||
|                                 "clockLimit": 1000000000, |  | ||||||
|                                 "memoryLimit": 5242880 |  | ||||||
|                             }, |  | ||||||
|                             { |  | ||||||
|                                 "stdin": { |  | ||||||
|                                     "src": "/home/tt/.config/joj/basic/case1.in" |  | ||||||
|                                 }, |  | ||||||
|                                 "memoryLimit": 5242880 |  | ||||||
|                             } |  | ||||||
|                         ] |  | ||||||
|                     } |                     } | ||||||
|                 }, |                 }, | ||||||
|                 "parsers": [ |                 "parsers": [ | ||||||
|  | @ -742,32 +727,7 @@ | ||||||
|                         "name": "diff", |                         "name": "diff", | ||||||
|                         "with": { |                         "with": { | ||||||
|                             "name": "diff", |                             "name": "diff", | ||||||
|                             "cases": [ |                             "cases": [] | ||||||
|                                 { |  | ||||||
|                                     "outputs": [ |  | ||||||
|                                         { |  | ||||||
|                                             "score": 5, |  | ||||||
|                                             "fileName": "stdout", |  | ||||||
|                                             "answerPath": "/home/tt/.config/joj/basic/case0.out", |  | ||||||
|                                             "forceQuitOnDiff": false, |  | ||||||
|                                             "alwaysHide": false, |  | ||||||
|                                             "compareSpace": false |  | ||||||
|                                         } |  | ||||||
|                                     ] |  | ||||||
|                                 }, |  | ||||||
|                                 { |  | ||||||
|                                     "outputs": [ |  | ||||||
|                                         { |  | ||||||
|                                             "score": 5, |  | ||||||
|                                             "fileName": "stdout", |  | ||||||
|                                             "answerPath": "/home/tt/.config/joj/basic/case1.out", |  | ||||||
|                                             "forceQuitOnDiff": false, |  | ||||||
|                                             "alwaysHide": false, |  | ||||||
|                                             "compareSpace": false |  | ||||||
|                                         } |  | ||||||
|                                     ] |  | ||||||
|                                 } |  | ||||||
|                             ] |  | ||||||
|                         } |                         } | ||||||
|                     }, |                     }, | ||||||
|                     { |                     { | ||||||
|  |  | ||||||
|  | @ -65,12 +65,18 @@ | ||||||
|                         }, |                         }, | ||||||
|                         "cases": [ |                         "cases": [ | ||||||
|                             { |                             { | ||||||
|  |                                 "args": [ | ||||||
|  |                                     "./h7/build/ex2" | ||||||
|  |                                 ], | ||||||
|                                 "stdin": { |                                 "stdin": { | ||||||
|                                     "src": "/home/tt/.config/joj/diff/case0.in" |                                     "src": "/home/tt/.config/joj/diff/case0.in" | ||||||
|                                 }, |                                 }, | ||||||
|                                 "memoryLimit": 2097152 |                                 "memoryLimit": 2097152 | ||||||
|                             }, |                             }, | ||||||
|                             { |                             { | ||||||
|  |                                 "args": [ | ||||||
|  |                                     "./h7/build/ex2" | ||||||
|  |                                 ], | ||||||
|                                 "stdin": { |                                 "stdin": { | ||||||
|                                     "src": "/home/tt/.config/joj/diff/case1.in" |                                     "src": "/home/tt/.config/joj/diff/case1.in" | ||||||
|                                 }, |                                 }, | ||||||
|  | @ -86,50 +92,50 @@ | ||||||
|                             }, |                             }, | ||||||
|                             { |                             { | ||||||
|                                 "stdin": { |                                 "stdin": { | ||||||
|                                     "src": "/home/tt/.config/joj/diff/case11.in" |                                     "src": "/home/tt/.config/joj/diff/task1/subtask1/case11.in" | ||||||
|                                 }, |                                 }, | ||||||
|                                 "memoryLimit": 268435456 |                                 "memoryLimit": 268435456 | ||||||
|                             }, |                             }, | ||||||
|                             { |  | ||||||
|                                 "stdin": { |  | ||||||
|                                     "src": "/home/tt/.config/joj/diff/case10.in" |  | ||||||
|                                 }, |  | ||||||
|                                 "memoryLimit": 268435456 |  | ||||||
|                             }, |  | ||||||
|                             { |  | ||||||
|                                 "stdin": { |  | ||||||
|                                     "src": "/home/tt/.config/joj/diff/case5.in" |  | ||||||
|                                 }, |  | ||||||
|                                 "memoryLimit": 268435456 |  | ||||||
|                             }, |  | ||||||
|                             { |  | ||||||
|                                 "stdin": { |  | ||||||
|                                     "src": "/home/tt/.config/joj/diff/case0.in" |  | ||||||
|                                 } |  | ||||||
|                             }, |  | ||||||
|                             { |  | ||||||
|                                 "stdin": { |  | ||||||
|                                     "src": "/home/tt/.config/joj/diff/case1.in" |  | ||||||
|                                 } |  | ||||||
|                             }, |  | ||||||
|                             { |  | ||||||
|                                 "stdin": { |  | ||||||
|                                     "src": "/home/tt/.config/joj/diff/case9.in" |  | ||||||
|                                 } |  | ||||||
|                             }, |  | ||||||
|                             { |  | ||||||
|                                 "stdin": { |  | ||||||
|                                     "src": "/home/tt/.config/joj/diff/task1/case5.in" |  | ||||||
|                                 } |  | ||||||
|                             }, |  | ||||||
|                             { |                             { | ||||||
|                                 "stdin": { |                                 "stdin": { | ||||||
|                                     "src": "/home/tt/.config/joj/diff/task1/subtask1/case10.in" |                                     "src": "/home/tt/.config/joj/diff/task1/subtask1/case10.in" | ||||||
|  |                                 }, | ||||||
|  |                                 "memoryLimit": 268435456 | ||||||
|  |                             }, | ||||||
|  |                             { | ||||||
|  |                                 "stdin": { | ||||||
|  |                                     "src": "/home/tt/.config/joj/diff/task1/case5.in" | ||||||
|  |                                 }, | ||||||
|  |                                 "memoryLimit": 268435456 | ||||||
|  |                             }, | ||||||
|  |                             { | ||||||
|  |                                 "stdin": { | ||||||
|  |                                     "src": "/home/tt/.config/joj/diff/case2.in" | ||||||
|                                 } |                                 } | ||||||
|                             }, |                             }, | ||||||
|                             { |                             { | ||||||
|                                 "stdin": { |                                 "stdin": { | ||||||
|                                     "src": "/home/tt/.config/joj/diff/task1/subtask1/case11.in" |                                     "src": "/home/tt/.config/joj/diff/case3.in" | ||||||
|  |                                 } | ||||||
|  |                             }, | ||||||
|  |                             { | ||||||
|  |                                 "stdin": { | ||||||
|  |                                     "src": "/home/tt/.config/joj/diff/task1/case4.in" | ||||||
|  |                                 } | ||||||
|  |                             }, | ||||||
|  |                             { | ||||||
|  |                                 "stdin": { | ||||||
|  |                                     "src": "/home/tt/.config/joj/diff/task2/case6.in" | ||||||
|  |                                 } | ||||||
|  |                             }, | ||||||
|  |                             { | ||||||
|  |                                 "stdin": { | ||||||
|  |                                     "src": "/home/tt/.config/joj/diff/task2/case7.in" | ||||||
|  |                                 } | ||||||
|  |                             }, | ||||||
|  |                             { | ||||||
|  |                                 "stdin": { | ||||||
|  |                                     "src": "/home/tt/.config/joj/diff/task2/case8.in" | ||||||
|                                 } |                                 } | ||||||
|                             } |                             } | ||||||
|                         ] |                         ] | ||||||
|  | @ -182,7 +188,7 @@ | ||||||
|                                         { |                                         { | ||||||
|                                             "score": 92321, |                                             "score": 92321, | ||||||
|                                             "fileName": "stdout", |                                             "fileName": "stdout", | ||||||
|                                             "answerPath": "/home/tt/.config/joj/diff/case11.out", |                                             "answerPath": "/home/tt/.config/joj/diff/task1/subtask1/case11.out", | ||||||
|                                             "forceQuitOnDiff": false, |                                             "forceQuitOnDiff": false, | ||||||
|                                             "alwaysHide": false, |                                             "alwaysHide": false, | ||||||
|                                             "compareSpace": false |                                             "compareSpace": false | ||||||
|  | @ -194,7 +200,7 @@ | ||||||
|                                         { |                                         { | ||||||
|                                             "score": 823131, |                                             "score": 823131, | ||||||
|                                             "fileName": "stdout", |                                             "fileName": "stdout", | ||||||
|                                             "answerPath": "/home/tt/.config/joj/diff/case10.out", |                                             "answerPath": "/home/tt/.config/joj/diff/task1/subtask1/case10.out", | ||||||
|                                             "forceQuitOnDiff": false, |                                             "forceQuitOnDiff": false, | ||||||
|                                             "alwaysHide": false, |                                             "alwaysHide": false, | ||||||
|                                             "compareSpace": false |                                             "compareSpace": false | ||||||
|  | @ -206,54 +212,6 @@ | ||||||
|                                         { |                                         { | ||||||
|                                             "score": 2590, |                                             "score": 2590, | ||||||
|                                             "fileName": "stdout", |                                             "fileName": "stdout", | ||||||
|                                             "answerPath": "/home/tt/.config/joj/diff/case5.out", |  | ||||||
|                                             "forceQuitOnDiff": false, |  | ||||||
|                                             "alwaysHide": false, |  | ||||||
|                                             "compareSpace": false |  | ||||||
|                                         } |  | ||||||
|                                     ] |  | ||||||
|                                 }, |  | ||||||
|                                 { |  | ||||||
|                                     "outputs": [ |  | ||||||
|                                         { |  | ||||||
|                                             "score": 5, |  | ||||||
|                                             "fileName": "stdout", |  | ||||||
|                                             "answerPath": "/home/tt/.config/joj/diff/case0.out", |  | ||||||
|                                             "forceQuitOnDiff": false, |  | ||||||
|                                             "alwaysHide": false, |  | ||||||
|                                             "compareSpace": false |  | ||||||
|                                         } |  | ||||||
|                                     ] |  | ||||||
|                                 }, |  | ||||||
|                                 { |  | ||||||
|                                     "outputs": [ |  | ||||||
|                                         { |  | ||||||
|                                             "score": 5, |  | ||||||
|                                             "fileName": "stdout", |  | ||||||
|                                             "answerPath": "/home/tt/.config/joj/diff/case1.out", |  | ||||||
|                                             "forceQuitOnDiff": false, |  | ||||||
|                                             "alwaysHide": false, |  | ||||||
|                                             "compareSpace": false |  | ||||||
|                                         } |  | ||||||
|                                     ] |  | ||||||
|                                 }, |  | ||||||
|                                 { |  | ||||||
|                                     "outputs": [ |  | ||||||
|                                         { |  | ||||||
|                                             "score": 5, |  | ||||||
|                                             "fileName": "stdout", |  | ||||||
|                                             "answerPath": "/home/tt/.config/joj/diff/case9.out", |  | ||||||
|                                             "forceQuitOnDiff": false, |  | ||||||
|                                             "alwaysHide": false, |  | ||||||
|                                             "compareSpace": false |  | ||||||
|                                         } |  | ||||||
|                                     ] |  | ||||||
|                                 }, |  | ||||||
|                                 { |  | ||||||
|                                     "outputs": [ |  | ||||||
|                                         { |  | ||||||
|                                             "score": 5, |  | ||||||
|                                             "fileName": "stdout", |  | ||||||
|                                             "answerPath": "/home/tt/.config/joj/diff/task1/case5.out", |                                             "answerPath": "/home/tt/.config/joj/diff/task1/case5.out", | ||||||
|                                             "forceQuitOnDiff": false, |                                             "forceQuitOnDiff": false, | ||||||
|                                             "alwaysHide": false, |                                             "alwaysHide": false, | ||||||
|  | @ -266,7 +224,7 @@ | ||||||
|                                         { |                                         { | ||||||
|                                             "score": 5, |                                             "score": 5, | ||||||
|                                             "fileName": "stdout", |                                             "fileName": "stdout", | ||||||
|                                             "answerPath": "/home/tt/.config/joj/diff/task1/subtask1/case10.out", |                                             "answerPath": "/home/tt/.config/joj/diff/case2.out", | ||||||
|                                             "forceQuitOnDiff": false, |                                             "forceQuitOnDiff": false, | ||||||
|                                             "alwaysHide": false, |                                             "alwaysHide": false, | ||||||
|                                             "compareSpace": false |                                             "compareSpace": false | ||||||
|  | @ -278,7 +236,55 @@ | ||||||
|                                         { |                                         { | ||||||
|                                             "score": 5, |                                             "score": 5, | ||||||
|                                             "fileName": "stdout", |                                             "fileName": "stdout", | ||||||
|                                             "answerPath": "/home/tt/.config/joj/diff/task1/subtask1/case11.out", |                                             "answerPath": "/home/tt/.config/joj/diff/case3.out", | ||||||
|  |                                             "forceQuitOnDiff": false, | ||||||
|  |                                             "alwaysHide": false, | ||||||
|  |                                             "compareSpace": false | ||||||
|  |                                         } | ||||||
|  |                                     ] | ||||||
|  |                                 }, | ||||||
|  |                                 { | ||||||
|  |                                     "outputs": [ | ||||||
|  |                                         { | ||||||
|  |                                             "score": 5, | ||||||
|  |                                             "fileName": "stdout", | ||||||
|  |                                             "answerPath": "/home/tt/.config/joj/diff/task1/case4.out", | ||||||
|  |                                             "forceQuitOnDiff": false, | ||||||
|  |                                             "alwaysHide": false, | ||||||
|  |                                             "compareSpace": false | ||||||
|  |                                         } | ||||||
|  |                                     ] | ||||||
|  |                                 }, | ||||||
|  |                                 { | ||||||
|  |                                     "outputs": [ | ||||||
|  |                                         { | ||||||
|  |                                             "score": 5, | ||||||
|  |                                             "fileName": "stdout", | ||||||
|  |                                             "answerPath": "/home/tt/.config/joj/diff/task2/case6.out", | ||||||
|  |                                             "forceQuitOnDiff": false, | ||||||
|  |                                             "alwaysHide": false, | ||||||
|  |                                             "compareSpace": false | ||||||
|  |                                         } | ||||||
|  |                                     ] | ||||||
|  |                                 }, | ||||||
|  |                                 { | ||||||
|  |                                     "outputs": [ | ||||||
|  |                                         { | ||||||
|  |                                             "score": 5, | ||||||
|  |                                             "fileName": "stdout", | ||||||
|  |                                             "answerPath": "/home/tt/.config/joj/diff/task2/case7.out", | ||||||
|  |                                             "forceQuitOnDiff": false, | ||||||
|  |                                             "alwaysHide": false, | ||||||
|  |                                             "compareSpace": false | ||||||
|  |                                         } | ||||||
|  |                                     ] | ||||||
|  |                                 }, | ||||||
|  |                                 { | ||||||
|  |                                     "outputs": [ | ||||||
|  |                                         { | ||||||
|  |                                             "score": 5, | ||||||
|  |                                             "fileName": "stdout", | ||||||
|  |                                             "answerPath": "/home/tt/.config/joj/diff/task2/case8.out", | ||||||
|                                             "forceQuitOnDiff": false, |                                             "forceQuitOnDiff": false, | ||||||
|                                             "alwaysHide": false, |                                             "alwaysHide": false, | ||||||
|                                             "compareSpace": false |                                             "compareSpace": false | ||||||
|  |  | ||||||
|  | @ -19,17 +19,14 @@ case0.diff.output.score = 5 | ||||||
| case0.limit.cpu = "1s" | case0.limit.cpu = "1s" | ||||||
| case0.limit.mem = "2m" | case0.limit.mem = "2m" | ||||||
| case0.diff.output.ignore_spaces = true | case0.diff.output.ignore_spaces = true | ||||||
| #case0.limit.stdout = 8 | case0.command = "./h7/build/ex2" | ||||||
| #case0.command = "./h7/build/ex2" |  | ||||||
| case0.in = "case0.in" | case0.in = "case0.in" | ||||||
| 
 | 
 | ||||||
| case1.diff.output.score = 123214122421 | case1.diff.output.score = 123214122421 | ||||||
| case1.limit.cpu = "2s" | case1.limit.cpu = "2s" | ||||||
| case1.limit.mem = "4m" | case1.limit.mem = "4m" | ||||||
| case1.diff.output.ignore_spaces = true | case1.diff.output.ignore_spaces = true | ||||||
| #case1.limit.stdout = 8 | case1.command = "./h7/build/ex2" | ||||||
| #case1.command = "./h7/build/ex2" |  | ||||||
| case1.in = "case1.in" |  | ||||||
| 
 | 
 | ||||||
| case9.diff.output.score = 1232131 | case9.diff.output.score = 1232131 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										0
									
								
								tests/convert/diff/task2/case7.out
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								tests/convert/diff/task2/case7.out
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								tests/convert/diff/task2/case8.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								tests/convert/diff/task2/case8.in
									
									
									
									
									
										Normal file
									
								
							
		Loading…
	
		Reference in New Issue
	
	Block a user