fix(diff): bugs in auto detect cases (#14)
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				build / build (push) Successful in 2m5s
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	build / build (push) Successful in 2m5s
				
			- fix original logic issue of cases generation (originally there is duplication on cases, e.g. `case5`, `task1/case5`) - fix the issue that without any specification there is no cases input and output in `diff` stage Co-authored-by: Boming Zhang <bomingzh@sjtu.edu.cn> Reviewed-on: #14 Reviewed-by: 张泊明518370910136 <bomingzh@sjtu.edu.cn> Co-authored-by: jon-lee <jon-lee@sjtu.edu.cn> Co-committed-by: jon-lee <jon-lee@sjtu.edu.cn>
This commit is contained in:
		
							parent
							
								
									01759efb7b
								
							
						
					
					
						commit
						6375a37069
					
				|  | @ -166,19 +166,25 @@ def fix_diff( | |||
|     task_path: Path, | ||||
| ) -> None: | ||||
|     base_dir = JOJ3_CONFIG_ROOT / task_path.parent | ||||
|     valid_cases = ( | ||||
|         (case, task_stage.cases[case]) | ||||
|         for case in task_stage.cases | ||||
|         if case not in task_stage.skip | ||||
|     ) | ||||
|     # all intended testcases that is detected | ||||
|     testcases = get_testcases(task_root, task_path) | ||||
|     # all testcases that is not specified in the toml config | ||||
|     default_cases = sorted( | ||||
|         [ | ||||
|             case | ||||
|             for case in testcases | ||||
|             if any(case.endswith(other) for other in task_stage.cases) | ||||
|         ] | ||||
|         testcases.difference( | ||||
|             [ | ||||
|                 casei | ||||
|                 for casei in testcases | ||||
|                 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 = [] | ||||
|     parser_cases = [] | ||||
|     for case, case_stage in valid_cases: | ||||
|  |  | |||
|  | @ -719,22 +719,7 @@ | |||
|                             "dataSegmentLimit": false, | ||||
|                             "addressSpaceLimit": false | ||||
|                         }, | ||||
|                         "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 | ||||
|                             } | ||||
|                         ] | ||||
|                         "cases": [] | ||||
|                     } | ||||
|                 }, | ||||
|                 "parsers": [ | ||||
|  | @ -742,32 +727,7 @@ | |||
|                         "name": "diff", | ||||
|                         "with": { | ||||
|                             "name": "diff", | ||||
|                             "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 | ||||
|                                         } | ||||
|                                     ] | ||||
|                                 } | ||||
|                             ] | ||||
|                             "cases": [] | ||||
|                         } | ||||
|                     }, | ||||
|                     { | ||||
|  |  | |||
|  | @ -65,12 +65,18 @@ | |||
|                         }, | ||||
|                         "cases": [ | ||||
|                             { | ||||
|                                 "args": [ | ||||
|                                     "./h7/build/ex2" | ||||
|                                 ], | ||||
|                                 "stdin": { | ||||
|                                     "src": "/home/tt/.config/joj/diff/case0.in" | ||||
|                                 }, | ||||
|                                 "memoryLimit": 2097152 | ||||
|                             }, | ||||
|                             { | ||||
|                                 "args": [ | ||||
|                                     "./h7/build/ex2" | ||||
|                                 ], | ||||
|                                 "stdin": { | ||||
|                                     "src": "/home/tt/.config/joj/diff/case1.in" | ||||
|                                 }, | ||||
|  | @ -86,50 +92,50 @@ | |||
|                             }, | ||||
|                             { | ||||
|                                 "stdin": { | ||||
|                                     "src": "/home/tt/.config/joj/diff/case11.in" | ||||
|                                     "src": "/home/tt/.config/joj/diff/task1/subtask1/case11.in" | ||||
|                                 }, | ||||
|                                 "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": { | ||||
|                                     "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": { | ||||
|                                     "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, | ||||
|                                             "fileName": "stdout", | ||||
|                                             "answerPath": "/home/tt/.config/joj/diff/case11.out", | ||||
|                                             "answerPath": "/home/tt/.config/joj/diff/task1/subtask1/case11.out", | ||||
|                                             "forceQuitOnDiff": false, | ||||
|                                             "alwaysHide": false, | ||||
|                                             "compareSpace": false | ||||
|  | @ -194,7 +200,7 @@ | |||
|                                         { | ||||
|                                             "score": 823131, | ||||
|                                             "fileName": "stdout", | ||||
|                                             "answerPath": "/home/tt/.config/joj/diff/case10.out", | ||||
|                                             "answerPath": "/home/tt/.config/joj/diff/task1/subtask1/case10.out", | ||||
|                                             "forceQuitOnDiff": false, | ||||
|                                             "alwaysHide": false, | ||||
|                                             "compareSpace": false | ||||
|  | @ -206,54 +212,6 @@ | |||
|                                         { | ||||
|                                             "score": 2590, | ||||
|                                             "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", | ||||
|                                             "forceQuitOnDiff": false, | ||||
|                                             "alwaysHide": false, | ||||
|  | @ -266,7 +224,7 @@ | |||
|                                         { | ||||
|                                             "score": 5, | ||||
|                                             "fileName": "stdout", | ||||
|                                             "answerPath": "/home/tt/.config/joj/diff/task1/subtask1/case10.out", | ||||
|                                             "answerPath": "/home/tt/.config/joj/diff/case2.out", | ||||
|                                             "forceQuitOnDiff": false, | ||||
|                                             "alwaysHide": false, | ||||
|                                             "compareSpace": false | ||||
|  | @ -278,7 +236,55 @@ | |||
|                                         { | ||||
|                                             "score": 5, | ||||
|                                             "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, | ||||
|                                             "alwaysHide": false, | ||||
|                                             "compareSpace": false | ||||
|  |  | |||
|  | @ -19,17 +19,14 @@ case0.diff.output.score = 5 | |||
| case0.limit.cpu = "1s" | ||||
| case0.limit.mem = "2m" | ||||
| case0.diff.output.ignore_spaces = true | ||||
| #case0.limit.stdout = 8 | ||||
| #case0.command = "./h7/build/ex2" | ||||
| case0.command = "./h7/build/ex2" | ||||
| case0.in = "case0.in" | ||||
| 
 | ||||
| case1.diff.output.score = 123214122421 | ||||
| case1.limit.cpu = "2s" | ||||
| case1.limit.mem = "4m" | ||||
| case1.diff.output.ignore_spaces = true | ||||
| #case1.limit.stdout = 8 | ||||
| #case1.command = "./h7/build/ex2" | ||||
| case1.in = "case1.in" | ||||
| case1.command = "./h7/build/ex2" | ||||
| 
 | ||||
| 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