Skip to content

Instantly share code, notes, and snippets.

@antonfirsov
Last active October 26, 2018 11:42
Show Gist options
  • Save antonfirsov/9b1cf16ce2fe176c9240a55a758b0cb5 to your computer and use it in GitHub Desktop.
Save antonfirsov/9b1cf16ce2fe176c9240a55a758b0cb5 to your computer and use it in GitHub Desktop.
Gray* <-> Rgba32 Issues
public class GrayToRgba32Tests
{
public GrayToRgba32Tests(ITestOutputHelper output)
{
this.Output = output;
}
private ITestOutputHelper Output { get; }
[Fact]
public void Gray8_Rgba32_MightBeInaccurate()
{
for (byte luminance = 0; luminance < 255; luminance++)
{
var gray = new Gray8(luminance);
Rgba32 rgba = default;
rgba.FromGray8(gray);
Gray8 mirror = default;
mirror.FromRgba32(rgba);
if (gray != mirror)
{
this.Output.WriteLine($"Oh no! {gray} != {mirror}");
}
}
}
[Fact]
public void Gray16_Rgba32_MightBeInaccurate()
{
for (ushort luminance = 0; luminance < ushort.MaxValue-256; luminance+= 256)
{
var gray = new Gray16(luminance);
Rgba32 rgba = default;
rgba.FromGray16(gray);
Gray16 mirror = default;
mirror.FromRgba32(rgba);
if (gray != mirror)
{
this.Output.WriteLine($"Oh no! {gray} != {mirror}");
}
}
}
}
Oh no! Gray16(256) != Gray16(257)
Oh no! Gray16(512) != Gray16(514)
Oh no! Gray16(768) != Gray16(771)
Oh no! Gray16(1024) != Gray16(1028)
Oh no! Gray16(1280) != Gray16(1284)
Oh no! Gray16(1536) != Gray16(1542)
Oh no! Gray16(1792) != Gray16(1799)
Oh no! Gray16(2048) != Gray16(2056)
Oh no! Gray16(2304) != Gray16(2313)
Oh no! Gray16(2560) != Gray16(2569)
Oh no! Gray16(2816) != Gray16(2827)
Oh no! Gray16(3072) != Gray16(3084)
Oh no! Gray16(3328) != Gray16(3341)
Oh no! Gray16(3584) != Gray16(3598)
Oh no! Gray16(3840) != Gray16(3855)
Oh no! Gray16(4096) != Gray16(4112)
Oh no! Gray16(4352) != Gray16(4369)
Oh no! Gray16(4608) != Gray16(4626)
Oh no! Gray16(4864) != Gray16(4883)
Oh no! Gray16(5120) != Gray16(5139)
Oh no! Gray16(5376) != Gray16(5397)
Oh no! Gray16(5632) != Gray16(5654)
Oh no! Gray16(5888) != Gray16(5911)
Oh no! Gray16(6144) != Gray16(6168)
Oh no! Gray16(6400) != Gray16(6425)
Oh no! Gray16(6656) != Gray16(6682)
Oh no! Gray16(6912) != Gray16(6939)
Oh no! Gray16(7168) != Gray16(7196)
Oh no! Gray16(7424) != Gray16(7453)
Oh no! Gray16(7680) != Gray16(7710)
Oh no! Gray16(7936) != Gray16(7967)
Oh no! Gray16(8192) != Gray16(8224)
Oh no! Gray16(8448) != Gray16(8481)
Oh no! Gray16(8704) != Gray16(8738)
Oh no! Gray16(8960) != Gray16(8995)
Oh no! Gray16(9216) != Gray16(9252)
Oh no! Gray16(9472) != Gray16(9509)
Oh no! Gray16(9728) != Gray16(9766)
Oh no! Gray16(9984) != Gray16(10023)
Oh no! Gray16(10240) != Gray16(10279)
Oh no! Gray16(10496) != Gray16(10537)
Oh no! Gray16(10752) != Gray16(10794)
Oh no! Gray16(11008) != Gray16(11051)
Oh no! Gray16(11264) != Gray16(11308)
Oh no! Gray16(11520) != Gray16(11565)
Oh no! Gray16(11776) != Gray16(11822)
Oh no! Gray16(12032) != Gray16(12079)
Oh no! Gray16(12288) != Gray16(12336)
Oh no! Gray16(12544) != Gray16(12593)
Oh no! Gray16(12800) != Gray16(12850)
Oh no! Gray16(13056) != Gray16(13107)
Oh no! Gray16(13312) != Gray16(13364)
Oh no! Gray16(13568) != Gray16(13621)
Oh no! Gray16(13824) != Gray16(13878)
Oh no! Gray16(14080) != Gray16(14135)
Oh no! Gray16(14336) != Gray16(14392)
Oh no! Gray16(14592) != Gray16(14649)
Oh no! Gray16(14848) != Gray16(14906)
Oh no! Gray16(15104) != Gray16(15163)
Oh no! Gray16(15360) != Gray16(15420)
Oh no! Gray16(15616) != Gray16(15677)
Oh no! Gray16(15872) != Gray16(15934)
Oh no! Gray16(16128) != Gray16(16191)
Oh no! Gray16(16384) != Gray16(16448)
Oh no! Gray16(16640) != Gray16(16705)
Oh no! Gray16(16896) != Gray16(16962)
Oh no! Gray16(17152) != Gray16(17219)
Oh no! Gray16(17408) != Gray16(17476)
Oh no! Gray16(17664) != Gray16(17733)
Oh no! Gray16(17920) != Gray16(17990)
Oh no! Gray16(18176) != Gray16(18247)
Oh no! Gray16(18432) != Gray16(18504)
Oh no! Gray16(18688) != Gray16(18761)
Oh no! Gray16(18944) != Gray16(19018)
Oh no! Gray16(19200) != Gray16(19275)
Oh no! Gray16(19456) != Gray16(19532)
Oh no! Gray16(19712) != Gray16(19789)
Oh no! Gray16(19968) != Gray16(20046)
Oh no! Gray16(20224) != Gray16(20303)
Oh no! Gray16(20480) != Gray16(20559)
Oh no! Gray16(20736) != Gray16(20817)
Oh no! Gray16(20992) != Gray16(21074)
Oh no! Gray16(21248) != Gray16(21331)
Oh no! Gray16(21504) != Gray16(21588)
Oh no! Gray16(21760) != Gray16(21845)
Oh no! Gray16(22016) != Gray16(22102)
Oh no! Gray16(22272) != Gray16(22359)
Oh no! Gray16(22528) != Gray16(22616)
Oh no! Gray16(22784) != Gray16(22873)
Oh no! Gray16(23040) != Gray16(23130)
Oh no! Gray16(23296) != Gray16(23387)
Oh no! Gray16(23552) != Gray16(23644)
Oh no! Gray16(23808) != Gray16(23901)
Oh no! Gray16(24064) != Gray16(24158)
Oh no! Gray16(24320) != Gray16(24415)
Oh no! Gray16(24576) != Gray16(24672)
Oh no! Gray16(24832) != Gray16(24928)
Oh no! Gray16(25088) != Gray16(25186)
Oh no! Gray16(25344) != Gray16(25443)
Oh no! Gray16(25600) != Gray16(25700)
Oh no! Gray16(25856) != Gray16(25957)
Oh no! Gray16(26112) != Gray16(26214)
Oh no! Gray16(26368) != Gray16(26471)
Oh no! Gray16(26624) != Gray16(26728)
Oh no! Gray16(26880) != Gray16(26985)
Oh no! Gray16(27136) != Gray16(27242)
Oh no! Gray16(27392) != Gray16(27499)
Oh no! Gray16(27648) != Gray16(27756)
Oh no! Gray16(27904) != Gray16(28013)
Oh no! Gray16(28160) != Gray16(28270)
Oh no! Gray16(28416) != Gray16(28527)
Oh no! Gray16(28672) != Gray16(28784)
Oh no! Gray16(28928) != Gray16(29040)
Oh no! Gray16(29184) != Gray16(29298)
Oh no! Gray16(29440) != Gray16(29555)
Oh no! Gray16(29696) != Gray16(29812)
Oh no! Gray16(29952) != Gray16(30069)
Oh no! Gray16(30208) != Gray16(30326)
Oh no! Gray16(30464) != Gray16(30582)
Oh no! Gray16(30720) != Gray16(30840)
Oh no! Gray16(30976) != Gray16(31097)
Oh no! Gray16(31232) != Gray16(31354)
Oh no! Gray16(31488) != Gray16(31611)
Oh no! Gray16(31744) != Gray16(31868)
Oh no! Gray16(32000) != Gray16(32125)
Oh no! Gray16(32256) != Gray16(32382)
Oh no! Gray16(32512) != Gray16(32638)
Oh no! Gray16(32768) != Gray16(32896)
Oh no! Gray16(33024) != Gray16(32896)
Oh no! Gray16(33280) != Gray16(33153)
Oh no! Gray16(33536) != Gray16(33410)
Oh no! Gray16(33792) != Gray16(33667)
Oh no! Gray16(34048) != Gray16(33924)
Oh no! Gray16(34304) != Gray16(34181)
Oh no! Gray16(34560) != Gray16(34438)
Oh no! Gray16(34816) != Gray16(34695)
Oh no! Gray16(35072) != Gray16(34952)
Oh no! Gray16(35328) != Gray16(35209)
Oh no! Gray16(35584) != Gray16(35466)
Oh no! Gray16(35840) != Gray16(35723)
Oh no! Gray16(36096) != Gray16(35980)
Oh no! Gray16(36352) != Gray16(36237)
Oh no! Gray16(36608) != Gray16(36494)
Oh no! Gray16(36864) != Gray16(36751)
Oh no! Gray16(37120) != Gray16(37008)
Oh no! Gray16(37376) != Gray16(37264)
Oh no! Gray16(37632) != Gray16(37522)
Oh no! Gray16(37888) != Gray16(37779)
Oh no! Gray16(38144) != Gray16(38036)
Oh no! Gray16(38400) != Gray16(38293)
Oh no! Gray16(38656) != Gray16(38550)
Oh no! Gray16(38912) != Gray16(38807)
Oh no! Gray16(39168) != Gray16(39064)
Oh no! Gray16(39424) != Gray16(39321)
Oh no! Gray16(39680) != Gray16(39578)
Oh no! Gray16(39936) != Gray16(39835)
Oh no! Gray16(40192) != Gray16(40092)
Oh no! Gray16(40448) != Gray16(40349)
Oh no! Gray16(40704) != Gray16(40606)
Oh no! Gray16(40960) != Gray16(40863)
Oh no! Gray16(41216) != Gray16(41119)
Oh no! Gray16(41472) != Gray16(41376)
Oh no! Gray16(41728) != Gray16(41634)
Oh no! Gray16(41984) != Gray16(41891)
Oh no! Gray16(42240) != Gray16(42148)
Oh no! Gray16(42496) != Gray16(42405)
Oh no! Gray16(42752) != Gray16(42662)
Oh no! Gray16(43008) != Gray16(42919)
Oh no! Gray16(43264) != Gray16(43176)
Oh no! Gray16(43520) != Gray16(43433)
Oh no! Gray16(43776) != Gray16(43690)
Oh no! Gray16(44032) != Gray16(43947)
Oh no! Gray16(44288) != Gray16(44204)
Oh no! Gray16(44544) != Gray16(44461)
Oh no! Gray16(44800) != Gray16(44718)
Oh no! Gray16(45056) != Gray16(44975)
Oh no! Gray16(45312) != Gray16(45232)
Oh no! Gray16(45568) != Gray16(45489)
Oh no! Gray16(45824) != Gray16(45746)
Oh no! Gray16(46080) != Gray16(46003)
Oh no! Gray16(46336) != Gray16(46260)
Oh no! Gray16(46592) != Gray16(46516)
Oh no! Gray16(46848) != Gray16(46774)
Oh no! Gray16(47104) != Gray16(47030)
Oh no! Gray16(47360) != Gray16(47288)
Oh no! Gray16(47616) != Gray16(47545)
Oh no! Gray16(47872) != Gray16(47802)
Oh no! Gray16(48128) != Gray16(48059)
Oh no! Gray16(48384) != Gray16(48316)
Oh no! Gray16(48640) != Gray16(48573)
Oh no! Gray16(48896) != Gray16(48830)
Oh no! Gray16(49152) != Gray16(49087)
Oh no! Gray16(49408) != Gray16(49344)
Oh no! Gray16(49664) != Gray16(49601)
Oh no! Gray16(49920) != Gray16(49857)
Oh no! Gray16(50176) != Gray16(50115)
Oh no! Gray16(50432) != Gray16(50372)
Oh no! Gray16(50688) != Gray16(50629)
Oh no! Gray16(50944) != Gray16(50886)
Oh no! Gray16(51200) != Gray16(51142)
Oh no! Gray16(51456) != Gray16(51400)
Oh no! Gray16(51712) != Gray16(51657)
Oh no! Gray16(51968) != Gray16(51914)
Oh no! Gray16(52224) != Gray16(52171)
Oh no! Gray16(52480) != Gray16(52428)
Oh no! Gray16(52736) != Gray16(52685)
Oh no! Gray16(52992) != Gray16(52942)
Oh no! Gray16(53248) != Gray16(53199)
Oh no! Gray16(53504) != Gray16(53456)
Oh no! Gray16(53760) != Gray16(53713)
Oh no! Gray16(54016) != Gray16(53970)
Oh no! Gray16(54272) != Gray16(54227)
Oh no! Gray16(54528) != Gray16(54484)
Oh no! Gray16(54784) != Gray16(54741)
Oh no! Gray16(55040) != Gray16(54998)
Oh no! Gray16(55296) != Gray16(55254)
Oh no! Gray16(55552) != Gray16(55512)
Oh no! Gray16(55808) != Gray16(55769)
Oh no! Gray16(56064) != Gray16(56026)
Oh no! Gray16(56320) != Gray16(56283)
Oh no! Gray16(56576) != Gray16(56540)
Oh no! Gray16(56832) != Gray16(56797)
Oh no! Gray16(57088) != Gray16(57054)
Oh no! Gray16(57344) != Gray16(57311)
Oh no! Gray16(57600) != Gray16(57568)
Oh no! Gray16(57856) != Gray16(57825)
Oh no! Gray16(58112) != Gray16(58081)
Oh no! Gray16(58368) != Gray16(58339)
Oh no! Gray16(58624) != Gray16(58596)
Oh no! Gray16(58880) != Gray16(58853)
Oh no! Gray16(59136) != Gray16(59110)
Oh no! Gray16(59392) != Gray16(59367)
Oh no! Gray16(59648) != Gray16(59624)
Oh no! Gray16(59904) != Gray16(59881)
Oh no! Gray16(60160) != Gray16(60138)
Oh no! Gray16(60416) != Gray16(60395)
Oh no! Gray16(60672) != Gray16(60652)
Oh no! Gray16(60928) != Gray16(60909)
Oh no! Gray16(61184) != Gray16(61165)
Oh no! Gray16(61440) != Gray16(61423)
Oh no! Gray16(61696) != Gray16(61680)
Oh no! Gray16(61952) != Gray16(61937)
Oh no! Gray16(62208) != Gray16(62194)
Oh no! Gray16(62464) != Gray16(62451)
Oh no! Gray16(62720) != Gray16(62708)
Oh no! Gray16(62976) != Gray16(62965)
Oh no! Gray16(63232) != Gray16(63222)
Oh no! Gray16(63488) != Gray16(63478)
Oh no! Gray16(63744) != Gray16(63736)
Oh no! Gray16(64000) != Gray16(63992)
Oh no! Gray16(64256) != Gray16(64250)
Oh no! Gray16(64512) != Gray16(64507)
Oh no! Gray16(64768) != Gray16(64764)
Oh no! Gray16(65024) != Gray16(65021)
Oh no! Gray8(13) != Gray8(12)
Oh no! Gray8(26) != Gray8(25)
Oh no! Gray8(31) != Gray8(30)
Oh no! Gray8(47) != Gray8(46)
Oh no! Gray8(52) != Gray8(51)
Oh no! Gray8(57) != Gray8(56)
Oh no! Gray8(62) != Gray8(61)
Oh no! Gray8(91) != Gray8(90)
Oh no! Gray8(94) != Gray8(93)
Oh no! Gray8(101) != Gray8(100)
Oh no! Gray8(104) != Gray8(103)
Oh no! Gray8(111) != Gray8(110)
Oh no! Gray8(114) != Gray8(113)
Oh no! Gray8(124) != Gray8(123)
Oh no! Gray8(182) != Gray8(181)
Oh no! Gray8(185) != Gray8(184)
Oh no! Gray8(188) != Gray8(187)
Oh no! Gray8(202) != Gray8(201)
Oh no! Gray8(208) != Gray8(207)
Oh no! Gray8(222) != Gray8(221)
Oh no! Gray8(228) != Gray8(227)
Oh no! Gray8(243) != Gray8(242)
Oh no! Gray8(248) != Gray8(247)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment