# test_intro_loading_parity.gd —— 40250 官方插画过场加载与 Tip 轮播回归测试 extends SceneTree const SystemClass = preload("res://intro_loading_phase.gd") var _passed: int = 0 var _failed: int = 0 func _assert(cond: bool, msg: String) -> void: if cond: _passed += 1 print(" [PASS] %s" % msg) else: _failed += 1 printerr(" [FAIL] %s" % msg) func _init() -> void: print("\n=== Running test_intro_loading_parity (Batch 30 Direction 2) ===") _test_loading_wallpapers_and_tips() _test_step_by_step_progress_stream() _test_completion_flow() print("\n=== Result: %d Passed, %d Failed ===" % [_passed, _failed]) if _failed == 0: print("ALL TESTS PASSED!\n") else: printerr("SOME TESTS FAILED!\n") quit(0 if _failed == 0 else 1) func _test_loading_wallpapers_and_tips() -> void: print("\n--- Test 1: Wallpapers & Tips Selection ---") var loader = SystemClass.new() loader.start_loading(1, 2) _assert(loader.current_wallpaper == SystemClass.OFFICIAL_LOADING_WALLPAPERS[1], "Selected wallpaper 1") _assert(loader.current_tip == SystemClass.OFFICIAL_LOADING_TIPS[2], "Selected tip 2 (Biologist)") _assert(loader.current_tip.contains("生物学家"), "Tip content matches official text") _assert(loader.progress_percent == 0.0, "Initial progress is 0%") _assert(loader.is_completed() == false, "Loading not completed initially") func _test_step_by_step_progress_stream() -> void: print("\n--- Test 2: Step-by-Step Progress Stream (25% -> 50% -> 75% -> 100%) ---") var loader = SystemClass.new() loader.start_loading() # Step 1: Property (25%) var s1 = loader.advance_loading_step() _assert(s1["step"] == SystemClass.STEP_PROPERTY, "Advanced to STEP_PROPERTY") _assert(s1["progress"] == 0.25, "Progress is 25%") _assert(s1["status_text"].contains("25%"), "Status text displays 25%") # Step 2: Terrain (50%) var s2 = loader.advance_loading_step() _assert(s2["step"] == SystemClass.STEP_TERRAIN, "Advanced to STEP_TERRAIN") _assert(s2["progress"] == 0.50, "Progress is 50%") # Step 3: Entities (75%) var s3 = loader.advance_loading_step() _assert(s3["step"] == SystemClass.STEP_ENTITIES, "Advanced to STEP_ENTITIES") _assert(s3["progress"] == 0.75, "Progress is 75%") # Step 4: UI & Audio (100%) var s4 = loader.advance_loading_step() _assert(s4["step"] == SystemClass.STEP_UI_AUDIO, "Advanced to STEP_UI_AUDIO") _assert(s4["progress"] == 1.0, "Progress reached 100%") func _test_completion_flow() -> void: print("\n--- Test 3: Loading Completion Lifecycle ---") var loader = SystemClass.new() loader.start_loading() # Run all steps to finish for i in range(5): loader.advance_loading_step() _assert(loader.is_completed() == true, "Loading fully completed") _assert(loader.progress_percent == 1.0, "Progress is 100%")