@@ -16,19 +16,27 @@ public static function provide_decimal_can_return_correct_array(): array
1616 '#000 ' => ['rgb ' => '#000 ' , 'expected ' => [0 , 0 , 0 ]],
1717 '#123 ' => ['rgb ' => '#123 ' , 'expected ' => [17 , 34 , 51 ]],
1818 '#fed ' => ['rgb ' => '#fed ' , 'expected ' => [255 , 238 , 221 ]],
19+ '#FED ' => ['rgb ' => '#FED ' , 'expected ' => [255 , 238 , 221 ]],
20+ '#19f ' => ['rgb ' => '#19f ' , 'expected ' => [17 , 153 , 255 ]],
21+ '#19F ' => ['rgb ' => '#19F ' , 'expected ' => [17 , 153 , 255 ]],
1922 '#000000 ' => ['rgb ' => '#000000 ' , 'expected ' => [0 , 0 , 0 ]],
2023 '#123456 ' => ['rgb ' => '#123456 ' , 'expected ' => [18 , 52 , 86 ]],
2124 '#ffeedd ' => ['rgb ' => '#ffeedd ' , 'expected ' => [255 , 238 , 221 ]],
25+ '#FFEEDD ' => ['rgb ' => '#FFEEDD ' , 'expected ' => [255 , 238 , 221 ]],
26+ '#123abc ' => ['rgb ' => '#123abc ' , 'expected ' => [18 , 58 , 188 ]],
27+ '#123ABC ' => ['rgb ' => '#123abc ' , 'expected ' => [18 , 58 , 188 ]],
2228
2329 'fff ' => ['rgb ' => 'fff ' , 'expected ' => []],
2430 'fffffff ' => ['rgb ' => 'fffffff ' , 'expected ' => []],
2531 '# ' => ['rgb ' => '# ' , 'expected ' => []],
2632 '#1 ' => ['rgb ' => '#1 ' , 'expected ' => []],
2733 '#12 ' => ['rgb ' => '#12 ' , 'expected ' => []],
2834 '#efg ' => ['rgb ' => '#efg ' , 'expected ' => []],
35+ '#EFG ' => ['rgb ' => '#EFG ' , 'expected ' => []],
2936 '#1234 ' => ['rgb ' => '#1234 ' , 'expected ' => []],
3037 '#12345 ' => ['rgb ' => '#12345 ' , 'expected ' => []],
3138 '#bcdefg ' => ['rgb ' => '#bcdefg ' , 'expected ' => []],
39+ '#BCDEFG ' => ['rgb ' => '#BCDEFG ' , 'expected ' => []],
3240 '#1234567 ' => ['rgb ' => '#1234567 ' , 'expected ' => []],
3341 '#abcdefg ' => ['rgb ' => '#abcdefg ' , 'expected ' => []],
3442 ];
@@ -39,4 +47,27 @@ public function test_decimal_can_return_correct_array(string $rgb, array $expect
3947 {
4048 $ this ->assertSame ($ expected , Converter::decimal ($ rgb ));
4149 }
50+
51+ public static function provide_hex_can_return_correct_hex_code (): array
52+ {
53+ return [
54+ 'empty ' => ['rgb ' => [], 'expected ' => null ],
55+ '[0] ' => ['rgb ' => [0 ], 'expected ' => '#000000 ' ],
56+ '[1] ' => ['rgb ' => [1 ], 'expected ' => '#010000 ' ],
57+ '[1, 2] ' => ['rgb ' => [1 , 2 ], 'expected ' => '#010200 ' ],
58+ '[1, 2, 3] ' => ['rgb ' => [1 , 2 , 3 ], 'expected ' => '#010203 ' ],
59+ '[0, 0, 10] ' => ['rgb ' => [0 , 0 , 10 ], 'expected ' => '#00000a ' ],
60+ '[0, 0, 171] ' => ['rgb ' => [0 , 0 , 171 ], 'expected ' => '#0000ab ' ],
61+ '[0, 171, 205] ' => ['rgb ' => [0 , 171 , 205 ], 'expected ' => '#00abcd ' ],
62+ '[171, 205, 239] ' => ['rgb ' => [171 , 205 , 239 ], 'expected ' => '#abcdef ' ],
63+ '[-1, 0, 1] ' => ['rgb ' => [-1 , 0 , 1 ], 'expected ' => '#000001 ' ],
64+ '[254, 255, 256] ' => ['rgb ' => [254 , 255 , 256 ], 'expected ' => '#feffff ' ],
65+ ];
66+ }
67+
68+ #[DataProvider('provide_hex_can_return_correct_hex_code ' )]
69+ public function test_hex_can_return_correct_hex_code (array $ rgb , string |null $ expected ): void
70+ {
71+ $ this ->assertSame ($ expected , Converter::hex ($ rgb ));
72+ }
4273}
0 commit comments