@ -2,7 +2,6 @@
// Licensed under the Apache License, Version 2.0.
// Licensed under the Apache License, Version 2.0.
using System ;
using System ;
using System.Diagnostics ;
using System.Numerics ;
using System.Numerics ;
using SixLabors.ImageSharp.PixelFormats ;
using SixLabors.ImageSharp.PixelFormats ;
using Xunit ;
using Xunit ;
@ -34,29 +33,29 @@ namespace SixLabors.ImageSharp.Tests.Colors
Assert . Equal ( 2 6 , new Alpha8 ( 0.1F ) . PackedValue ) ;
Assert . Equal ( 2 6 , new Alpha8 ( 0.1F ) . PackedValue ) ;
// Test ordering
// Test ordering
Vector4 vector = new Alpha8 ( . 5F ) . ToVector4 ( ) ;
var vector = new Alpha8 ( . 5F ) . ToVector4 ( ) ;
Assert . Equal ( 0 , vector . X ) ;
Assert . Equal ( 0 , vector . X ) ;
Assert . Equal ( 0 , vector . Y ) ;
Assert . Equal ( 0 , vector . Y ) ;
Assert . Equal ( 0 , vector . Z ) ;
Assert . Equal ( 0 , vector . Z ) ;
Assert . Equal ( . 5F , vector . W , 2 ) ;
Assert . Equal ( . 5F , vector . W , 2 ) ;
byte [ ] rgb = new byte [ 3 ] ;
var rgb = default ( Rgb24 ) ;
byte [ ] rgba = new byte [ 4 ] ;
var rgba = default ( Rgba32 ) ;
byte [ ] bgr = new byte [ 3 ] ;
var bgr = default ( Bgr24 ) ;
byte [ ] bgra = new byte [ 4 ] ;
var bgra = default ( Bgra32 ) ;
new Alpha8 ( . 5F ) . ToXyzBytes ( rgb , 0 ) ;
new Alpha8 ( . 5F ) . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new byte [ ] { 0 , 0 , 0 } ) ;
Assert . Equal ( rgb , new Rgb24 ( 0 , 0 , 0 ) ) ;
new Alpha8 ( . 5F ) . ToXyzwBytes ( rgba , 0 ) ;
new Alpha8 ( . 5F ) . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new byte [ ] { 0 , 0 , 0 , 1 2 8 } ) ;
Assert . Equal ( rgba , new Rgba32 ( 0 , 0 , 0 , 1 2 8 ) ) ;
new Alpha8 ( . 5F ) . ToZyxBytes ( bgr , 0 ) ;
new Alpha8 ( . 5F ) . ToBgr24 ( ref bgr ) ;
Assert . Equal ( bgr , new byte [ ] { 0 , 0 , 0 } ) ;
Assert . Equal ( bgr , new Bgr24 ( 0 , 0 , 0 ) ) ;
new Alpha8 ( . 5F ) . ToZyxwBytes ( bgra , 0 ) ;
new Alpha8 ( . 5F ) . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new byte [ ] { 0 , 0 , 0 , 1 2 8 } ) ;
Assert . Equal ( bgra , new Bgra32 ( 0 , 0 , 0 , 1 2 8 ) ) ;
}
}
[Fact]
[Fact]
@ -82,26 +81,26 @@ namespace SixLabors.ImageSharp.Tests.Colors
float y = - 0.3f ;
float y = - 0.3f ;
float z = + 0.5f ;
float z = + 0.5f ;
float w = - 0.7f ;
float w = - 0.7f ;
Argb32 argb = new Argb32 ( x , y , z , w ) ;
var argb = new Argb32 ( x , y , z , w ) ;
Assert . Equal ( 0x001a0080 u , argb . PackedValue ) ;
Assert . Equal ( 0x001a0080 u , argb . PackedValue ) ;
// Test ordering
// Test ordering
byte [ ] rgb = new byte [ 3 ] ;
var rgb = default ( Rgb24 ) ;
byte [ ] rgba = new byte [ 4 ] ;
var rgba = default ( Rgba32 ) ;
byte [ ] bgr = new byte [ 3 ] ;
var bgr = default ( Bgr24 ) ;
byte [ ] bgra = new byte [ 4 ] ;
var bgra = default ( Bgra32 ) ;
argb . ToXyzBytes ( rgb , 0 ) ;
argb . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new byte [ ] { 0x1a , 0 , 0x80 } ) ;
Assert . Equal ( rgb , new Rgb24 ( 0x1a , 0 , 0x80 ) ) ;
argb . ToXyzwBytes ( rgba , 0 ) ;
argb . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new byte [ ] { 0x1a , 0 , 0x80 , 0 } ) ;
Assert . Equal ( rgba , new Rgba32 ( 0x1a , 0 , 0x80 , 0 ) ) ;
argb . ToZyxBytes ( bgr , 0 ) ;
argb . ToBgr24 ( ref bgr ) ;
Assert . Equal ( bgr , new byte [ ] { 0x80 , 0 , 0x1a } ) ;
Assert . Equal ( bgr , new Bgr24 ( 0x1a , 0 , 0x80 ) ) ;
argb . ToZyxwBytes ( bgra , 0 ) ;
argb . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new byte [ ] { 0x80 , 0 , 0x1a , 0 } ) ;
Assert . Equal ( bgra , new Bgra32 ( 0x1a , 0 , 0x80 , 0 ) ) ;
}
}
[Fact]
[Fact]
@ -133,22 +132,22 @@ namespace SixLabors.ImageSharp.Tests.Colors
Assert . Equal ( 6 1 6 0 , new Bgr565 ( x , y , z ) . PackedValue ) ;
Assert . Equal ( 6 1 6 0 , new Bgr565 ( x , y , z ) . PackedValue ) ;
// Test ordering
// Test ordering
byte [ ] rgb = new byte [ 3 ] ;
var rgb = default ( Rgb24 ) ;
byte [ ] rgba = new byte [ 4 ] ;
var rgba = default ( Rgba32 ) ;
byte [ ] bgr = new byte [ 3 ] ;
var bgr = default ( Bgr24 ) ;
byte [ ] bgra = new byte [ 4 ] ;
var bgra = default ( Bgra32 ) ;
new Bgr565 ( x , y , z ) . ToXyzBytes ( rgb , 0 ) ;
new Bgr565 ( x , y , z ) . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new byte [ ] { 2 5 , 0 , 1 3 2 } ) ;
Assert . Equal ( rgb , new Rgb24 ( 2 5 , 0 , 1 3 2 ) ) ;
new Bgr565 ( x , y , z ) . ToXyzwBytes ( rgba , 0 ) ;
new Bgr565 ( x , y , z ) . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new byte [ ] { 2 5 , 0 , 1 3 2 , 2 5 5 } ) ;
Assert . Equal ( rgba , new Rgba32 ( 2 5 , 0 , 1 3 2 , 2 5 5 ) ) ;
new Bgr565 ( x , y , z ) . ToZyxBytes ( bgr , 0 ) ;
new Bgr565 ( x , y , z ) . ToBgr24 ( ref bgr ) ;
Assert . Equal ( bgr , new byte [ ] { 1 3 2 , 0 , 2 5 } ) ;
Assert . Equal ( bgr , new Bgr24 ( 2 5 , 0 , 1 3 2 ) ) ;
new Bgr565 ( x , y , z ) . ToZyxwBytes ( bgra , 0 ) ;
new Bgr565 ( x , y , z ) . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new byte [ ] { 1 3 2 , 0 , 2 5 , 2 5 5 } ) ;
Assert . Equal ( bgra , new Bgra32 ( 2 5 , 0 , 1 3 2 , 2 5 5 ) ) ;
}
}
[Fact]
[Fact]
@ -183,22 +182,22 @@ namespace SixLabors.ImageSharp.Tests.Colors
Assert . Equal ( 5 2 0 , new Bgra4444 ( x , y , z , w ) . PackedValue ) ;
Assert . Equal ( 5 2 0 , new Bgra4444 ( x , y , z , w ) . PackedValue ) ;
// Test ordering
// Test ordering
byte [ ] rgb = new byte [ 3 ] ;
var rgb = default ( Rgb24 ) ;
byte [ ] rgba = new byte [ 4 ] ;
var rgba = default ( Rgba32 ) ;
byte [ ] bgr = new byte [ 3 ] ;
var bgr = default ( Bgr24 ) ;
byte [ ] bgra = new byte [ 4 ] ;
var bgra = default ( Bgra32 ) ;
new Bgra4444 ( x , y , z , w ) . ToXyzBytes ( rgb , 0 ) ;
new Bgra4444 ( x , y , z , w ) . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new byte [ ] { 3 4 , 0 , 1 3 6 } ) ;
Assert . Equal ( rgb , new Rgb24 ( 3 4 , 0 , 1 3 6 ) ) ;
new Bgra4444 ( x , y , z , w ) . ToXyzwBytes ( rgba , 0 ) ;
new Bgra4444 ( x , y , z , w ) . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new byte [ ] { 3 4 , 0 , 1 3 6 , 0 } ) ;
Assert . Equal ( rgba , new Rgba32 ( 3 4 , 0 , 1 3 6 , 0 ) ) ;
new Bgra4444 ( x , y , z , w ) . ToZyxBytes ( bgr , 0 ) ;
new Bgra4444 ( x , y , z , w ) . ToBgr24 ( ref bgr ) ;
Assert . Equal ( bgr , new byte [ ] { 1 3 6 , 0 , 3 4 } ) ;
Assert . Equal ( bgr , new Bgr24 ( 3 4 , 0 , 1 3 6 ) ) ;
new Bgra4444 ( x , y , z , w ) . ToZyxwBytes ( bgra , 0 ) ;
new Bgra4444 ( x , y , z , w ) . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new byte [ ] { 1 3 6 , 0 , 3 4 , 0 } ) ;
Assert . Equal ( bgra , new Bgra32 ( 3 4 , 0 , 1 3 6 , 0 ) ) ;
}
}
[Fact]
[Fact]
@ -229,22 +228,22 @@ namespace SixLabors.ImageSharp.Tests.Colors
Assert . Equal ( 3 0 8 8 , new Bgra5551 ( x , y , z , w ) . PackedValue ) ;
Assert . Equal ( 3 0 8 8 , new Bgra5551 ( x , y , z , w ) . PackedValue ) ;
// Test ordering
// Test ordering
byte [ ] rgb = new byte [ 3 ] ;
var rgb = default ( Rgb24 ) ;
byte [ ] rgba = new byte [ 4 ] ;
var rgba = default ( Rgba32 ) ;
byte [ ] bgr = new byte [ 3 ] ;
var bgr = default ( Bgr24 ) ;
byte [ ] bgra = new byte [ 4 ] ;
var bgra = default ( Bgra32 ) ;
new Bgra5551 ( x , y , z , w ) . ToXyzBytes ( rgb , 0 ) ;
new Bgra5551 ( x , y , z , w ) . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new byte [ ] { 2 4 , 0 , 1 3 1 } ) ;
Assert . Equal ( rgb , new Rgb24 ( 2 4 , 0 , 1 3 1 ) ) ;
new Bgra5551 ( x , y , z , w ) . ToXyzwBytes ( rgba , 0 ) ;
new Bgra5551 ( x , y , z , w ) . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new byte [ ] { 2 4 , 0 , 1 3 1 , 0 } ) ;
Assert . Equal ( rgba , new Rgba32 ( 2 4 , 0 , 1 3 1 , 0 ) ) ;
new Bgra5551 ( x , y , z , w ) . ToZyxBytes ( bgr , 0 ) ;
new Bgra5551 ( x , y , z , w ) . ToBgr24 ( ref bgr ) ;
Assert . Equal ( bgr , new byte [ ] { 1 3 1 , 0 , 2 4 } ) ;
Assert . Equal ( bgr , new Bgr24 ( 2 4 , 0 , 1 3 1 ) ) ;
new Bgra5551 ( x , y , z , w ) . ToZyxwBytes ( bgra , 0 ) ;
new Bgra5551 ( x , y , z , w ) . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new byte [ ] { 1 3 1 , 0 , 2 4 , 0 } ) ;
Assert . Equal ( bgra , new Bgra32 ( 2 4 , 0 , 1 3 1 , 0 ) ) ;
}
}
[Fact]
[Fact]
@ -280,27 +279,27 @@ namespace SixLabors.ImageSharp.Tests.Colors
Assert . Equal ( ( uint ) 1 2 8 , new Byte4 ( x , y , z , w ) . PackedValue ) ;
Assert . Equal ( ( uint ) 1 2 8 , new Byte4 ( x , y , z , w ) . PackedValue ) ;
// Test ordering
// Test ordering
byte [ ] rgb = new byte [ 3 ] ;
var rgb = default ( Rgb24 ) ;
byte [ ] rgba = new byte [ 4 ] ;
var rgba = default ( Rgba32 ) ;
byte [ ] bgr = new byte [ 3 ] ;
var bgr = default ( Bgr24 ) ;
byte [ ] bgra = new byte [ 4 ] ;
var bgra = default ( Bgra32 ) ;
new Byte4 ( x , y , z , w ) . ToXyzBytes ( rgb , 0 ) ;
new Byte4 ( x , y , z , w ) . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new byte [ ] { 1 2 8 , 0 , 0 } ) ;
Assert . Equal ( rgb , new Rgb24 ( 1 2 8 , 0 , 0 ) ) ;
new Byte4 ( x , y , z , w ) . ToXyzwBytes ( rgba , 0 ) ;
new Byte4 ( x , y , z , w ) . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new byte [ ] { 1 2 8 , 0 , 0 , 0 } ) ;
Assert . Equal ( rgba , new Rgba32 ( 1 2 8 , 0 , 0 , 0 ) ) ;
new Byte4 ( x , y , z , w ) . ToZyxBytes ( bgr , 0 ) ;
new Byte4 ( x , y , z , w ) . ToBgr24 ( ref bgr ) ;
Assert . Equal ( bgr , new byte [ ] { 0 , 0 , 1 2 8 } ) ;
Assert . Equal ( bgr , new Bgr24 ( 1 2 8 , 0 , 0 ) ) ;
new Byte4 ( x , y , z , w ) . ToZyxwBytes ( bgra , 0 ) ;
new Byte4 ( x , y , z , w ) . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new byte [ ] { 0 , 0 , 1 2 8 , 0 } ) ;
Assert . Equal ( bgra , new Bgra32 ( 1 2 8 , 0 , 0 , 0 ) ) ;
Byte4 r = new Byte4 ( ) ;
var r = new Byte4 ( ) ;
r . PackFromRgba32 ( new Rgba32 ( 2 0 , 3 8 , 0 , 2 5 5 ) ) ;
r . PackFromRgba32 ( new Rgba32 ( 2 0 , 3 8 , 0 , 2 5 5 ) ) ;
r . ToXyzwBytes ( rgba , 0 ) ;
r . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new byte [ ] { 2 0 , 3 8 , 0 , 2 5 5 } ) ;
Assert . Equal ( rgba , new Rgba32 ( 2 0 , 3 8 , 0 , 2 5 5 ) ) ;
}
}
[Fact]
[Fact]
@ -319,22 +318,22 @@ namespace SixLabors.ImageSharp.Tests.Colors
float x = . 5F ;
float x = . 5F ;
Assert . True ( Equal ( new Vector4 ( x , 0 , 0 , 1 ) , new HalfSingle ( x ) . ToVector4 ( ) ) ) ;
Assert . True ( Equal ( new Vector4 ( x , 0 , 0 , 1 ) , new HalfSingle ( x ) . ToVector4 ( ) ) ) ;
byte [ ] rgb = new byte [ 3 ] ;
var rgb = default ( Rgb24 ) ;
byte [ ] rgba = new byte [ 4 ] ;
var rgba = default ( Rgba32 ) ;
byte [ ] bgr = new byte [ 3 ] ;
var bgr = default ( Bgr24 ) ;
byte [ ] bgra = new byte [ 4 ] ;
var bgra = default ( Bgra32 ) ;
new HalfSingle ( x ) . ToXyzBytes ( rgb , 0 ) ;
new HalfSingle ( x ) . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new byte [ ] { 1 2 8 , 0 , 0 } ) ;
Assert . Equal ( rgb , new Rgb24 ( 1 2 8 , 0 , 0 ) ) ;
new HalfSingle ( x ) . ToXyzwBytes ( rgba , 0 ) ;
new HalfSingle ( x ) . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new byte [ ] { 1 2 8 , 0 , 0 , 2 5 5 } ) ;
Assert . Equal ( rgba , new Rgba32 ( 1 2 8 , 0 , 0 , 2 5 5 ) ) ;
new HalfSingle ( x ) . ToZyxBytes ( bgr , 0 ) ;
new HalfSingle ( x ) . ToBgr24 ( ref bgr ) ;
Assert . Equal ( bgr , new byte [ ] { 0 , 0 , 1 2 8 } ) ;
Assert . Equal ( bgr , new Bgr24 ( 1 2 8 , 0 , 0 ) ) ;
new HalfSingle ( x ) . ToZyxwBytes ( bgra , 0 ) ;
new HalfSingle ( x ) . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new byte [ ] { 0 , 0 , 1 2 8 , 2 5 5 } ) ;
Assert . Equal ( bgra , new Bgra32 ( 1 2 8 , 0 , 0 , 2 5 5 ) ) ;
}
}
[Fact]
[Fact]
@ -356,22 +355,22 @@ namespace SixLabors.ImageSharp.Tests.Colors
float y = . 2 5F ;
float y = . 2 5F ;
Assert . True ( Equal ( new Vector4 ( x , y , 0 , 1 ) , new HalfVector2 ( x , y ) . ToVector4 ( ) ) ) ;
Assert . True ( Equal ( new Vector4 ( x , y , 0 , 1 ) , new HalfVector2 ( x , y ) . ToVector4 ( ) ) ) ;
byte [ ] rgb = new byte [ 3 ] ;
var rgb = default ( Rgb24 ) ;
byte [ ] rgba = new byte [ 4 ] ;
var rgba = default ( Rgba32 ) ;
byte [ ] bgr = new byte [ 3 ] ;
var bgr = default ( Bgr24 ) ;
byte [ ] bgra = new byte [ 4 ] ;
var bgra = default ( Bgra32 ) ;
new HalfVector2 ( x , y ) . ToXyzBytes ( rgb , 0 ) ;
new HalfVector2 ( x , y ) . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new byte [ ] { 1 2 8 , 6 4 , 0 } ) ;
Assert . Equal ( rgb , new Rgb24 ( 1 2 8 , 6 4 , 0 ) ) ;
new HalfVector2 ( x , y ) . ToXyzwBytes ( rgba , 0 ) ;
new HalfVector2 ( x , y ) . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new byte [ ] { 1 2 8 , 6 4 , 0 , 2 5 5 } ) ;
Assert . Equal ( rgba , new Rgba32 ( 1 2 8 , 6 4 , 0 , 2 5 5 ) ) ;
new HalfVector2 ( x , y ) . ToZyxBytes ( bgr , 0 ) ;
new HalfVector2 ( x , y ) . ToBgr24 ( ref bgr ) ;
Assert . Equal ( bgr , new byte [ ] { 0 , 6 4 , 1 2 8 } ) ;
Assert . Equal ( bgr , new Bgr24 ( 1 2 8 , 6 4 , 0 ) ) ;
new HalfVector2 ( x , y ) . ToZyxwBytes ( bgra , 0 ) ;
new HalfVector2 ( x , y ) . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new byte [ ] { 0 , 6 4 , 1 2 8 , 2 5 5 } ) ;
Assert . Equal ( bgra , new Bgra32 ( 1 2 8 , 6 4 , 0 , 2 5 5 ) ) ;
}
}
[Fact]
[Fact]
@ -402,22 +401,22 @@ namespace SixLabors.ImageSharp.Tests.Colors
float z = . 7 5F ;
float z = . 7 5F ;
float w = 1F ;
float w = 1F ;
byte [ ] rgb = new byte [ 3 ] ;
var rgb = default ( Rgb24 ) ;
byte [ ] rgba = new byte [ 4 ] ;
var rgba = default ( Rgba32 ) ;
byte [ ] bgr = new byte [ 3 ] ;
var bgr = default ( Bgr24 ) ;
byte [ ] bgra = new byte [ 4 ] ;
var bgra = default ( Bgra32 ) ;
new HalfVector4 ( x , y , z , w ) . ToXyzBytes ( rgb , 0 ) ;
new HalfVector4 ( x , y , z , w ) . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new byte [ ] { 6 4 , 1 2 8 , 1 9 1 } ) ;
Assert . Equal ( rgb , new Rgb24 ( 6 4 , 1 2 8 , 1 9 1 ) ) ;
new HalfVector4 ( x , y , z , w ) . ToXyzwBytes ( rgba , 0 ) ;
new HalfVector4 ( x , y , z , w ) . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new byte [ ] { 6 4 , 1 2 8 , 1 9 1 , 2 5 5 } ) ;
Assert . Equal ( rgba , new Rgba32 ( 6 4 , 1 2 8 , 1 9 1 , 2 5 5 ) ) ;
new HalfVector4 ( x , y , z , w ) . ToZyxBytes ( bgr , 0 ) ;
new HalfVector4 ( x , y , z , w ) . ToBgr24 ( ref bgr ) ;
Assert . Equal ( bgr , new byte [ ] { 1 9 1 , 1 2 8 , 6 4 } ) ;
Assert . Equal ( bgr , new Bgr24 ( 6 4 , 1 2 8 , 1 9 1 ) ) ;
new HalfVector4 ( x , y , z , w ) . ToZyxwBytes ( bgra , 0 ) ;
new HalfVector4 ( x , y , z , w ) . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new byte [ ] { 1 9 1 , 1 2 8 , 6 4 , 2 5 5 } ) ;
Assert . Equal ( bgra , new Bgra32 ( 6 4 , 1 2 8 , 1 9 1 , 2 5 5 ) ) ;
}
}
[Fact]
[Fact]
@ -443,26 +442,26 @@ namespace SixLabors.ImageSharp.Tests.Colors
float x = 0.1f ;
float x = 0.1f ;
float y = - 0.3f ;
float y = - 0.3f ;
Assert . Equal ( 0xda0d , new NormalizedByte2 ( x , y ) . PackedValue ) ;
Assert . Equal ( 0xda0d , new NormalizedByte2 ( x , y ) . PackedValue ) ;
NormalizedByte2 n = new NormalizedByte2 ( ) ;
var n = new NormalizedByte2 ( ) ;
n . PackFromRgba32 ( new Rgba32 ( 1 4 1 , 9 0 , 0 , 0 ) ) ;
n . PackFromRgba32 ( new Rgba32 ( 1 4 1 , 9 0 , 0 , 0 ) ) ;
Assert . Equal ( 0xda0d , n . PackedValue ) ;
Assert . Equal ( 0xda0d , n . PackedValue ) ;
byte [ ] rgb = new byte [ 3 ] ;
var rgb = default ( Rgb24 ) ;
byte [ ] rgba = new byte [ 4 ] ;
var rgba = default ( Rgba32 ) ;
byte [ ] bgr = new byte [ 3 ] ;
var bgr = default ( Bgr24 ) ;
byte [ ] bgra = new byte [ 4 ] ;
var bgra = default ( Bgra32 ) ;
new NormalizedByte2 ( x , y ) . ToXyzBytes ( rgb , 0 ) ;
new NormalizedByte2 ( x , y ) . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new byte [ ] { 1 4 1 , 9 0 , 0 } ) ;
Assert . Equal ( rgb , new Rgb24 ( 1 4 1 , 9 0 , 0 ) ) ;
new NormalizedByte2 ( x , y ) . ToXyzwBytes ( rgba , 0 ) ;
new NormalizedByte2 ( x , y ) . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new byte [ ] { 1 4 1 , 9 0 , 0 , 2 5 5 } ) ;
Assert . Equal ( rgba , new Rgba32 ( 1 4 1 , 9 0 , 0 , 2 5 5 ) ) ;
new NormalizedByte2 ( x , y ) . ToZyxBytes ( bgr , 0 ) ;
new NormalizedByte2 ( x , y ) . ToBgr24 ( ref bgr ) ;
Assert . Equal ( bgr , new byte [ ] { 0 , 9 0 , 1 4 1 } ) ;
Assert . Equal ( bgr , new Bgr24 ( 1 4 1 , 9 0 , 0 ) ) ;
new NormalizedByte2 ( x , y ) . ToZyxwBytes ( bgra , 0 ) ;
new NormalizedByte2 ( x , y ) . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new byte [ ] { 0 , 9 0 , 1 4 1 , 2 5 5 } ) ;
Assert . Equal ( bgra , new Bgra32 ( 1 4 1 , 9 0 , 0 , 2 5 5 ) ) ;
}
}
[Fact]
[Fact]
@ -486,38 +485,38 @@ namespace SixLabors.ImageSharp.Tests.Colors
float z = 0.5f ;
float z = 0.5f ;
float w = - 0.7f ;
float w = - 0.7f ;
Assert . Equal ( 0xA740DA0D , new NormalizedByte4 ( x , y , z , w ) . PackedValue ) ;
Assert . Equal ( 0xA740DA0D , new NormalizedByte4 ( x , y , z , w ) . PackedValue ) ;
NormalizedByte4 n = new NormalizedByte4 ( ) ;
var n = new NormalizedByte4 ( ) ;
n . PackFromRgba32 ( new Rgba32 ( 1 4 1 , 9 0 , 1 9 2 , 3 9 ) ) ;
n . PackFromRgba32 ( new Rgba32 ( 1 4 1 , 9 0 , 1 9 2 , 3 9 ) ) ;
Assert . Equal ( 0xA740DA0D , n . PackedValue ) ;
Assert . Equal ( 0xA740DA0D , n . PackedValue ) ;
Assert . Equal ( ( uint ) 9 5 8 7 9 6 5 4 4 , new NormalizedByte4 ( 0.0008f , 0.15f , 0.30f , 0.45f ) . PackedValue ) ;
Assert . Equal ( ( uint ) 9 5 8 7 9 6 5 4 4 , new NormalizedByte4 ( 0.0008f , 0.15f , 0.30f , 0.45f ) . PackedValue ) ;
byte [ ] rgb = new byte [ 3 ] ;
var rgb = default ( Rgb24 ) ;
byte [ ] rgba = new byte [ 4 ] ;
var rgba = default ( Rgba32 ) ;
byte [ ] bgr = new byte [ 3 ] ;
var bgr = default ( Bgr24 ) ;
byte [ ] bgra = new byte [ 4 ] ;
var bgra = default ( Bgra32 ) ;
new NormalizedByte4 ( x , y , z , w ) . ToXyzBytes ( rgb , 0 ) ;
new NormalizedByte4 ( x , y , z , w ) . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new byte [ ] { 1 4 1 , 9 0 , 1 9 2 } ) ;
Assert . Equal ( rgb , new Rgb24 ( 1 4 1 , 9 0 , 1 9 2 ) ) ;
new NormalizedByte4 ( x , y , z , w ) . ToXyzwBytes ( rgba , 0 ) ;
new NormalizedByte4 ( x , y , z , w ) . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new byte [ ] { 1 4 1 , 9 0 , 1 9 2 , 3 9 } ) ;
Assert . Equal ( rgba , new Rgba32 ( 1 4 1 , 9 0 , 1 9 2 , 3 9 ) ) ;
new NormalizedByte4 ( x , y , z , w ) . ToZyxBytes ( bgr , 0 ) ;
new NormalizedByte4 ( x , y , z , w ) . ToBgr24 ( ref bgr ) ;
Assert . Equal ( bgr , new byte [ ] { 1 9 2 , 9 0 , 1 4 1 } ) ;
Assert . Equal ( bgr , new Bgr24 ( 1 4 1 , 9 0 , 1 9 2 ) ) ;
new NormalizedByte4 ( x , y , z , w ) . ToZyxwBytes ( bgra , 0 ) ;
new NormalizedByte4 ( x , y , z , w ) . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new byte [ ] { 1 9 2 , 9 0 , 1 4 1 , 3 9 } ) ;
Assert . Equal ( bgra , new Bgra32 ( 1 4 1 , 9 0 , 1 9 2 , 3 9 ) ) ;
// http://community.monogame.net/t/normalizedbyte4-texture2d-gives-different-results-from-xna/8012/8
// http://community.monogame.net/t/normalizedbyte4-texture2d-gives-different-results-from-xna/8012/8
NormalizedByte4 r = new NormalizedByte4 ( ) ;
var r = new NormalizedByte4 ( ) ;
r . PackFromRgba32 ( new Rgba32 ( 9 , 1 1 5 , 2 0 2 , 1 2 7 ) ) ;
r . PackFromRgba32 ( new Rgba32 ( 9 , 1 1 5 , 2 0 2 , 1 2 7 ) ) ;
r . ToXyzwBytes ( rgba , 0 ) ;
r . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new byte [ ] { 9 , 1 1 5 , 2 0 2 , 1 2 7 } ) ;
Assert . Equal ( rgba , new Rgba32 ( 9 , 1 1 5 , 2 0 2 , 1 2 7 ) ) ;
r . PackedValue = 0xff4af389 ;
r . PackedValue = 0xff4af389 ;
r . ToXyzwBytes ( rgba , 0 ) ;
r . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new byte [ ] { 9 , 1 1 5 , 2 0 2 , 1 2 7 } ) ;
Assert . Equal ( rgba , new Rgba32 ( 9 , 1 1 5 , 2 0 2 , 1 2 7 ) ) ;
}
}
[Fact]
[Fact]
@ -544,30 +543,30 @@ namespace SixLabors.ImageSharp.Tests.Colors
y = - 0.3f ;
y = - 0.3f ;
Assert . Equal ( 3 6 5 0 7 5 1 6 9 3 , new NormalizedShort2 ( x , y ) . PackedValue ) ;
Assert . Equal ( 3 6 5 0 7 5 1 6 9 3 , new NormalizedShort2 ( x , y ) . PackedValue ) ;
byte [ ] rgb = new byte [ 3 ] ;
var rgb = default ( Rgb24 ) ;
byte [ ] rgba = new byte [ 4 ] ;
var rgba = default ( Rgba32 ) ;
byte [ ] bgr = new byte [ 3 ] ;
var bgr = default ( Bgr24 ) ;
byte [ ] bgra = new byte [ 4 ] ;
var bgra = default ( Bgra32 ) ;
NormalizedShort2 n = new NormalizedShort2 ( ) ;
var n = new NormalizedShort2 ( ) ;
n . PackFromRgba32 ( new Rgba32 ( 1 4 1 , 9 0 , 0 , 0 ) ) ;
n . PackFromRgba32 ( new Rgba32 ( 1 4 1 , 9 0 , 0 , 0 ) ) ;
n . ToXyzBytes ( rgb , 0 ) ;
n . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new byte [ ] { 1 4 1 , 9 0 , 0 } ) ;
Assert . Equal ( rgb , new Rgb24 ( 1 4 1 , 9 0 , 0 ) ) ;
// TODO: I don't think this can ever pass since the bytes are already truncated.
// TODO: I don't think this can ever pass since the bytes are already truncated.
// Assert.Equal(3650751693, n.PackedValue);
// Assert.Equal(3650751693, n.PackedValue);
new NormalizedShort2 ( x , y ) . ToXyzBytes ( rgb , 0 ) ;
new NormalizedShort2 ( x , y ) . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new byte [ ] { 1 4 1 , 9 0 , 0 } ) ;
Assert . Equal ( rgb , new Rgb24 ( 1 4 1 , 9 0 , 0 ) ) ;
new NormalizedShort2 ( x , y ) . ToXyzwBytes ( rgba , 0 ) ;
new NormalizedShort2 ( x , y ) . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new byte [ ] { 1 4 1 , 9 0 , 0 , 2 5 5 } ) ;
Assert . Equal ( rgba , new Rgba32 ( 1 4 1 , 9 0 , 0 , 2 5 5 ) ) ;
new NormalizedShort2 ( x , y ) . ToZyxBytes ( bgr , 0 ) ;
new NormalizedShort2 ( x , y ) . ToBgr24 ( ref bgr ) ;
Assert . Equal ( bgr , new byte [ ] { 0 , 9 0 , 1 4 1 } ) ;
Assert . Equal ( bgr , new Bgr24 ( 1 4 1 , 9 0 , 0 ) ) ;
new NormalizedShort2 ( x , y ) . ToZyxwBytes ( bgra , 0 ) ;
new NormalizedShort2 ( x , y ) . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new byte [ ] { 0 , 9 0 , 1 4 1 , 2 5 5 } ) ;
Assert . Equal ( bgra , new Bgra32 ( 1 4 1 , 9 0 , 0 , 2 5 5 ) ) ;
}
}
[Fact]
[Fact]
@ -593,27 +592,27 @@ namespace SixLabors.ImageSharp.Tests.Colors
Assert . Equal ( 0xa6674000d99a0ccd , new NormalizedShort4 ( x , y , z , w ) . PackedValue ) ;
Assert . Equal ( 0xa6674000d99a0ccd , new NormalizedShort4 ( x , y , z , w ) . PackedValue ) ;
Assert . Equal ( ( ulong ) 4 1 5 0 3 9 0 7 5 1 4 4 9 2 5 1 8 6 6 , new NormalizedShort4 ( 0.0008f , 0.15f , 0.30f , 0.45f ) . PackedValue ) ;
Assert . Equal ( ( ulong ) 4 1 5 0 3 9 0 7 5 1 4 4 9 2 5 1 8 6 6 , new NormalizedShort4 ( 0.0008f , 0.15f , 0.30f , 0.45f ) . PackedValue ) ;
byte [ ] rgb = new byte [ 3 ] ;
var rgb = default ( Rgb24 ) ;
byte [ ] rgba = new byte [ 4 ] ;
var rgba = default ( Rgba32 ) ;
byte [ ] bgr = new byte [ 3 ] ;
var bgr = default ( Bgr24 ) ;
byte [ ] bgra = new byte [ 4 ] ;
var bgra = default ( Bgra32 ) ;
new NormalizedShort4 ( x , y , z , w ) . ToXyzBytes ( rgb , 0 ) ;
new NormalizedShort4 ( x , y , z , w ) . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new byte [ ] { 1 4 1 , 9 0 , 1 9 2 } ) ;
Assert . Equal ( rgb , new Rgb24 ( 1 4 1 , 9 0 , 1 9 2 ) ) ;
new NormalizedShort4 ( x , y , z , w ) . ToXyzwBytes ( rgba , 0 ) ;
new NormalizedShort4 ( x , y , z , w ) . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new byte [ ] { 1 4 1 , 9 0 , 1 9 2 , 3 9 } ) ;
Assert . Equal ( rgba , new Rgba32 ( 1 4 1 , 9 0 , 1 9 2 , 3 9 ) ) ;
new NormalizedShort4 ( x , y , z , w ) . ToZyxBytes ( bgr , 0 ) ;
new NormalizedShort4 ( x , y , z , w ) . ToBgr24 ( ref bgr ) ;
Assert . Equal ( bgr , new byte [ ] { 1 9 2 , 9 0 , 1 4 1 } ) ;
Assert . Equal ( bgr , new Bgr24 ( 1 4 1 , 9 0 , 1 9 2 ) ) ;
new NormalizedShort4 ( x , y , z , w ) . ToZyxwBytes ( bgra , 0 ) ;
new NormalizedShort4 ( x , y , z , w ) . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new byte [ ] { 1 9 2 , 9 0 , 1 4 1 , 3 9 } ) ;
Assert . Equal ( bgra , new Bgra32 ( 1 4 1 , 9 0 , 1 9 2 , 3 9 ) ) ;
NormalizedShort4 r = new NormalizedShort4 ( ) ;
var r = new NormalizedShort4 ( ) ;
r . PackFromRgba32 ( new Rgba32 ( 9 , 1 1 5 , 2 0 2 , 1 2 7 ) ) ;
r . PackFromRgba32 ( new Rgba32 ( 9 , 1 1 5 , 2 0 2 , 1 2 7 ) ) ;
r . ToXyzwBytes ( rgba , 0 ) ;
r . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new byte [ ] { 9 , 1 1 5 , 2 0 2 , 1 2 7 } ) ;
Assert . Equal ( rgba , new Rgba32 ( 9 , 1 1 5 , 2 0 2 , 1 2 7 ) ) ;
}
}
[Fact]
[Fact]
@ -640,22 +639,22 @@ namespace SixLabors.ImageSharp.Tests.Colors
Assert . Equal ( ( uint ) 6 5 5 4 , new Rg32 ( x , y ) . PackedValue ) ;
Assert . Equal ( ( uint ) 6 5 5 4 , new Rg32 ( x , y ) . PackedValue ) ;
// Test ordering
// Test ordering
byte [ ] rgb = new byte [ 3 ] ;
var rgb = default ( Rgb24 ) ;
byte [ ] rgba = new byte [ 4 ] ;
var rgba = default ( Rgba32 ) ;
byte [ ] bgr = new byte [ 3 ] ;
var bgr = default ( Bgr24 ) ;
byte [ ] bgra = new byte [ 4 ] ;
var bgra = default ( Bgra32 ) ;
new Rg32 ( x , y ) . ToXyzBytes ( rgb , 0 ) ;
new Rg32 ( x , y ) . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new byte [ ] { 2 5 , 0 , 0 } ) ;
Assert . Equal ( rgb , new Rgb24 ( 2 5 , 0 , 0 ) ) ;
new Rg32 ( x , y ) . ToXyzwBytes ( rgba , 0 ) ;
new Rg32 ( x , y ) . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new byte [ ] { 2 5 , 0 , 0 , 2 5 5 } ) ;
Assert . Equal ( rgba , new Rgba32 ( 2 5 , 0 , 0 , 2 5 5 ) ) ;
new Rg32 ( x , y ) . ToZyxBytes ( bgr , 0 ) ;
new Rg32 ( x , y ) . ToBgr24 ( ref bgr ) ;
Assert . Equal ( bgr , new byte [ ] { 0 , 0 , 2 5 } ) ;
Assert . Equal ( bgr , new Bgr24 ( 2 5 , 0 , 0 ) ) ;
new Rg32 ( x , y ) . ToZyxwBytes ( bgra , 0 ) ;
new Rg32 ( x , y ) . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new byte [ ] { 0 , 0 , 2 5 , 2 5 5 } ) ;
Assert . Equal ( bgra , new Bgra32 ( 2 5 , 0 , 0 , 2 5 5 ) ) ;
}
}
[Fact]
[Fact]
@ -685,28 +684,28 @@ namespace SixLabors.ImageSharp.Tests.Colors
w = - 0.7f ;
w = - 0.7f ;
Assert . Equal ( ( uint ) 5 3 6 8 7 1 0 1 4 , new Rgba1010102 ( x , y , z , w ) . PackedValue ) ;
Assert . Equal ( ( uint ) 5 3 6 8 7 1 0 1 4 , new Rgba1010102 ( x , y , z , w ) . PackedValue ) ;
byte [ ] rgb = new byte [ 3 ] ;
var rgb = default ( Rgb24 ) ;
byte [ ] rgba = new byte [ 4 ] ;
var rgba = default ( Rgba32 ) ;
byte [ ] bgr = new byte [ 3 ] ;
var bgr = default ( Bgr24 ) ;
byte [ ] bgra = new byte [ 4 ] ;
var bgra = default ( Bgra32 ) ;
new Rgba1010102 ( x , y , z , w ) . ToXyzBytes ( rgb , 0 ) ;
new Rgba1010102 ( x , y , z , w ) . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new byte [ ] { 2 5 , 0 , 1 2 8 } ) ;
Assert . Equal ( rgb , new Rgb24 ( 2 5 , 0 , 1 2 8 ) ) ;
new Rgba1010102 ( x , y , z , w ) . ToXyzwBytes ( rgba , 0 ) ;
new Rgba1010102 ( x , y , z , w ) . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new byte [ ] { 2 5 , 0 , 1 2 8 , 0 } ) ;
Assert . Equal ( rgba , new Rgba32 ( 2 5 , 0 , 1 2 8 , 0 ) ) ;
new Rgba1010102 ( x , y , z , w ) . ToZyxBytes ( bgr , 0 ) ;
new Rgba1010102 ( x , y , z , w ) . ToBgr24 ( ref bgr ) ;
Assert . Equal ( bgr , new byte [ ] { 1 2 8 , 0 , 2 5 } ) ;
Assert . Equal ( bgr , new Bgr24 ( 2 5 , 0 , 1 2 8 ) ) ;
new Rgba1010102 ( x , y , z , w ) . ToZyxwBytes ( bgra , 0 ) ;
new Rgba1010102 ( x , y , z , w ) . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new byte [ ] { 1 2 8 , 0 , 2 5 , 0 } ) ;
Assert . Equal ( bgra , new Bgra32 ( 2 5 , 0 , 1 2 8 , 0 ) ) ;
// Alpha component accuracy will be awful.
// Alpha component accuracy will be awful.
Rgba1010102 r = new Rgba1010102 ( ) ;
var r = new Rgba1010102 ( ) ;
r . PackFromRgba32 ( new Rgba32 ( 2 5 , 0 , 1 2 8 , 0 ) ) ;
r . PackFromRgba32 ( new Rgba32 ( 2 5 , 0 , 1 2 8 , 0 ) ) ;
r . ToXyzwBytes ( rgba , 0 ) ;
r . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new byte [ ] { 2 5 , 0 , 1 2 8 , 0 } ) ;
Assert . Equal ( rgba , new Rgba32 ( 2 5 , 0 , 1 2 8 , 0 ) ) ;
}
}
[Fact]
[Fact]
@ -732,26 +731,26 @@ namespace SixLabors.ImageSharp.Tests.Colors
float y = - 0.3f ;
float y = - 0.3f ;
float z = + 0.5f ;
float z = + 0.5f ;
float w = - 0.7f ;
float w = - 0.7f ;
Rgba32 rgba32 = new Rgba32 ( x , y , z , w ) ;
var rgba32 = new Rgba32 ( x , y , z , w ) ;
Assert . Equal ( 0x80001A u , rgba32 . PackedValue ) ;
Assert . Equal ( 0x80001A u , rgba32 . PackedValue ) ;
// Test ordering
// Test ordering
byte [ ] rgb = new byte [ 3 ] ;
var rgb = default ( Rgb24 ) ;
byte [ ] rgba = new byte [ 4 ] ;
var rgba = default ( Rgba32 ) ;
byte [ ] bgr = new byte [ 3 ] ;
var bgr = default ( Bgr24 ) ;
byte [ ] bgra = new byte [ 4 ] ;
var bgra = default ( Bgra32 ) ;
rgba32 . ToXyzBytes ( rgb , 0 ) ;
rgba32 . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new byte [ ] { 0x1a , 0 , 0x80 } ) ;
Assert . Equal ( rgb , new Rgb24 ( 0x1a , 0 , 0x80 ) ) ;
rgba32 . ToXyzwBytes ( rgba , 0 ) ;
rgba32 . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new byte [ ] { 0x1a , 0 , 0x80 , 0 } ) ;
Assert . Equal ( rgba , new Rgba32 ( 0x1a , 0 , 0x80 , 0 ) ) ;
rgba32 . ToZyxBytes ( bgr , 0 ) ;
rgba32 . ToBgr24 ( ref bgr ) ;
Assert . Equal ( bgr , new byte [ ] { 0x80 , 0 , 0x1a } ) ;
Assert . Equal ( bgr , new Bgr24 ( 0x1a , 0 , 0x80 ) ) ;
rgba32 . ToZyxwBytes ( bgra , 0 ) ;
rgba32 . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new byte [ ] { 0x80 , 0 , 0x1a , 0 } ) ;
Assert . Equal ( bgra , new Bgra32 ( 0x1a , 0 , 0x80 , 0 ) ) ;
}
}
[Fact]
[Fact]
@ -779,27 +778,27 @@ namespace SixLabors.ImageSharp.Tests.Colors
float w = 0.45f ;
float w = 0.45f ;
Assert . Equal ( ( ulong ) 0x73334CCC2666147B , new Rgba64 ( x , y , z , w ) . PackedValue ) ;
Assert . Equal ( ( ulong ) 0x73334CCC2666147B , new Rgba64 ( x , y , z , w ) . PackedValue ) ;
byte [ ] rgb = new byte [ 3 ] ;
var rgb = default ( Rgb24 ) ;
byte [ ] rgba = new byte [ 4 ] ;
var rgba = default ( Rgba32 ) ;
byte [ ] bgr = new byte [ 3 ] ;
var bgr = default ( Bgr24 ) ;
byte [ ] bgra = new byte [ 4 ] ;
var bgra = default ( Bgra32 ) ;
new Rgba64 ( x , y , z , w ) . ToXyzBytes ( rgb , 0 ) ;
new Rgba64 ( x , y , z , w ) . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new byte [ ] { 2 0 , 3 8 , 7 6 } ) ;
Assert . Equal ( rgb , new Rgb24 ( 2 0 , 3 8 , 7 6 ) ) ;
new Rgba64 ( x , y , z , w ) . ToXyzwBytes ( rgba , 0 ) ;
new Rgba64 ( x , y , z , w ) . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new byte [ ] { 2 0 , 3 8 , 7 6 , 1 1 5 } ) ;
Assert . Equal ( rgba , new Rgba32 ( 2 0 , 3 8 , 7 6 , 1 1 5 ) ) ;
new Rgba64 ( x , y , z , w ) . ToZyxBytes ( bgr , 0 ) ;
new Rgba64 ( x , y , z , w ) . ToBgr24 ( ref bgr ) ;
Assert . Equal ( bgr , new byte [ ] { 7 6 , 3 8 , 2 0 } ) ;
Assert . Equal ( bgr , new Bgr24 ( 2 0 , 3 8 , 7 6 ) ) ;
new Rgba64 ( x , y , z , w ) . ToZyxwBytes ( bgra , 0 ) ;
new Rgba64 ( x , y , z , w ) . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new byte [ ] { 7 6 , 3 8 , 2 0 , 1 1 5 } ) ;
Assert . Equal ( bgra , new Bgra32 ( 2 0 , 3 8 , 7 6 , 1 1 5 ) ) ;
Rgba64 r = new Rgba64 ( ) ;
var r = new Rgba64 ( ) ;
r . PackFromRgba32 ( new Rgba32 ( 2 0 , 3 8 , 7 6 , 1 1 5 ) ) ;
r . PackFromRgba32 ( new Rgba32 ( 2 0 , 3 8 , 7 6 , 1 1 5 ) ) ;
r . ToXyzwBytes ( rgba , 0 ) ;
r . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new byte [ ] { 2 0 , 3 8 , 7 6 , 1 1 5 } ) ;
Assert . Equal ( rgba , new Rgba32 ( 2 0 , 3 8 , 7 6 , 1 1 5 ) ) ;
}
}
[Fact]
[Fact]
@ -834,27 +833,27 @@ namespace SixLabors.ImageSharp.Tests.Colors
y = - 5.3f ;
y = - 5.3f ;
Assert . Equal ( 4 2 9 4 6 3 9 7 4 4 , new Short2 ( x , y ) . PackedValue ) ;
Assert . Equal ( 4 2 9 4 6 3 9 7 4 4 , new Short2 ( x , y ) . PackedValue ) ;
byte [ ] rgb = new byte [ 3 ] ;
var rgb = default ( Rgb24 ) ;
byte [ ] rgba = new byte [ 4 ] ;
var rgba = default ( Rgba32 ) ;
byte [ ] bgr = new byte [ 3 ] ;
var bgr = default ( Bgr24 ) ;
byte [ ] bgra = new byte [ 4 ] ;
var bgra = default ( Bgra32 ) ;
new Short2 ( x , y ) . ToXyzBytes ( rgb , 0 ) ;
new Short2 ( x , y ) . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new byte [ ] { 1 2 8 , 1 2 7 , 0 } ) ;
Assert . Equal ( rgb , new Rgb24 ( 1 2 8 , 1 2 7 , 0 ) ) ;
new Short2 ( x , y ) . ToXyzwBytes ( rgba , 0 ) ;
new Short2 ( x , y ) . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new byte [ ] { 1 2 8 , 1 2 7 , 0 , 2 5 5 } ) ;
Assert . Equal ( rgba , new Rgba32 ( 1 2 8 , 1 2 7 , 0 , 2 5 5 ) ) ;
new Short2 ( x , y ) . ToZyxBytes ( bgr , 0 ) ;
new Short2 ( x , y ) . ToBgr24 ( ref bgr ) ;
Assert . Equal ( bgr , new byte [ ] { 0 , 1 2 7 , 1 2 8 } ) ;
Assert . Equal ( bgr , new Bgr24 ( 1 2 8 , 1 2 7 , 0 ) ) ;
new Short2 ( x , y ) . ToZyxwBytes ( bgra , 0 ) ;
new Short2 ( x , y ) . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new byte [ ] { 0 , 1 2 7 , 1 2 8 , 2 5 5 } ) ;
Assert . Equal ( bgra , new Bgra32 ( 1 2 8 , 1 2 7 , 0 , 2 5 5 ) ) ;
Short2 r = new Short2 ( ) ;
var r = new Short2 ( ) ;
r . PackFromRgba32 ( new Rgba32 ( 2 0 , 3 8 , 0 , 2 5 5 ) ) ;
r . PackFromRgba32 ( new Rgba32 ( 2 0 , 3 8 , 0 , 2 5 5 ) ) ;
r . ToXyzwBytes ( rgba , 0 ) ;
r . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new byte [ ] { 2 0 , 3 8 , 0 , 2 5 5 } ) ;
Assert . Equal ( rgba , new Rgba32 ( 2 0 , 3 8 , 0 , 2 5 5 ) ) ;
}
}
[Fact]
[Fact]
@ -891,27 +890,27 @@ namespace SixLabors.ImageSharp.Tests.Colors
w = 1 9 3 ;
w = 1 9 3 ;
Assert . Equal ( ( ulong ) 0x00c173b7316d2d1b , new Short4 ( x , y , z , w ) . PackedValue ) ;
Assert . Equal ( ( ulong ) 0x00c173b7316d2d1b , new Short4 ( x , y , z , w ) . PackedValue ) ;
byte [ ] rgb = new byte [ 3 ] ;
var rgb = default ( Rgb24 ) ;
byte [ ] rgba = new byte [ 4 ] ;
var rgba = default ( Rgba32 ) ;
byte [ ] bgr = new byte [ 3 ] ;
var bgr = default ( Bgr24 ) ;
byte [ ] bgra = new byte [ 4 ] ;
var bgra = default ( Bgra32 ) ;
new Short4 ( x , y , z , w ) . ToXyzBytes ( rgb , 0 ) ;
new Short4 ( x , y , z , w ) . ToRgb24 ( ref rgb ) ;
Assert . Equal ( rgb , new byte [ ] { 1 7 2 , 1 7 7 , 2 4 3 } ) ;
Assert . Equal ( rgb , new Rgb24 ( 1 7 2 , 1 7 7 , 2 4 3 ) ) ;
new Short4 ( x , y , z , w ) . ToXyzwBytes ( rgba , 0 ) ;
new Short4 ( x , y , z , w ) . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new byte [ ] { 1 7 2 , 1 7 7 , 2 4 3 , 1 2 8 } ) ;
Assert . Equal ( rgba , new Rgba32 ( 1 7 2 , 1 7 7 , 2 4 3 , 1 2 8 ) ) ;
new Short4 ( x , y , z , w ) . ToZyxBytes ( bgr , 0 ) ;
new Short4 ( x , y , z , w ) . ToBgr24 ( ref bgr ) ;
Assert . Equal ( bgr , new byte [ ] { 2 4 3 , 1 7 7 , 1 7 2 } ) ;
Assert . Equal ( bgr , new Bgr24 ( 1 7 2 , 1 7 7 , 2 4 3 ) ) ;
new Short4 ( x , y , z , w ) . ToZyxwBytes ( bgra , 0 ) ;
new Short4 ( x , y , z , w ) . ToBgra32 ( ref bgra ) ;
Assert . Equal ( bgra , new byte [ ] { 2 4 3 , 1 7 7 , 1 7 2 , 1 2 8 } ) ;
Assert . Equal ( bgra , new Bgra32 ( 1 7 2 , 1 7 7 , 2 4 3 , 1 2 8 ) ) ;
Short4 r = new Short4 ( ) ;
var r = new Short4 ( ) ;
r . PackFromRgba32 ( new Rgba32 ( 2 0 , 3 8 , 0 , 2 5 5 ) ) ;
r . PackFromRgba32 ( new Rgba32 ( 2 0 , 3 8 , 0 , 2 5 5 ) ) ;
r . ToXyzwBytes ( rgba , 0 ) ;
r . ToRgba32 ( ref rgba ) ;
Assert . Equal ( rgba , new byte [ ] { 2 0 , 3 8 , 0 , 2 5 5 } ) ;
Assert . Equal ( rgba , new Rgba32 ( 2 0 , 3 8 , 0 , 2 5 5 ) ) ;
}
}
// Comparison helpers with small tolerance to allow for floating point rounding during computations.
// Comparison helpers with small tolerance to allow for floating point rounding during computations.