Files
open-wc/src/tools/verify_rendered_ground_sample.gd
T

46 lines
1.6 KiB
GDScript

extends SceneTree
## Cold-start contract for the renderer-owned ground query result value.
const SAMPLE_SCRIPT := preload("res://src/render/terrain/rendered_ground_sample.gd")
func _initialize() -> void:
var failures: Array[String] = []
var available_sample: RefCounted = SAMPLE_SCRIPT.available(42.25)
_expect_true(bool(available_sample.get("is_available")), "available sample", failures)
_expect_near(float(available_sample.get("height_units")), 42.25, "available height", failures)
var non_finite_sample: RefCounted = SAMPLE_SCRIPT.available(INF)
_expect_true(not bool(non_finite_sample.get("is_available")), "non-finite unavailable", failures)
_expect_true(
StringName(non_finite_sample.get("failure_code")) == &"render_terrain_height_not_finite",
"non-finite failure code",
failures
)
var unavailable_sample: RefCounted = SAMPLE_SCRIPT.unavailable(&"")
_expect_true(
StringName(unavailable_sample.get("failure_code")) == &"render_terrain_unavailable",
"empty failure code normalization",
failures
)
if not failures.is_empty():
for failure in failures:
push_error("RENDERED_GROUND_SAMPLE: %s" % failure)
quit(1)
return
print("RENDERED_GROUND_SAMPLE PASS contract=3")
quit(0)
func _expect_near(actual_value: float, expected_value: float, label: String, failures: Array[String]) -> void:
if not is_equal_approx(actual_value, expected_value):
failures.append("%s expected %.3f, got %.3f" % [label, expected_value, actual_value])
func _expect_true(actual_value: bool, label: String, failures: Array[String]) -> void:
if not actual_value:
failures.append("%s expected true" % label)