@@ -1582,29 +1582,49 @@ mod tests {
15821582 fn transform_pixels_srgb_16 ( ) {
15831583 // Non-constant luminance so:
15841584 // Y = dot(rgb, coefs)
1585- let data = [ u16:: MAX ] ;
1585+ let data = [ u16:: MAX / 2 ] ;
15861586 let color = Cicp :: SRGB . into_rgb ( ) ;
15871587 let rgba = color. cast_pixels :: < Luma < u16 > , Rgb < u8 > > ( & data, & no_coefficient_fallback) ;
1588- assert_eq ! ( rgba, [ u8 :: MAX ; 3 ] ) ;
1588+ assert_eq ! ( rgba, [ 127 ; 3 ] ) ;
15891589 let luma = color. cast_pixels :: < Luma < u16 > , Luma < u8 > > ( & data, & no_coefficient_fallback) ;
1590- assert_eq ! ( luma, [ u8 :: MAX ] ) ;
1590+ assert_eq ! ( luma, [ 127 ] ) ;
15911591 let luma_a = color. cast_pixels :: < Luma < u16 > , LumaA < u8 > > ( & data, & no_coefficient_fallback) ;
1592- assert_eq ! ( luma_a, [ u8 :: MAX , 255 ] ) ;
1592+ assert_eq ! ( luma_a, [ 127 , 255 ] ) ;
1593+
1594+ let data = [ u16:: MAX / 2 + 1 ] ;
1595+ let color = Cicp :: SRGB . into_rgb ( ) ;
1596+ let rgba = color. cast_pixels :: < Luma < u16 > , Rgb < u8 > > ( & data, & no_coefficient_fallback) ;
1597+ assert_eq ! ( rgba, [ 128 ; 3 ] ) ;
1598+ let luma = color. cast_pixels :: < Luma < u16 > , Luma < u8 > > ( & data, & no_coefficient_fallback) ;
1599+ assert_eq ! ( luma, [ 128 ] ) ;
1600+ let luma_a = color. cast_pixels :: < Luma < u16 > , LumaA < u8 > > ( & data, & no_coefficient_fallback) ;
1601+ assert_eq ! ( luma_a, [ 128 , 255 ] ) ;
15931602 }
15941603
15951604 #[ test]
15961605 fn transform_pixels_srgb_luma_alpha ( ) {
15971606 // Non-constant luminance so:
15981607 // Y = dot(rgb, coefs)
1599- let data = [ u16:: MAX , u16:: MAX ] ;
1608+ let data = [ u16:: MAX / 2 , u16:: MAX ] ;
1609+ let color = Cicp :: SRGB . into_rgb ( ) ;
1610+ let rgba = color. cast_pixels :: < LumaA < u16 > , Rgb < u8 > > ( & data, & no_coefficient_fallback) ;
1611+ assert_eq ! ( rgba, [ 127 ; 3 ] ) ;
1612+ let luma = color. cast_pixels :: < LumaA < u16 > , Luma < u8 > > ( & data, & no_coefficient_fallback) ;
1613+ assert_eq ! ( luma, [ 127 ] ) ;
1614+ let luma = color. cast_pixels :: < LumaA < u16 > , LumaA < u8 > > ( & data, & no_coefficient_fallback) ;
1615+ assert_eq ! ( luma, [ 127 , u8 :: MAX ] ) ;
1616+ let luma_a = color. cast_pixels :: < LumaA < u16 > , LumaA < u8 > > ( & data, & no_coefficient_fallback) ;
1617+ assert_eq ! ( luma_a, [ 127 , 255 ] ) ;
1618+
1619+ let data = [ u16:: MAX / 2 + 1 , u16:: MAX ] ;
16001620 let color = Cicp :: SRGB . into_rgb ( ) ;
16011621 let rgba = color. cast_pixels :: < LumaA < u16 > , Rgb < u8 > > ( & data, & no_coefficient_fallback) ;
1602- assert_eq ! ( rgba, [ u8 :: MAX ; 3 ] ) ;
1622+ assert_eq ! ( rgba, [ 128 ; 3 ] ) ;
16031623 let luma = color. cast_pixels :: < LumaA < u16 > , Luma < u8 > > ( & data, & no_coefficient_fallback) ;
1604- assert_eq ! ( luma, [ u8 :: MAX ] ) ;
1624+ assert_eq ! ( luma, [ 128 ] ) ;
16051625 let luma = color. cast_pixels :: < LumaA < u16 > , LumaA < u8 > > ( & data, & no_coefficient_fallback) ;
1606- assert_eq ! ( luma, [ u8 :: MAX , u8 :: MAX ] ) ;
1626+ assert_eq ! ( luma, [ 128 , u8 :: MAX ] ) ;
16071627 let luma_a = color. cast_pixels :: < LumaA < u16 > , LumaA < u8 > > ( & data, & no_coefficient_fallback) ;
1608- assert_eq ! ( luma_a, [ u8 :: MAX , 255 ] ) ;
1628+ assert_eq ! ( luma_a, [ 128 , 255 ] ) ;
16091629 }
16101630}
0 commit comments