1
Fork 0
leetcode/tests/add_binary.rs

39 lines
1.2 KiB
Rust
Raw Normal View History

2022-04-08 20:53:04 +00:00
use leetcode::add_binary::add_binary;
use test_case::test_case;
const A_256: &str = "10110101010001101011001011100011\
10100111101001010011000011000100\
11110111001001111010110000000010\
11100100110010110111101001100010\
10000101100010101010000111100100\
10100110010010100110111010011001\
11110111011101010000000110101001\
10000101110010101101011011011000";
const B_256: &str = "11101111111010110101001000000110\
10010101100011001110011100101111\
10011111011100000010100111010100\
11101111111010111010011111001011\
00000001001010111100100000010010\
10110001010101011100001100000010\
11010000010010011101100000000111\
10000100111011110110000001110100";
const EXPECTED_257: &str = "11010010100110010000001001110101\
00011110100110010000101111111010\
01001011010010111110101011101011\
11101010010110111001000100010110\
11000011010110110011010011111011\
10101011110100000001100011001110\
01100011110111110110110011011000\
10000101010111010001101110100110\
0";
#[test_case("11", "1", "100"; "carry multiple")]
#[test_case("1010", "1011", "10101"; "carry single")]
#[test_case(A_256, B_256, EXPECTED_257; "256 bit numbers")]
fn test_add_binary(a: &str, b: &str, expected: &str) {
assert_eq!(add_binary(a.to_string(), b.to_string()), expected);
}