@@ -75,11 +75,14 @@ def main() -> None:
7575 assert run (cli , "catalog" , "--type" , "items" , "--id" , "22" )["details" ]
7676 assert run (cli , "catalog" , "--type" , "battalion-skills" )
7777 assert run (cli , "catalog" , "--type" , "support-ranks" )[- 1 ] == {"rank" : "S" , "points" : 1001 }
78+ support_catalog = run (cli , "catalog" , "--type" , "supports" )
79+ assert support_catalog [1 ]["maximumRank" ] == "S"
80+ assert support_catalog [65 ]["ranks" ] == ["None" , "C" , "B" ]
7881
7982 rank_patch = directory / "rank.json"
8083 rank_patch .write_text (json .dumps ({"operations" : [
8184 {"op" : "setProfessorRank" , "rank" : 9 },
82- {"op" : "setSupportRank" , "index" : 1 , "rank" : "A+ " },
85+ {"op" : "setSupportRank" , "index" : 1 , "rank" : "A" },
8386 {"op" : "setNgPlusSupportRank" , "index" : 2 , "rank" : "S" },
8487 ]}), encoding = "utf-8" )
8588 rank_target = directory / "rank-slot00"
@@ -88,10 +91,37 @@ def main() -> None:
8891 assert run (cli , "get" , "--input" , str (rank_target ),
8992 "--path" , "Activities.InstructExp" )["value" ] == 44500
9093 assert run (cli , "inspect" , "--input" , str (rank_target ),
91- "--section" , "supports" )["supports" ][1 ]["rank" ] == "A+ "
94+ "--section" , "supports" )["supports" ][1 ]["rank" ] == "A"
9295 assert run (cli , "inspect" , "--input" , str (rank_target ),
9396 "--section" , "inheritance" )["inheritance" ]["supports" ][2 ]["maxPoints" ] == 1001
9497
98+ invalid_rank_patch = directory / "invalid-support-rank.json"
99+ invalid_rank_patch .write_text (json .dumps ({"operations" : [
100+ {"op" : "setSupportRank" , "index" : 1 , "rank" : "A+" },
101+ ]}), encoding = "utf-8" )
102+ invalid_rank_target = directory / "invalid-support-rank-slot00"
103+ run (cli , "apply" , "--input" , str (source ), "--patch" , str (invalid_rank_patch ),
104+ "--output" , str (invalid_rank_target ), success = False )
105+ assert not invalid_rank_target .exists ()
106+
107+ max_rank_patch = directory / "max-support-ranks.json"
108+ max_rank_patch .write_text (json .dumps ({"operations" : [
109+ {"op" : "maxSupportRank" , "index" : 65 },
110+ {"op" : "maxNgPlusSupportRank" , "index" : 65 },
111+ {"op" : "maxNgPlusSupports" },
112+ ]}), encoding = "utf-8" )
113+ max_rank_target = directory / "max-support-ranks-slot00"
114+ run (cli , "apply" , "--input" , str (source ), "--patch" , str (max_rank_patch ),
115+ "--output" , str (max_rank_target ))
116+ assert run (cli , "inspect" , "--input" , str (max_rank_target ),
117+ "--section" , "supports" )["supports" ][65 ]["rank" ] == "B"
118+ max_history = run (cli , "inspect" , "--input" , str (max_rank_target ),
119+ "--section" , "inheritance" )["inheritance" ]["supports" ]
120+ assert max_history [0 ]["maxPoints" ] == 1001
121+ assert max_history [35 ]["maxPoints" ] == 0
122+ assert max_history [62 ]["maxPoints" ] == 801
123+ assert max_history [65 ]["maxPoints" ] == 301
124+
95125 item_patch = directory / "character-item.json"
96126 item_patch .write_text (json .dumps ({"operations" : [
97127 {"op" : "setCharacterItem" , "slot" : 0 , "itemSlot" : 0 , "id" : 22 },
0 commit comments