summaryrefslogtreecommitdiff
path: root/addons/gdUnit4/src/fuzzers/BoolFuzzer.gd
diff options
context:
space:
mode:
Diffstat (limited to 'addons/gdUnit4/src/fuzzers/BoolFuzzer.gd')
-rw-r--r--addons/gdUnit4/src/fuzzers/BoolFuzzer.gd24
1 files changed, 24 insertions, 0 deletions
diff --git a/addons/gdUnit4/src/fuzzers/BoolFuzzer.gd b/addons/gdUnit4/src/fuzzers/BoolFuzzer.gd
new file mode 100644
index 0000000..906ee2c
--- /dev/null
+++ b/addons/gdUnit4/src/fuzzers/BoolFuzzer.gd
@@ -0,0 +1,24 @@
+## A fuzzer that generates random boolean values for testing.[br]
+##
+## This is useful for testing code paths that
+## depend on boolean conditions, flags, or toggle states.[br]
+##
+## [b]Usage example:[/b]
+## [codeblock]
+## func test_toggle_feature(fuzzer := BoolFuzzer.new(), _fuzzer_iterations = 100):
+## var enabled := fuzzer.next_value()
+## my_feature.set_enabled(enabled)
+## assert_bool(my_feature.is_enabled()),is_equal(enabled)
+## [/codeblock]
+class_name BoolFuzzer
+extends Fuzzer
+
+
+## Generates a random boolean value.[br]
+##
+## Returns either [code]true[/code] or [code]false[/code] with equal probability.
+## This method is called automatically during fuzz testing iterations.[br]
+##
+## @returns A randomly generated boolean value ([code]true[/code] or [code]false[/code]).
+func next_value() -> bool:
+ return randi() % 2