{'teams': {0: {'team_name': 'search', 'agent': 'search.py', 'url': 'https://github.com/COMP90054-2025-Semester1/assignment-1-search-Yifi1024.git', 'commit_id': 'e75028f572c9c9e422ffeb0b0cd4481d1b9a2bb5', 'git_status': True, 'comments': 'N/A', 'submitted_time': '21/03/2025 21:35:17', 'copy_files': True}}}
before grades
Starting on 3-21 at 10:36:52
after grades

Question part1
==============
*** Search time: 0:00:02.382391
*** PASS: marking/part1/food_heuristic_grade_tricky.test
*** 	expanded nodes: 3540
*** 	thresholds: [15000, 12500, 10000, 4200]
*** Search time: 0:00:03.429120
*** PASS: marking/part1/hidden_heuristic_grade.test
*** 	expanded nodes: 5465
*** 	thresholds: [18000, 17000, 7500, 6500]

### Question part1: 2.00/2 ###


Question part2
==============
*** PASS: marking/part2/graph_manypaths.test
*** 	solution:		['1:A->C', '0:C->D', '1:D->F', '0:F->G']
*** 	expanded_states:	['A', 'B1', 'C', 'D', 'E1', 'F', 'A', 'B2', 'C', 'D', 'E2', 'F', 'A', 'B1', 'C', 'D', 'E1', 'F', 'A', 'B2', 'C', 'D', 'F', 'A', 'B1', 'C', 'D', 'F', 'A', 'B2', 'C', 'D', 'F', 'A', 'B1', 'C', 'D', 'F', 'A', 'C', 'D', 'F', 'A', 'C', 'D', 'F']
*** PASS: marking/part2/lrta_0.test
*** 	solution:		['Right', 'Down', 'Down']
*** 	expanded_states:	['A', 'B', 'D', 'G', 'D', 'A', 'B', 'C', 'B', 'D', 'A', 'B', 'D', 'A', 'B', 'D']
*** PASS: marking/part2/lrta_1_good_heuristic.test
*** 	solution:		['1:A->B', '0:B->C', '0:C->G']
*** 	expanded_states:	['A', 'B', 'C', 'A', 'B', 'C', 'A', 'D', 'E', 'D', 'E', 'A', 'B', 'C', 'A', 'B', 'C']
*** FAIL: marking/part2/lrta_2_bad_heuristic.test
*** 	graph:
*** 	        3      3      3
*** 	    *A ---- B ---- C ---- [G]
*** 	     |                     ^
*** 	     |  1       1     10   |
*** 	     \----- D ---- E -----/
*** 	    
*** 	    A is the start state, G is the goal.  Arrows mark possible state 
*** 	    transitions.  The number next to the arrow is the cost of that transition.
*** 	    
*** 	    If you fail this test case, you may be incorrectly testing if a node is a goal 
*** 	    before adding it into the queue, instead of testing when you remove the node 
*** 	    from the queue.  See the algorithm pseudocode in lecture.
*** 	student solution:		['1:A->B', '0:B->C', '0:C->G']
*** 	student expanded_states:	['A', 'D', 'E', 'D', 'E', 'D', 'A', 'D', 'E', 'D', 'A', 'D', 'E', 'D', 'A', 'D', 'E', 'A', 'B', 'C']
*** 
*** 	correct solution:		['1:A->B', '0:B->C', '0:C->G']
*** 	correct expanded_states:	['A', 'D', 'E', 'D', 'E', 'D', 'E', 'D', 'E', 'D', 'A', 'B', 'C', 'A', 'B', 'C']
*** 	correct rev_solution:		['1:A->B', '0:B->C', '0:C->G']
*** 	correct rev_expanded_states:	['A', 'D', 'E', 'D', 'E', 'D', 'E', 'D', 'E', 'D', 'A', 'B', 'C', 'A', 'B', 'C']
*** PASS: marking/part2/lrta_3_hidden.test
*** 	solution:		['0', '0', '2']
*** 	expanded_states:	['S', 'A', 'C', 'S', 'D', 'C', 'S', 'A', 'C', 'S', 'A', 'C', 'S', 'A', 'C']
*** PASS: marking/part2/lrta_4_hidden.test
*** 	solution:		['1:A->B', '0:B->C', '0:C->G']
*** 	expanded_states:	['A', 'B', 'C', 'A', 'B', 'C', 'A', 'B', 'C', 'A', 'B', 'C']

### Question part2: 2.50/3 ###


Question part3
==============
*** FAIL: Terminated with a string exception.

### Question part3: 0.00/2 ###


Finished at 10:36:57

Provisional grades
==================
Question part1: 2.00/2
Question part2: 2.50/3
Question part3: 0.00/2
------------------
Total passed test cases: 4.50/7