reinstalling GDUnit from assetlib
Some checks failed
Create tag and build when new code gets to main / Export (push) Failing after 6m41s
Some checks failed
Create tag and build when new code gets to main / Export (push) Failing after 6m41s
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
## A fuzzer that generates random Vector3 values within a specified box range.[br]
|
||||
##
|
||||
## This is particularly useful for testing 3D physics, spatial
|
||||
## positioning, camera systems, particle effects, or any code that processes 3D vectors.[br]
|
||||
##
|
||||
## The fuzzer generates vectors where each component (x, y, z) is independently
|
||||
## randomized within its respective range, creating a uniform distribution over the
|
||||
## 3D box volume.[br]
|
||||
##
|
||||
## [b]Usage example:[/b]
|
||||
## [codeblock]
|
||||
## # Test 3D object placement within world bounds
|
||||
## func test_spawn_position(fuzzer := Vector3Fuzzer.new(Vector3(-100, 0, -100), Vector3(100, 50, 100)), _fuzzer_iterations := 300):
|
||||
## var position := fuzzer.next_value()
|
||||
## var object = spawn_object(position)
|
||||
##
|
||||
## [/codeblock]
|
||||
class_name Vector3Fuzzer
|
||||
extends Fuzzer
|
||||
|
||||
|
||||
## Minimum bounds for the generated vectors (inclusive for x, y, and z).
|
||||
var _from: Vector3
|
||||
## Maximum bounds for the generated vectors (inclusive for x, y, and z).
|
||||
var _to: Vector3
|
||||
|
||||
|
||||
func _init(from: Vector3, to: Vector3) -> void:
|
||||
assert(from <= to, "Invalid range!")
|
||||
_from = from
|
||||
_to = to
|
||||
|
||||
|
||||
## Generates a random Vector3 within the configured box range.[br]
|
||||
##
|
||||
## Returns a Vector3 where each component is independently randomized:[br]
|
||||
## - x: random float between [code]_from.x[/code] and [code]_to.x[/code][br]
|
||||
## - y: random float between [code]_from.y[/code] and [code]_to.y[/code][br]
|
||||
## - z: random float between [code]_from.z[/code] and [code]_to.z[/code][br]
|
||||
##
|
||||
## The distribution is uniform over the 3D box volume defined by the bounds.[br]
|
||||
##
|
||||
## @returns A random Vector3 within the specified range.
|
||||
func next_value() -> Vector3:
|
||||
var x := randf_range(_from.x, _to.x)
|
||||
var y := randf_range(_from.y, _to.y)
|
||||
var z := randf_range(_from.z, _to.z)
|
||||
return Vector3(x, y, z)
|
||||
|
||||
Reference in New Issue
Block a user