82 {
85
87 ss << "\n╔════════════════════════════════════════════════════════════════╗\n";
88 ss << "║ FastLED SIMD Operations Test Suite ║\n";
89 ss << "╚════════════════════════════════════════════════════════════════╝\n";
91
92 FL_PRINT(
"\nStarting SIMD operation tests...\n");
93
94
95
96
97 FL_PRINT(
"\n[CATEGORY] Load/Store Operations");
98 FL_PRINT(
"────────────────────────────────────────────────────────────────");
99
103
104
105
106
107 FL_PRINT(
"\n[CATEGORY] Arithmetic Operations");
108 FL_PRINT(
"────────────────────────────────────────────────────────────────");
109
114
115
116
117
118 FL_PRINT(
"\n[CATEGORY] Comparison Operations");
119 FL_PRINT(
"────────────────────────────────────────────────────────────────");
120
125
126
127
128
129 FL_PRINT(
"\n[CATEGORY] Bitwise Operations");
130 FL_PRINT(
"────────────────────────────────────────────────────────────────");
131
136
137
138
139
140 FL_PRINT(
"\n[CATEGORY] Broadcast Operations");
141 FL_PRINT(
"────────────────────────────────────────────────────────────────");
142
145
146
147
148
149 FL_PRINT(
"\n[CATEGORY] Floating Point Operations");
150 FL_PRINT(
"────────────────────────────────────────────────────────────────");
151
159
160
161
162
165
166
168 FL_PRINT(
"\nSIMD_TEST_SUITE_COMPLETE");
169 } else {
171 err <<
"\nSIMD test suite failed with " <<
failed_tests <<
" error(s)";
173 }
174}
fl::vector< TestResult > test_results
const char * c_str() const FL_NOEXCEPT
string str() const FL_NOEXCEPT
#define FL_PRINT(X)
Print without prefix (like FL_WARN but without "WARN: " prefix) Uses sstream for dynamic formatting (...
void delay(u32 ms, bool run_async=true) FL_NOEXCEPT
Public delay wrapper that keeps bare Arduino delay() preferred after using fl::delay; while still all...
void test_load_store_f32_4(TestResult &result)
void test_load_store_u8_16(TestResult &result)
void test_or_u8_16(TestResult &result)
void test_set1_u32_4(TestResult &result)
void test_add_sat_u8_16(TestResult &result)
void test_avg_u8_16(TestResult &result)
void test_load_store_u32_4(TestResult &result)
void test_min_f32_4(TestResult &result)
void test_and_u8_16(TestResult &result)
void run_test(const char *test_name, TestFunc test_func, fl::vector< TestResult > &results, int &total_tests, int &passed_tests, int &failed_tests)
Run a single test and record result.
void test_max_f32_4(TestResult &result)
void test_set1_f32_4(TestResult &result)
void test_min_u8_16(TestResult &result)
void test_mul_f32_4(TestResult &result)
void print_final_banner(int failed_tests)
Print final result banner (PASS/FAIL)
void test_sub_sat_u8_16(TestResult &result)
void test_add_f32_4(TestResult &result)
void test_div_f32_4(TestResult &result)
void test_xor_u8_16(TestResult &result)
void test_sub_f32_4(TestResult &result)
void test_scale_u8_16(TestResult &result)
void test_max_u8_16(TestResult &result)
void test_avg_round_u8_16(TestResult &result)
void test_blend_u8_16(TestResult &result)
void print_summary(const fl::vector< TestResult > &test_results, int total_tests, int passed_tests, int failed_tests)
Print summary table of all test results.
void test_andnot_u8_16(TestResult &result)
void test_sqrt_f32_4(TestResult &result)