# Static eye-position helper for res://scripts/isometric_follow_camera.gd (NEON-25 framing). extends GdUnitTestSuite const IsoScript := preload("res://scripts/isometric_follow_camera.gd") const ZoomBandConfigScript := preload("res://scripts/zoom_band_config.gd") func test_desired_eye_matches_previous_static_camera_frame() -> void: var focus := Vector3(-5.0, 0.9, -5.0) var eye: Vector3 = IsoScript.desired_eye_world( focus, 25.709, deg_to_rad(20.693), deg_to_rad(45.0) ) var want := Vector3(12.0, 10.0, 12.0) assert_that(eye.distance_to(want)).is_less(0.06) func test_effective_follow_distance_fallback_when_config_null() -> void: assert_that(IsoScript.effective_follow_distance(null, 3, 12.5)).is_equal(12.5) func test_effective_follow_distance_uses_config_when_valid() -> void: var cfg = ZoomBandConfigScript.new() cfg.band_distances = PackedFloat32Array([10.0, 20.0, 30.0]) assert_that(IsoScript.effective_follow_distance(cfg, 1, 99.0)).is_equal(20.0) func test_effective_follow_distance_clamps_band_index() -> void: var cfg = ZoomBandConfigScript.new() cfg.band_distances = PackedFloat32Array([10.0, 20.0]) assert_that(IsoScript.effective_follow_distance(cfg, 99, 1.0)).is_equal(20.0) assert_that(IsoScript.effective_follow_distance(cfg, -3, 1.0)).is_equal(10.0) func test_effective_follow_distance_empty_config_bands_falls_back() -> void: var cfg = ZoomBandConfigScript.new() cfg.band_distances = PackedFloat32Array() assert_that(IsoScript.effective_follow_distance(cfg, 0, 7.5)).is_equal(7.5) func test_effective_follow_distance_fallback_when_band_non_positive() -> void: var cfg = ZoomBandConfigScript.new() cfg.band_distances = PackedFloat32Array([10.0, 0.0, 30.0]) assert_that(IsoScript.effective_follow_distance(cfg, 2, 99.0)).is_equal(99.0)