@@ -20,9 +20,18 @@ public void AreEqual()
2020 Argb32 color2 = new ( new Vector4 ( 0.0f ) ) ;
2121 Argb32 color3 = new ( new Vector4 ( 1f , 0.0f , 1f , 1f ) ) ;
2222 Argb32 color4 = new ( 1f , 0.0f , 1f , 1f ) ;
23+ Argb32 color5 = new ( 0 , 0 , 0 , 1F ) ;
24+ Argb32 color6 = Argb32 . ParseHex ( "#000" ) ;
25+ Argb32 color7 = Argb32 . ParseHex ( "#F000" ) ;
26+ Argb32 color8 = Argb32 . ParseHex ( "#000000" ) ;
27+ Argb32 color9 = Argb32 . ParseHex ( "#FF000000" ) ;
2328
2429 Assert . Equal ( color1 , color2 ) ;
2530 Assert . Equal ( color3 , color4 ) ;
31+ Assert . Equal ( color5 , color6 ) ;
32+ Assert . Equal ( color5 , color7 ) ;
33+ Assert . Equal ( color5 , color8 ) ;
34+ Assert . Equal ( color5 , color9 ) ;
2635 }
2736
2837 /// <summary>
@@ -71,6 +80,94 @@ public void ConstructorAssignsProperties()
7180 Assert . Equal ( Math . Round ( .5f * 255 ) , color5 . A ) ;
7281 }
7382
83+ /// <summary>
84+ /// Tests whether FromHex and ToHex work correctly.
85+ /// </summary>
86+ [ Fact ]
87+ public void FromAndToHex ( )
88+ {
89+ // 8 digit hex. AARRGGBB
90+ Argb32 color = Argb32 . ParseHex ( "#AABBCCDD" ) ;
91+ Assert . Equal ( 0xAA , color . A ) ;
92+ Assert . Equal ( 0xBB , color . R ) ;
93+ Assert . Equal ( 0xCC , color . G ) ;
94+ Assert . Equal ( 0xDD , color . B ) ;
95+
96+ Assert . Equal ( "AABBCCDD" , color . ToHex ( ) ) ;
97+
98+ color . R = 0 ;
99+
100+ Assert . Equal ( "AA00CCDD" , color . ToHex ( ) ) ;
101+
102+ color . A = 255 ;
103+
104+ Assert . Equal ( "FF00CCDD" , color . ToHex ( ) ) ;
105+ }
106+
107+ [ Fact ]
108+ public void Argb32_TryParseHex ( )
109+ {
110+ Assert . True ( Argb32 . TryParseHex ( "000" , out Argb32 color ) ) ;
111+ Assert . Equal ( "FF000000" , color . ToHex ( ) ) ;
112+
113+ Assert . True ( Argb32 . TryParseHex ( "#000" , out color ) ) ;
114+ Assert . Equal ( "FF000000" , color . ToHex ( ) ) ;
115+
116+ Assert . True ( Argb32 . TryParseHex ( "0000" , out color ) ) ;
117+ Assert . Equal ( "00000000" , color . ToHex ( ) ) ;
118+
119+ Assert . True ( Argb32 . TryParseHex ( "#0000" , out color ) ) ;
120+ Assert . Equal ( "00000000" , color . ToHex ( ) ) ;
121+
122+ Assert . True ( Argb32 . TryParseHex ( "000000" , out color ) ) ;
123+ Assert . Equal ( "FF000000" , color . ToHex ( ) ) ;
124+
125+ Assert . True ( Argb32 . TryParseHex ( "#000000" , out color ) ) ;
126+ Assert . Equal ( "FF000000" , color . ToHex ( ) ) ;
127+
128+ Assert . True ( Argb32 . TryParseHex ( "abc" , out color ) ) ;
129+ Assert . Equal ( "FFAABBCC" , color . ToHex ( ) ) ;
130+
131+ Assert . True ( Argb32 . TryParseHex ( "ABC" , out color ) ) ;
132+ Assert . Equal ( "FFAABBCC" , color . ToHex ( ) ) ;
133+
134+ Assert . True ( Argb32 . TryParseHex ( "#ABC" , out color ) ) ;
135+ Assert . Equal ( "FFAABBCC" , color . ToHex ( ) ) ;
136+
137+ Assert . True ( Argb32 . TryParseHex ( "ABCD" , out color ) ) ;
138+ Assert . Equal ( "AABBCCDD" , color . ToHex ( ) ) ;
139+
140+ Assert . True ( Argb32 . TryParseHex ( "#ABCD" , out color ) ) ;
141+ Assert . Equal ( "AABBCCDD" , color . ToHex ( ) ) ;
142+
143+ Assert . True ( Argb32 . TryParseHex ( "AABBCC" , out color ) ) ;
144+ Assert . Equal ( "FFAABBCC" , color . ToHex ( ) ) ;
145+
146+ Assert . True ( Argb32 . TryParseHex ( "#AABBCC" , out color ) ) ;
147+ Assert . Equal ( "FFAABBCC" , color . ToHex ( ) ) ;
148+
149+ Assert . True ( Argb32 . TryParseHex ( "AABBCCDD" , out color ) ) ;
150+ Assert . Equal ( "AABBCCDD" , color . ToHex ( ) ) ;
151+
152+ Assert . True ( Argb32 . TryParseHex ( "#AABBCCDD" , out color ) ) ;
153+ Assert . Equal ( "AABBCCDD" , color . ToHex ( ) ) ;
154+
155+ Assert . False ( Argb32 . TryParseHex ( string . Empty , out _ ) ) ;
156+ Assert . False ( Argb32 . TryParseHex ( null , out _ ) ) ;
157+ Assert . False ( Argb32 . TryParseHex ( "A" , out _ ) ) ;
158+ Assert . False ( Argb32 . TryParseHex ( "#A" , out _ ) ) ;
159+ Assert . False ( Argb32 . TryParseHex ( "AB" , out _ ) ) ;
160+ Assert . False ( Argb32 . TryParseHex ( "#AB" , out _ ) ) ;
161+ Assert . False ( Argb32 . TryParseHex ( "ABCDE" , out _ ) ) ;
162+ Assert . False ( Argb32 . TryParseHex ( "#ABCDE" , out _ ) ) ;
163+ Assert . False ( Argb32 . TryParseHex ( "ABCDEFG" , out _ ) ) ;
164+ Assert . False ( Argb32 . TryParseHex ( "#ABCDEFG" , out _ ) ) ;
165+ Assert . False ( Argb32 . TryParseHex ( "ABCD123" , out _ ) ) ;
166+ Assert . False ( Argb32 . TryParseHex ( "#ABCD123" , out _ ) ) ;
167+ Assert . False ( Argb32 . TryParseHex ( "ABCD12345" , out _ ) ) ;
168+ Assert . False ( Argb32 . TryParseHex ( "#ABCD12345" , out _ ) ) ;
169+ }
170+
74171 [ Fact ]
75172 public void Argb32_PackedValue ( )
76173 {
0 commit comments