use crate::{
Exceptions,
common::{BitMatrix, Eci},
qrcode::cpp_port::decoder::Decode,
};
#[test]
fn RMQRCodeR7x43M() {
let bitMatrix = BitMatrix::parse_strings(
r"XXXXXXX X X X X X X XXX X X X X X X X X XXX
X X X XXX XXXXX XXX X X XX X X
X XXX X X XXX X X X XXXX XXXX X X XXXXXXXX
X XXX X XX XXXXX XXXXXX X X X X
X XXX X XX XXX XXXXXXX X X XX X X X
X X XXXXX XXX XXX XXXXX XXXXXX X X
XXXXXXX X X X X X X XXX X X X X X X X XXXXX
",
"X",
" ",
)
.unwrap();
let result = Decode(&bitMatrix).unwrap();
assert_eq!(result.text(), "ABCDEFG");
}
#[test]
fn RMQRCodeR7x43MError6Bits() {
let bitMatrix = BitMatrix::parse_strings(
r"XXXXXXX X X X X X X XXX X X X X X X X X XXX
X X X XXX XXXXX XXX X X XX X X
X XXX X X XXX X X XXXX XXXX XX X XXXXXXXX
X XXX X XX XXXXX X XXXXXX X X X X
X XXX X XX XXX XXXXXXX X X XXX X X X
X X XXXXX XXX XXX XXXX X XXXXXX X X
XXXXXXX X X X X X X XXX X X X X X X X XXXXX
",
"X",
" ",
)
.unwrap();
let result = Decode(&bitMatrix);
assert!(matches!(
result.err(),
Some(Exceptions::ReedSolomonException(_))
));
}
#[test]
fn RMQRCodeR7x139H() {
let bitMatrix = BitMatrix::parse_strings(
r"XXXXXXX X X X X X X X X X XXX X X X X X X X X X X X X XXX X X X X X X X X X X X X XXX X X X X X X X X X X X X XXX X X X X X X X X X X X XXX
X X XX XXX X X X X X XX XX X X X XXX XX XXXX XXX XX XX XX X XX X X X XXX X XX XX XX X X XX X XX XXXX X X X
X XXX X X XXXXX X XXXXX X X XXX XX X XXX X XX XXX XX X XXX X X XXXX X XXXXXXX X XX XXX X X X XXX X XXXXX
X XXX X XXXX X XX X X XX XX X XX XX X XXX XX X XX X XX X X XX X X XXX X X X X X X X XX X XX XX X X X
X XXX X XXXX XXXXX X X XXXXXX XX X XXXX X XXXX X XXX XXXX X XXXXXXX XXX XXXXXX X X XX X XXX X XXXXXXXXX X XXXX X X X X X
X X X XX XX X X XX X X X XXXX X X X XX X XXX X X X X X XXX XX XXX X X XX XXXX XX X X X X XXXXX XXX XX X XX X
XXXXXXX X X X X X X X X X XXX X X X X X X X X X X X X XXX X X X X X X X X X X X X XXX X X X X X X X X X X X X XXX X X X X X X X X X X XXXXX
",
"X",
" ",
)
.unwrap();
let result = Decode(&bitMatrix).unwrap();
assert_eq!(result.text(), "1234567890,ABCDEFGHIJKLMOPQRSTUVW");
}
#[test]
fn RMQRCodeR9x59H() {
let bitMatrix = BitMatrix::parse_strings(
r"XXXXXXX X X X X X XXX X X X X X X X X XXX X X X X X X X XXX
X X X XXXXX XXX X X XXXXXXXX X X X X XXXX X X
X XXX X XX XXX X XXX XXXX X XXXXXXX X XXXXX X X
X XXX X XXXX X XX X XX XXXX XX XX X X X XXX X
X XXX X X X XX XXXXXX X X XX X XX X X XXXX XXXXX
X X X X X X XXX X X X XX X XXXX XX X X X X
XXXXXXX XXXXX XXXXXX X XX XXX X XXXX X X X XX X X
XXX XXXX XX XXX X XXXXXXX X XX XXX XX XX X
XXX X X X X X X X XXX X X X X X X X X XXX X X X X X X XXXXX
",
"X",
" ",
)
.unwrap();
let result = Decode(&bitMatrix).unwrap();
assert_eq!(result.text(), "ABCDEFGHIJKLMN");
}
#[test]
fn RMQRCodeR9x77M() {
let bitMatrix = BitMatrix::parse_strings(
r"XXXXXXX X X X X X X X X XXX X X X X X X X X X X X XXX X X X X X X X X X X XXX
X X XXX XX XXX XXX XXXX XXX XX X XXXXXXXXX X XXX XXXX X XXXX XX XXX X
X XXX X X X X XXX X XXXX XX XX X XX XX XXX XXXX X X XX X X XX X
X XXX X X X XXXXXX X XX XXXX X XXX X XX X XX XX XX X XXX X X XXX XX
X XXX X XXXX X X XXXX XXXX XX XXX X XX XXXXXX X X XXX XX XXXXX
X X X X XX XXX X X XX X X XX XXX X X X X X XX XXXXX X
XXXXXXX X XX XX X XXXX X X X X X XX XXX X XX X XXX XX X X
X XXXXX XX X XXXXXX XX XXXXX X XX XX XXXXX XXX X
XXX X X X X X X X X X X XXX X X X X X X X X X X X XXX X X X X X X X X X XXXXX
",
"X",
" ",
)
.unwrap();
let result = Decode(&bitMatrix).unwrap();
assert_eq!(result.text(), "__ABCDEFGH__1234567890___ABCDEFGHIJK");
}
#[test]
fn RMQRCodeR11x27H() {
let bitMatrix = BitMatrix::parse_strings(
r"XXXXXXX X X X X X X X X XXX
X X XX X X X X
X XXX X X XX X X XX
X XXX X XXXX XX X XXXXXX
X XXX X X X XX XX XXX X
X X XXX X XX XXXX X
XXXXXXX X XX X XXXXX
X X X X X
XXXX X X X XX XXXXXX X X
X XX XXXXXX XXX XXXX X X
XXX X X X X X X X X X XXXXX
",
"X",
" ",
)
.unwrap();
let result = Decode(&bitMatrix).unwrap();
assert_eq!(result.text(), "ABCDEF");
}
#[test]
fn RMQRCodeR13x27M_ECI() {
let bitMatrix = BitMatrix::parse_strings(
r"XXXXXXX X X X X X X X X XXX
X X XX XX XXX XX X
X XXX X XX X XX XX XXX X
X XXX X XX X XX X X XX
X XXX X XXXXXXX X X XX
X X XX X XXX XX XX
XXXXXXX X X X X XXX
XXX XX X XX XXX
XXX XX XX X X XX XX XXXXX
XXX X X X X X X
X XX X X XX X XX X X X X
X X X X X X X X X
XXX X X X X X X X X X XXXXX
",
"X",
" ",
)
.unwrap();
let result = Decode(&bitMatrix).unwrap();
assert_eq!(result.text(), "AB貫12345AB");
assert!(result.content().has_eci);
assert_eq!(result.content().eci_positions[0].0, Eci::Shift_JIS);
}
#[test]
fn RMQRCodeR15x59H_GS1() {
let bitMatrix = BitMatrix::parse_strings(
r"XXXXXXX X X X X X XXX X X X X X X X X XXX X X X X X X X XXX
X X XXX XXX X XXXXX XX XXX X X X X X X XXX X
X XXX X XXX XX X XXX XXX X X XXX XXXXX XX XXX XX
X XXX X X X XX X X XXX X X X XXXXX XX XXX
X XXX X XX XXX XX X X X XX XX XX XXX XXXX X XXXX
X X X X X X X XXX XXX XXXX X XXX XX X X
XXXXXXX X XXX XXXX X XX XXXX X X XX XXX XXXXX X
X XXX X XXXXX X XX XXXX XX X
XX XX X X X XXXXX XX X X XX XX X XX X X XX X
XX XX X XXXXXX XXX XX X X XX XXX X X XXX
X X XX XXXXXXXXXX XX X X XX XX XX X XXXX XX XXXXXX
XX X XX X XXX X X X XXX X XXX X X XXX XXXX X
XXXX X X XX XXX X X X XX XXXXX XX X XX XXX X X
X X X XX XXX XXXXXXX XXX X XXX XX X X X XX X
XXX X X X X X X X XXX X X X X X X X X XXX X X X X X X XXXXX
",
"X",
" ",
)
.unwrap();
let _result = Decode(&bitMatrix).unwrap();
}
#[test]
fn RMQRCodeR17x99H() {
let bitMatrix = BitMatrix::parse_strings(
r"XXXXXXX X X X X X X X XXX X X X X X X X X X X X XXX X X X X X X X X X X X XXX X X X X X X X X X XXX
X X X XXXXX XXX X X X XX X X XX XXXXX X XX X XX XXX X X XX X X XXX X X XX X X X
X XXX X X X XXX XXX X XXX XXX X X XX XXXX X X X X XXX XXXXX X X XX X XX X X
X XXX X XX X XX X X XX X XXXX X XXXXX X X XX X XXX XX X X X X XXXXXX X
X XXX X X XX X X X X X X X X XXX XX XXXXXX X X XXX X XXXXXX X X X X X X X XX X
X X XX X X XXXXX XX X XXX X XX X X XXX X XXX XXX X XXXX XX X X X XX XXXX
XXXXXXX X XX X XX X X XXX XX X XXXX X X XXX X X XX X XXXX XX X X X XX X XXXX
XX XX XX XX X XX X X X XXX XX X X XXX XXXX XX X X X X XX XX XXX
XX X XXX X X XXXX XXX XXXXX XXX XXX X X X X X XXX X XX XX X X X X XX X XXX
X XXXXX X X XXXXX X XX X XX XXXX X X XXXXX X XX X XX X XX X XX XX
X XX XX X XX XXX XX XXXXXX X XXXXX XX XXXX X X X X XXXX XX X X XXXXXX XX X X
XXX XX XXX XX XX X X X XX X X X X XX XXX XXXX X XX XXX X X X XXXX XXXXX X XXX
X X XX X XX XX XX X X XX X X X XX XXXXXXXX X XX XX X X X X X XX X X XXXXXXXXXXX
X X X XX X X X XX XXXX X XXX X XX X X X X X XXX XXXXX XX X X X XXXXX X X X
XXXX XX XX X XXXX XXXX X XX X XX XX XX XXXX XXX X X XX XX X XXXX X XXX XX X XX X X
X XXX XX XXX X X X XXX X XXX X XXXX XX X X XXXXX X XX X X X X X X X X XXXX XXXX X
XXX X X X X X X X X X XXX X X X X X X X X X X X XXX X X X X X X X X X X X XXX X X X X X X X X XXXXX
",
"X",
" ",
)
.unwrap();
let result = Decode(&bitMatrix).unwrap();
assert_eq!(
result.text(),
"1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890________________________"
);
}