Fix calculation of conversion test target values
Bit shifting gives an approximate, but not properly accurate value
when upconverting. Do a proper calculation.
diff --git a/tests/conv.cxx b/tests/conv.cxx
index 840f18d..3901b9d 100644
--- a/tests/conv.cxx
+++ b/tests/conv.cxx
@@ -72,9 +72,9 @@
g = (p >> dstpf.greenShift) & dstpf.greenMax;
b = (p >> dstpf.blueShift) & dstpf.blueMax;
- r <<= 8 - dstpf.redBits;
- g <<= 8 - dstpf.greenBits;
- b <<= 8 - dstpf.blueBits;
+ r = (r * 255 + dstpf.redMax/2) / dstpf.redMax;
+ g = (g * 255 + dstpf.greenMax/2) / dstpf.greenMax;
+ b = (b * 255 + dstpf.blueMax/2) / dstpf.blueMax;
// The allowed error depends on:
//