MCPcopy Create free account
hub / github.com/FastLED/FastLED / FL_TEST_FILE

Function FL_TEST_FILE

tests/fl/math/random.cpp:13–465  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

11#include "fl/stl/static_assert.h"
12
13FL_TEST_FILE(FL_FILEPATH) {
14
15using namespace fl;
16
17FL_TEST_CASE("fl::fl_random - Basic construction and seeding") {
18 FL_SUBCASE("Default constructor") {
19 fl_random rng;
20 // Should create a valid generator
21 u32 val1 = rng();
22 u32 val2 = rng();
23 // Random values should be different (statistically)
24 FL_CHECK(val1 != val2);
25 }
26
27 FL_SUBCASE("Constructor with explicit seed") {
28 fl_random rng1(12345);
29 fl_random rng2(12345);
30
31 // Same seed should produce same sequence
32 FL_CHECK_EQ(rng1(), rng2());
33 FL_CHECK_EQ(rng1(), rng2());
34 FL_CHECK_EQ(rng1(), rng2());
35 }
36
37 FL_SUBCASE("Different seeds produce different sequences") {
38 fl_random rng1(111);
39 fl_random rng2(222);
40
41 u32 val1 = rng1();
42 u32 val2 = rng2();
43
44 // Different seeds should produce different values
45 FL_CHECK(val1 != val2);
46 }
47}
48
49FL_TEST_CASE("fl::fl_random - Seed management") {
50 FL_SUBCASE("set_seed changes state") {
51 fl_random rng1(100);
52 fl_random rng2(200);
53
54 u32 val1 = rng1();
55 u32 val2_first = rng2();
56
57 // Reset rng2 to same seed as rng1 started with
58 rng2.set_seed(100);
59 u32 val2_reset = rng2();
60
61 // After setting same seed, should produce same first value
62 FL_CHECK_EQ(val1, val2_reset);
63 FL_CHECK(val2_first != val2_reset);
64 }
65
66 FL_SUBCASE("get_seed returns current seed") {
67 u16 initial_seed = 5555;
68 fl_random rng(initial_seed);
69
70 FL_CHECK_EQ(rng.get_seed(), initial_seed);

Callers

nothing calls this directly

Calls 11

shuffleFunction · 0.85
sortFunction · 0.85
set_seedMethod · 0.80
get_seedMethod · 0.80
add_entropyMethod · 0.80
random8Method · 0.80
random16Method · 0.80
push_backMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected