diff --git a/src/decoder.nr b/src/decoder.nr index 2c2b328..cac31c7 100644 --- a/src/decoder.nr +++ b/src/decoder.nr @@ -1069,3 +1069,28 @@ fn test_decode_with_padding() { ]; assert(result == expected); } + +#[test] +fn test_decode_var() { + // base64: SGVsbG8sIFdvcmxkIQ== + let input: BoundedVec = BoundedVec::from_array([ + 83, 71, 86, 115, 98, 71, 56, 115, 73, 70, 100, 118, 99, 109, 120, 107, 73, 81, 61, 61, + ]); + // base64: SGVsbG8sIFdvcmxkIQ + let input_no_pad: BoundedVec = BoundedVec::from_array([ + 83, 71, 86, 115, 98, 71, 56, 115, 73, 70, 100, 118, 99, 109, 120, 107, 73, 81, + ]); + // "Hello, World!" + let expected: BoundedVec = + BoundedVec::from_array([72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33]); + + // all configurations should decode the same way + let result = STANDARD.decode_var(input); + assert(result == expected); + let result = STANDARD_NO_PAD.decode_var(input_no_pad); + assert(result == expected); + let result = URL_SAFE_WITH_PAD.decode_var(input); + assert(result == expected); + let result = URL_SAFE.decode_var(input_no_pad); + assert(result == expected); +}