@@ -509,6 +509,13 @@ std::set<int> N16;
509
509
std::set<int > N15;
510
510
int64_t tests = 0 ;
511
511
512
+ #define CHECK_RET (EXTRAOUT ) do { \
513
+ if (ret.c .r > ret.alpha * 2 || ret.alpha > 32768 ) { \
514
+ STDOUT << " ret = " << ret << " @ " << __LINE__ << " " << EXTRAOUT << " \n " ; \
515
+ exit (1 ); \
516
+ } \
517
+ } while (0 )
518
+
512
519
void add2set (int i) {
513
520
if (i < 0 ) return ;
514
521
if (i > 65535 ) return ;
@@ -520,32 +527,29 @@ template<class T1, class T2>
520
527
void runPaintTest (T1 A, T2 B) {
521
528
RGBA ret = A << B;
522
529
tests++;
523
- if (ret.c .r > ret.alpha * 2 ) {
524
- STDOUT << " A = " << A << " B = " << B << " \n " ;
525
- CHECK_LE (ret.c .r , ret.alpha * 2 );
526
- }
530
+ CHECK_RET (" A = " << A << " B = " << B);
527
531
528
532
// Test mixing
529
533
for (int d : N15) {
530
534
tests++;
531
535
ret = MixColors (A, B, d, 15 );
532
- if (ret.c .r > ret.alpha * 2 ) {
533
- STDOUT << " A = " << A << " B = " << B << " mix = " << d << " \n " ;
534
- CHECK_LE (ret.c .r , ret.alpha * 2 );
535
- }
536
+ CHECK_RET (" A = " << A << " B = " << B << " mix = " << d);
537
+ }
538
+
539
+ // Test mixing
540
+ for (int d : N15) {
541
+ tests++;
542
+ ret = MixColors (A, B, d>>1 , 14 );
543
+ CHECK_RET (" A = " << A << " B = " << B << " mix = " << (d >> 1 ));
536
544
}
537
545
}
538
546
539
547
template <class T1 >
540
548
void runPaintTest (T1 A) {
541
549
for (int d : N15) {
542
-
543
550
tests++;
544
551
RGBA ret = A * d;
545
- if (ret.c .r > ret.alpha * 2 ) {
546
- STDOUT << " A = " << A << " mult = " << d << " \n " ;
547
- CHECK_LE (ret.c .r , ret.alpha * 2 );
548
- }
552
+ CHECK_RET (" A = " << A << " mult = " << d);
549
553
550
554
for (int c : N16) {
551
555
RGBA_um B (Color16 (c,c,c), false , d);
0 commit comments