@@ -811,6 +811,52 @@ fn test_to_num() {
811811 assert big.i64 () == 93993993939322
812812}
813813
814+ fn test_to_u8_array () {
815+ // empty string
816+ assert '' .u8_array () == []
817+ assert '0x' .u8_array () == []
818+ assert '0X' .u8_array () == []
819+ assert '0b' .u8_array () == []
820+ assert '0B' .u8_array () == []
821+ // invalid digit
822+ assert '-123' .u8_array () == []
823+ assert '1_2xt' .u8_array () == []
824+ assert 'd1_2xt' .u8_array () == []
825+
826+ // ---------------------------------
827+ // hex test
828+ // invalid hex digit
829+ assert '0X-123' .u8_array () == []
830+ assert '0O12' .u8_array () == []
831+ // odd number of digits
832+ assert '0x1' .u8_array () == [u8 (0x01 )]
833+ assert '0x123' .u8_array () == [u8 (0x01 ), 0x23 ]
834+ assert '0x1_23' .u8_array () == [u8 (0x01 ), 0x23 ]
835+
836+ // long digits
837+ long_u8 := [u8 (0x00 ), 0x11 , 0x22 , 0x33 , 0x44 , 0x55 , 0x66 , 0x77 , 0x88 , 0x99 , 0xaa , 0xbb , 0xcc ,
838+ 0xdd , 0xee , 0xff ]
839+ assert '0x00112233445566778899aabbccddeeff' .u8_array () == long_u8
840+ assert '0x00_112_2334455667788_99aabbccddeeff' .u8_array () == long_u8
841+ assert '0x00112233445566778899AABBCCDDEEFF' .u8_array () == long_u8
842+ assert '0x001_12233445566778899A_ABBCCDDEEFF' .u8_array () == long_u8
843+
844+ // ---------------------------------
845+ // bin test
846+ // invalid bin digit
847+ assert '0b-123' .u8_array () == []
848+ assert '0B12' .u8_array () == []
849+ // not enough length
850+ assert '0b0' .u8_array () == [u8 (0x00 )]
851+ assert '0b1' .u8_array () == [u8 (0x01 )]
852+ assert '0b101' .u8_array () == [u8 (0x05 )]
853+ assert '0b0101' .u8_array () == [u8 (0x05 )]
854+ // long digits
855+ assert '0b0101_0101' .u8_array () == [u8 (0x55 )]
856+ assert '0b0101010110101010' .u8_array () == [u8 (0x55 ), 0xaa ]
857+ assert '0b0101010110101010_0101010110101010' .u8_array () == [u8 (0x55 ), 0xaa , 0x55 , 0xaa ]
858+ }
859+
814860fn test_inter_format_string () {
815861 float_num := 1.52345
816862 float_num_string := '-${float_num:.3f} -'
0 commit comments