@ -47,27 +47,31 @@ namespace SixLabors.ImageSharp.Tests.Colors
Assert . Equal ( . 5F , scaled . W , 2 ) ;
// Test PackFromScaledVector4.
var pixel = default ( Alpha8 ) ;
pixel . PackFromScaledVector4 ( scaled ) ;
Assert . Equal ( 1 2 8 , pixel . PackedValue ) ;
Alpha8 alpha = default ;
alpha . PackFromScaledVector4 ( scaled ) ;
Assert . Equal ( 1 2 8 , alpha . PackedValue ) ;
// Test Rgb conversion
var rgb = default ( Rgb24 ) ;
var rgba = default ( Rgba32 ) ;
var bgr = default ( Bgr24 ) ;
var bgra = default ( Bgra32 ) ;
Rgb24 rgb = default ;
Rgba32 rgba = default ;
Bgr24 bgr = default ;
Bgra32 bgra = default ;
Argb32 argb = default ;
new Alpha8 ( . 5F ) . ToRgb24 ( ref rgb ) ;
alpha . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new Rgb24 ( 0 , 0 , 0 ) ) ;
new Alpha8 ( . 5F ) . ToRgba32 ( ref rgba ) ;
alpha . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new Rgba32 ( 0 , 0 , 0 , 1 2 8 ) ) ;
new Alpha8 ( . 5F ) . ToBgr24 ( ref bgr ) ;
alpha . ToBgr24 ( ref bgr ) ;
Assert . Equal ( bgr , new Bgr24 ( 0 , 0 , 0 ) ) ;
new Alpha8 ( . 5F ) . ToBgra32 ( ref bgra ) ;
alpha . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new Bgra32 ( 0 , 0 , 0 , 1 2 8 ) ) ;
alpha . ToArgb32 ( ref argb ) ;
Assert . Equal ( argb , new Argb32 ( 0 , 0 , 0 , 1 2 8 ) ) ;
}
[Fact]
@ -113,19 +117,40 @@ namespace SixLabors.ImageSharp.Tests.Colors
var rgba = default ( Rgba32 ) ;
var bgr = default ( Bgr24 ) ;
var bgra = default ( Bgra32 ) ;
var argb2 = default ( Argb32 ) ;
argb . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new Rgb24 ( 0x1a , 0 , 0x80 ) ) ;
argb . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new Rgba32 ( 0x1a , 0 , 0x80 , 0 ) ) ;
Assert . Equal ( rgba , argb . ToRgba32 ( ) ) ;
argb . ToBgr24 ( ref bgr ) ;
Assert . Equal ( bgr , new Bgr24 ( 0x1a , 0 , 0x80 ) ) ;
argb . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new Bgra32 ( 0x1a , 0 , 0x80 , 0 ) ) ;
Assert . Equal ( bgra , argb . ToBgra32 ( ) ) ;
argb . ToArgb32 ( ref argb2 ) ;
Assert . Equal ( argb2 , new Argb32 ( 0x1a , 0 , 0x80 , 0 ) ) ;
Assert . Equal ( argb2 , argb . ToArgb32 ( ) ) ;
var r = default ( Argb32 ) ;
r . PackFromRgba32 ( new Rgba32 ( 0x1a , 0 , 0x80 , 0 ) ) ;
r . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new Rgba32 ( 0x1a , 0 , 0x80 , 0 ) ) ;
r = default ( Argb32 ) ;
r . PackFromBgra32 ( new Bgra32 ( 0x1a , 0 , 0x80 , 0 ) ) ;
r . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new Bgra32 ( 0x1a , 0 , 0x80 , 0 ) ) ;
r = default ( Argb32 ) ;
r . PackFromArgb32 ( new Argb32 ( 0x1a , 0 , 0x80 , 0 ) ) ;
r . ToArgb32 ( ref argb ) ;
Assert . Equal ( argb , new Argb32 ( 0x1a , 0 , 0x80 , 0 ) ) ;
}
[Fact]
@ -173,6 +198,7 @@ namespace SixLabors.ImageSharp.Tests.Colors
var rgba = default ( Rgba32 ) ;
var bgr = default ( Bgr24 ) ;
var bgra = default ( Bgra32 ) ;
var argb = default ( Argb32 ) ;
new Bgr565 ( x , y , z ) . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new Rgb24 ( 2 5 , 0 , 1 3 2 ) ) ;
@ -185,6 +211,9 @@ namespace SixLabors.ImageSharp.Tests.Colors
new Bgr565 ( x , y , z ) . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new Bgra32 ( 2 5 , 0 , 1 3 2 , 2 5 5 ) ) ;
new Bgr565 ( x , y , z ) . ToArgb32 ( ref argb ) ;
Assert . Equal ( argb , new Argb32 ( 2 5 , 0 , 1 3 2 , 2 5 5 ) ) ;
}
[Fact]
@ -235,6 +264,7 @@ namespace SixLabors.ImageSharp.Tests.Colors
var rgba = default ( Rgba32 ) ;
var bgr = default ( Bgr24 ) ;
var bgra = default ( Bgra32 ) ;
var argb = default ( Argb32 ) ;
new Bgra4444 ( x , y , z , w ) . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new Rgb24 ( 3 4 , 0 , 1 3 6 ) ) ;
@ -247,6 +277,24 @@ namespace SixLabors.ImageSharp.Tests.Colors
new Bgra4444 ( x , y , z , w ) . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new Bgra32 ( 3 4 , 0 , 1 3 6 , 0 ) ) ;
new Bgra4444 ( x , y , z , w ) . ToArgb32 ( ref argb ) ;
Assert . Equal ( argb , new Argb32 ( 3 4 , 0 , 1 3 6 , 0 ) ) ;
var r = default ( Bgra4444 ) ;
r . PackFromRgba32 ( new Rgba32 ( 3 4 , 0 , 1 3 6 , 0 ) ) ;
r . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new Rgba32 ( 3 4 , 0 , 1 3 6 , 0 ) ) ;
r = default ( Bgra4444 ) ;
r . PackFromBgra32 ( new Bgra32 ( 3 4 , 0 , 1 3 6 , 0 ) ) ;
r . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new Bgra32 ( 3 4 , 0 , 1 3 6 , 0 ) ) ;
r = default ( Bgra4444 ) ;
r . PackFromArgb32 ( new Argb32 ( 3 4 , 0 , 1 3 6 , 0 ) ) ;
r . ToArgb32 ( ref argb ) ;
Assert . Equal ( argb , new Argb32 ( 3 4 , 0 , 1 3 6 , 0 ) ) ;
}
[Fact]
@ -293,6 +341,7 @@ namespace SixLabors.ImageSharp.Tests.Colors
var rgba = default ( Rgba32 ) ;
var bgr = default ( Bgr24 ) ;
var bgra = default ( Bgra32 ) ;
var argb = default ( Argb32 ) ;
new Bgra5551 ( x , y , z , w ) . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new Rgb24 ( 2 4 , 0 , 1 3 1 ) ) ;
@ -305,6 +354,24 @@ namespace SixLabors.ImageSharp.Tests.Colors
new Bgra5551 ( x , y , z , w ) . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new Bgra32 ( 2 4 , 0 , 1 3 1 , 0 ) ) ;
new Bgra5551 ( x , y , z , w ) . ToArgb32 ( ref argb ) ;
Assert . Equal ( argb , new Argb32 ( 2 4 , 0 , 1 3 1 , 0 ) ) ;
var r = default ( Bgra5551 ) ;
r . PackFromRgba32 ( new Rgba32 ( 2 4 , 0 , 1 3 1 , 0 ) ) ;
r . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new Rgba32 ( 2 4 , 0 , 1 3 1 , 0 ) ) ;
r = default ( Bgra5551 ) ;
r . PackFromBgra32 ( new Bgra32 ( 2 4 , 0 , 1 3 1 , 0 ) ) ;
r . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new Bgra32 ( 2 4 , 0 , 1 3 1 , 0 ) ) ;
r = default ( Bgra5551 ) ;
r . PackFromArgb32 ( new Argb32 ( 2 4 , 0 , 1 3 1 , 0 ) ) ;
r . ToArgb32 ( ref argb ) ;
Assert . Equal ( argb , new Argb32 ( 2 4 , 0 , 1 3 1 , 0 ) ) ;
}
[Fact]
@ -356,6 +423,7 @@ namespace SixLabors.ImageSharp.Tests.Colors
var rgba = default ( Rgba32 ) ;
var bgr = default ( Bgr24 ) ;
var bgra = default ( Bgra32 ) ;
var argb = default ( Argb32 ) ;
new Byte4 ( x , y , z , w ) . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new Rgb24 ( 1 2 8 , 0 , 0 ) ) ;
@ -369,10 +437,23 @@ namespace SixLabors.ImageSharp.Tests.Colors
new Byte4 ( x , y , z , w ) . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new Bgra32 ( 1 2 8 , 0 , 0 , 0 ) ) ;
var r = new Byte4 ( ) ;
new Byte4 ( x , y , z , w ) . ToArgb32 ( ref argb ) ;
Assert . Equal ( argb , new Argb32 ( 1 2 8 , 0 , 0 , 0 ) ) ;
var r = default ( Byte4 ) ;
r . PackFromRgba32 ( new Rgba32 ( 2 0 , 3 8 , 0 , 2 5 5 ) ) ;
r . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new Rgba32 ( 2 0 , 3 8 , 0 , 2 5 5 ) ) ;
r = default ( Byte4 ) ;
r . PackFromBgra32 ( new Bgra32 ( 2 0 , 3 8 , 0 , 2 5 5 ) ) ;
r . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new Bgra32 ( 2 0 , 3 8 , 0 , 2 5 5 ) ) ;
r = default ( Byte4 ) ;
r . PackFromArgb32 ( new Argb32 ( 2 0 , 3 8 , 0 , 2 5 5 ) ) ;
r . ToArgb32 ( ref argb ) ;
Assert . Equal ( argb , new Argb32 ( 2 0 , 3 8 , 0 , 2 5 5 ) ) ;
}
[Fact]
@ -407,6 +488,7 @@ namespace SixLabors.ImageSharp.Tests.Colors
var rgba = default ( Rgba32 ) ;
var bgr = default ( Bgr24 ) ;
var bgra = default ( Bgra32 ) ;
var argb = default ( Argb32 ) ;
new HalfSingle ( x ) . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new Rgb24 ( 1 2 8 , 0 , 0 ) ) ;
@ -419,6 +501,9 @@ namespace SixLabors.ImageSharp.Tests.Colors
new HalfSingle ( x ) . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new Bgra32 ( 1 2 8 , 0 , 0 , 2 5 5 ) ) ;
new HalfSingle ( x ) . ToArgb32 ( ref argb ) ;
Assert . Equal ( argb , new Argb32 ( 1 2 8 , 0 , 0 , 2 5 5 ) ) ;
}
[Fact]
@ -456,6 +541,7 @@ namespace SixLabors.ImageSharp.Tests.Colors
var rgba = default ( Rgba32 ) ;
var bgr = default ( Bgr24 ) ;
var bgra = default ( Bgra32 ) ;
var argb = default ( Argb32 ) ;
new HalfVector2 ( x , y ) . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new Rgb24 ( 1 2 8 , 6 4 , 0 ) ) ;
@ -468,6 +554,9 @@ namespace SixLabors.ImageSharp.Tests.Colors
new HalfVector2 ( x , y ) . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new Bgra32 ( 1 2 8 , 6 4 , 0 , 2 5 5 ) ) ;
new HalfVector2 ( x , y ) . ToArgb32 ( ref argb ) ;
Assert . Equal ( argb , new Argb32 ( 1 2 8 , 6 4 , 0 , 2 5 5 ) ) ;
}
[Fact]
@ -514,6 +603,7 @@ namespace SixLabors.ImageSharp.Tests.Colors
var rgba = default ( Rgba32 ) ;
var bgr = default ( Bgr24 ) ;
var bgra = default ( Bgra32 ) ;
var argb = default ( Argb32 ) ;
new HalfVector4 ( x , y , z , w ) . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new Rgb24 ( 6 4 , 1 2 8 , 1 9 1 ) ) ;
@ -526,6 +616,24 @@ namespace SixLabors.ImageSharp.Tests.Colors
new HalfVector4 ( x , y , z , w ) . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new Bgra32 ( 6 4 , 1 2 8 , 1 9 1 , 2 5 5 ) ) ;
new HalfVector4 ( x , y , z , w ) . ToArgb32 ( ref argb ) ;
Assert . Equal ( argb , new Argb32 ( 6 4 , 1 2 8 , 1 9 1 , 2 5 5 ) ) ;
var r = default ( HalfVector4 ) ;
r . PackFromRgba32 ( new Rgba32 ( 6 4 , 1 2 8 , 1 9 1 , 2 5 5 ) ) ;
r . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new Rgba32 ( 6 4 , 1 2 8 , 1 9 1 , 2 5 5 ) ) ;
r = default ( HalfVector4 ) ;
r . PackFromBgra32 ( new Bgra32 ( 6 4 , 1 2 8 , 1 9 1 , 2 5 5 ) ) ;
r . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new Bgra32 ( 6 4 , 1 2 8 , 1 9 1 , 2 5 5 ) ) ;
r = default ( HalfVector4 ) ;
r . PackFromArgb32 ( new Argb32 ( 6 4 , 1 2 8 , 1 9 1 , 2 5 5 ) ) ;
r . ToArgb32 ( ref argb ) ;
Assert . Equal ( argb , new Argb32 ( 6 4 , 1 2 8 , 1 9 1 , 2 5 5 ) ) ;
}
[Fact]
@ -571,6 +679,7 @@ namespace SixLabors.ImageSharp.Tests.Colors
var rgba = default ( Rgba32 ) ;
var bgr = default ( Bgr24 ) ;
var bgra = default ( Bgra32 ) ;
var argb = default ( Argb32 ) ;
new NormalizedByte2 ( x , y ) . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new Rgb24 ( 1 4 1 , 9 0 , 0 ) ) ;
@ -583,6 +692,9 @@ namespace SixLabors.ImageSharp.Tests.Colors
new NormalizedByte2 ( x , y ) . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new Bgra32 ( 1 4 1 , 9 0 , 0 , 2 5 5 ) ) ;
new NormalizedByte2 ( x , y ) . ToArgb32 ( ref argb ) ;
Assert . Equal ( argb , new Argb32 ( 1 4 1 , 9 0 , 0 , 2 5 5 ) ) ;
}
[Fact]
@ -618,7 +730,7 @@ namespace SixLabors.ImageSharp.Tests.Colors
float z = 0.5f ;
float w = - 0.7f ;
Assert . Equal ( 0xA740DA0D , new NormalizedByte4 ( x , y , z , w ) . PackedValue ) ;
var n = new NormalizedByte4 ( ) ;
var n = default ( NormalizedByte4 ) ;
n . PackFromRgba32 ( new Rgba32 ( 1 4 1 , 9 0 , 1 9 2 , 3 9 ) ) ;
Assert . Equal ( 0xA740DA0D , n . PackedValue ) ;
@ -628,6 +740,7 @@ namespace SixLabors.ImageSharp.Tests.Colors
var rgba = default ( Rgba32 ) ;
var bgr = default ( Bgr24 ) ;
var bgra = default ( Bgra32 ) ;
var argb = default ( Argb32 ) ;
new NormalizedByte4 ( x , y , z , w ) . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new Rgb24 ( 1 4 1 , 9 0 , 1 9 2 ) ) ;
@ -641,8 +754,11 @@ namespace SixLabors.ImageSharp.Tests.Colors
new NormalizedByte4 ( x , y , z , w ) . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new Bgra32 ( 1 4 1 , 9 0 , 1 9 2 , 3 9 ) ) ;
new NormalizedByte4 ( x , y , z , w ) . ToArgb32 ( ref argb ) ;
Assert . Equal ( argb , new Argb32 ( 1 4 1 , 9 0 , 1 9 2 , 3 9 ) ) ;
// http://community.monogame.net/t/normalizedbyte4-texture2d-gives-different-results-from-xna/8012/8
var r = new NormalizedByte4 ( ) ;
var r = default ( NormalizedByte4 ) ;
r . PackFromRgba32 ( new Rgba32 ( 9 , 1 1 5 , 2 0 2 , 1 2 7 ) ) ;
r . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new Rgba32 ( 9 , 1 1 5 , 2 0 2 , 1 2 7 ) ) ;
@ -650,6 +766,16 @@ namespace SixLabors.ImageSharp.Tests.Colors
r . PackedValue = 0xff4af389 ;
r . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new Rgba32 ( 9 , 1 1 5 , 2 0 2 , 1 2 7 ) ) ;
r = default ( NormalizedByte4 ) ;
r . PackFromArgb32 ( new Argb32 ( 9 , 1 1 5 , 2 0 2 , 1 2 7 ) ) ;
r . ToArgb32 ( ref argb ) ;
Assert . Equal ( argb , new Argb32 ( 9 , 1 1 5 , 2 0 2 , 1 2 7 ) ) ;
r = default ( NormalizedByte4 ) ;
r . PackFromBgra32 ( new Bgra32 ( 9 , 1 1 5 , 2 0 2 , 1 2 7 ) ) ;
r . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new Bgra32 ( 9 , 1 1 5 , 2 0 2 , 1 2 7 ) ) ;
}
[Fact]
@ -692,6 +818,7 @@ namespace SixLabors.ImageSharp.Tests.Colors
var rgba = default ( Rgba32 ) ;
var bgr = default ( Bgr24 ) ;
var bgra = default ( Bgra32 ) ;
var argb = default ( Argb32 ) ;
var n = new NormalizedShort2 ( ) ;
n . PackFromRgba32 ( new Rgba32 ( 1 4 1 , 9 0 , 0 , 0 ) ) ;
@ -712,6 +839,9 @@ namespace SixLabors.ImageSharp.Tests.Colors
new NormalizedShort2 ( x , y ) . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new Bgra32 ( 1 4 1 , 9 0 , 0 , 2 5 5 ) ) ;
new NormalizedShort2 ( x , y ) . ToArgb32 ( ref argb ) ;
Assert . Equal ( argb , new Argb32 ( 1 4 1 , 9 0 , 0 , 2 5 5 ) ) ;
}
[Fact]
@ -753,6 +883,7 @@ namespace SixLabors.ImageSharp.Tests.Colors
var rgba = default ( Rgba32 ) ;
var bgr = default ( Bgr24 ) ;
var bgra = default ( Bgra32 ) ;
var argb = default ( Argb32 ) ;
new NormalizedShort4 ( x , y , z , w ) . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new Rgb24 ( 1 4 1 , 9 0 , 1 9 2 ) ) ;
@ -766,10 +897,23 @@ namespace SixLabors.ImageSharp.Tests.Colors
new NormalizedShort4 ( x , y , z , w ) . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new Bgra32 ( 1 4 1 , 9 0 , 1 9 2 , 3 9 ) ) ;
var r = new NormalizedShort4 ( ) ;
new NormalizedShort4 ( x , y , z , w ) . ToArgb32 ( ref argb ) ;
Assert . Equal ( argb , new Argb32 ( 1 4 1 , 9 0 , 1 9 2 , 3 9 ) ) ;
var r = default ( NormalizedShort4 ) ;
r . PackFromRgba32 ( new Rgba32 ( 9 , 1 1 5 , 2 0 2 , 1 2 7 ) ) ;
r . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new Rgba32 ( 9 , 1 1 5 , 2 0 2 , 1 2 7 ) ) ;
r = default ( NormalizedShort4 ) ;
r . PackFromBgra32 ( new Bgra32 ( 9 , 1 1 5 , 2 0 2 , 1 2 7 ) ) ;
r . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new Bgra32 ( 9 , 1 1 5 , 2 0 2 , 1 2 7 ) ) ;
r = default ( NormalizedShort4 ) ;
r . PackFromArgb32 ( new Argb32 ( 9 , 1 1 5 , 2 0 2 , 1 2 7 ) ) ;
r . ToArgb32 ( ref argb ) ;
Assert . Equal ( argb , new Argb32 ( 9 , 1 1 5 , 2 0 2 , 1 2 7 ) ) ;
}
[Fact]
@ -812,6 +956,7 @@ namespace SixLabors.ImageSharp.Tests.Colors
var rgba = default ( Rgba32 ) ;
var bgr = default ( Bgr24 ) ;
var bgra = default ( Bgra32 ) ;
var argb = default ( Argb32 ) ;
new Rg32 ( x , y ) . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new Rgb24 ( 2 5 , 0 , 0 ) ) ;
@ -824,6 +969,9 @@ namespace SixLabors.ImageSharp.Tests.Colors
new Rg32 ( x , y ) . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new Bgra32 ( 2 5 , 0 , 0 , 2 5 5 ) ) ;
new Rg32 ( x , y ) . ToArgb32 ( ref argb ) ;
Assert . Equal ( argb , new Argb32 ( 2 5 , 0 , 0 , 2 5 5 ) ) ;
}
[Fact]
@ -869,6 +1017,7 @@ namespace SixLabors.ImageSharp.Tests.Colors
var rgba = default ( Rgba32 ) ;
var bgr = default ( Bgr24 ) ;
var bgra = default ( Bgra32 ) ;
var argb = default ( Argb32 ) ;
new Rgba1010102 ( x , y , z , w ) . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new Rgb24 ( 2 5 , 0 , 1 2 8 ) ) ;
@ -883,10 +1032,20 @@ namespace SixLabors.ImageSharp.Tests.Colors
Assert . Equal ( bgra , new Bgra32 ( 2 5 , 0 , 1 2 8 , 0 ) ) ;
// Alpha component accuracy will be awful.
var r = new Rgba1010102 ( ) ;
var r = default ( Rgba1010102 ) ;
r . PackFromRgba32 ( new Rgba32 ( 2 5 , 0 , 1 2 8 , 0 ) ) ;
r . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new Rgba32 ( 2 5 , 0 , 1 2 8 , 0 ) ) ;
r = default ( Rgba1010102 ) ;
r . PackFromBgra32 ( new Bgra32 ( 2 5 , 0 , 1 2 8 , 0 ) ) ;
r . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new Bgra32 ( 2 5 , 0 , 1 2 8 , 0 ) ) ;
r = default ( Rgba1010102 ) ;
r . PackFromArgb32 ( new Argb32 ( 2 5 , 0 , 1 2 8 , 0 ) ) ;
r . ToArgb32 ( ref argb ) ;
Assert . Equal ( argb , new Argb32 ( 2 5 , 0 , 1 2 8 , 0 ) ) ;
}
[Fact]
@ -932,18 +1091,40 @@ namespace SixLabors.ImageSharp.Tests.Colors
var rgba = default ( Rgba32 ) ;
var bgr = default ( Bgr24 ) ;
var bgra = default ( Bgra32 ) ;
var argb = default ( Argb32 ) ;
rgba32 . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new Rgb24 ( 0x1a , 0 , 0x80 ) ) ;
rgba32 . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new Rgba32 ( 0x1a , 0 , 0x80 , 0 ) ) ;
Assert . Equal ( rgba , rgba . ToRgba32 ( ) ) ;
rgba32 . ToBgr24 ( ref bgr ) ;
Assert . Equal ( bgr , new Bgr24 ( 0x1a , 0 , 0x80 ) ) ;
rgba32 . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new Bgra32 ( 0x1a , 0 , 0x80 , 0 ) ) ;
Assert . Equal ( bgra , bgra . ToBgra32 ( ) ) ;
rgba32 . ToArgb32 ( ref argb ) ;
Assert . Equal ( argb , new Argb32 ( 0x1a , 0 , 0x80 , 0 ) ) ;
Assert . Equal ( argb , argb . ToArgb32 ( ) ) ;
var r = default ( Rgba32 ) ;
r . PackFromRgba32 ( new Rgba32 ( 0x1a , 0 , 0x80 , 0 ) ) ;
r . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new Rgba32 ( 0x1a , 0 , 0x80 , 0 ) ) ;
r = default ( Rgba32 ) ;
r . PackFromBgra32 ( new Bgra32 ( 0x1a , 0 , 0x80 , 0 ) ) ;
r . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new Bgra32 ( 0x1a , 0 , 0x80 , 0 ) ) ;
r = default ( Rgba32 ) ;
r . PackFromArgb32 ( new Argb32 ( 0x1a , 0 , 0x80 , 0 ) ) ;
r . ToArgb32 ( ref argb ) ;
Assert . Equal ( argb , new Argb32 ( 0x1a , 0 , 0x80 , 0 ) ) ;
}
[Fact]
@ -1008,7 +1189,7 @@ namespace SixLabors.ImageSharp.Tests.Colors
new Rgba64 ( x , y , z , w ) . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new Bgra32 ( 2 0 , 3 8 , 7 6 , 1 1 5 ) ) ;
var r = new Rgba64 ( ) ;
var r = default ( Rgba64 ) ;
r . PackFromRgba32 ( new Rgba32 ( 2 0 , 3 8 , 7 6 , 1 1 5 ) ) ;
r . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new Rgba32 ( 2 0 , 3 8 , 7 6 , 1 1 5 ) ) ;
@ -1075,7 +1256,7 @@ namespace SixLabors.ImageSharp.Tests.Colors
new Short2 ( x , y ) . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new Bgra32 ( 1 2 8 , 1 2 7 , 0 , 2 5 5 ) ) ;
var r = new Short2 ( ) ;
var r = default ( Short2 ) ;
r . PackFromRgba32 ( new Rgba32 ( 2 0 , 3 8 , 0 , 2 5 5 ) ) ;
r . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new Rgba32 ( 2 0 , 3 8 , 0 , 2 5 5 ) ) ;
@ -1131,6 +1312,7 @@ namespace SixLabors.ImageSharp.Tests.Colors
var rgba = default ( Rgba32 ) ;
var bgr = default ( Bgr24 ) ;
var bgra = default ( Bgra32 ) ;
var argb = default ( Argb32 ) ;
new Short4 ( x , y , z , w ) . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new Rgb24 ( 1 7 2 , 1 7 7 , 2 4 3 ) ) ;
@ -1144,10 +1326,23 @@ namespace SixLabors.ImageSharp.Tests.Colors
new Short4 ( x , y , z , w ) . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new Bgra32 ( 1 7 2 , 1 7 7 , 2 4 3 , 1 2 8 ) ) ;
var r = new Short4 ( ) ;
new Short4 ( x , y , z , w ) . ToArgb32 ( ref argb ) ;
Assert . Equal ( argb , new Argb32 ( 1 7 2 , 1 7 7 , 2 4 3 , 1 2 8 ) ) ;
var r = default ( Short4 ) ;
r . PackFromRgba32 ( new Rgba32 ( 2 0 , 3 8 , 0 , 2 5 5 ) ) ;
r . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new Rgba32 ( 2 0 , 3 8 , 0 , 2 5 5 ) ) ;
r = default ( Short4 ) ;
r . PackFromBgra32 ( new Bgra32 ( 2 0 , 3 8 , 0 , 2 5 5 ) ) ;
r . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new Bgra32 ( 2 0 , 3 8 , 0 , 2 5 5 ) ) ;
r = default ( Short4 ) ;
r . PackFromArgb32 ( new Argb32 ( 2 0 , 3 8 , 0 , 2 5 5 ) ) ;
r . ToArgb32 ( ref argb ) ;
Assert . Equal ( argb , new Argb32 ( 2 0 , 3 8 , 0 , 2 5 5 ) ) ;
}
// Comparison helpers with small tolerance to allow for floating point rounding during computations.