mirror of
https://github.com/starovoid/rxing.git
synced 2026-07-26 04:12:34 +00:00
126 lines
2.5 KiB
Rust
126 lines
2.5 KiB
Rust
/*
|
|
* Copyright 2017 Huy Cuong Nguyen
|
|
* Copyright 2008 ZXing authors
|
|
*/
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
use crate::{common::BitMatrix, qrcode::cpp_port::decoder::Decode, Exceptions};
|
|
|
|
#[test]
|
|
fn MQRCodeM3L() {
|
|
const CODE_STR: &str = r"XXXXXXX X X X X
|
|
X X X X
|
|
X XXX X XXXXXXX
|
|
X XXX X X X XX
|
|
X XXX X X XX
|
|
X X X X X X
|
|
XXXXXXX X XX
|
|
X X X
|
|
XXXXXX X X X
|
|
X XX XXX
|
|
XXX XX XXXX XXX
|
|
X X XXX X
|
|
X XXXXX XXX X X
|
|
X X X XXX
|
|
XXX XX X X XXXX
|
|
";
|
|
let bitMatrix = BitMatrix::parse_strings(CODE_STR, "X", " ").unwrap();
|
|
|
|
let result = Decode(&bitMatrix).unwrap();
|
|
assert!(result.isValid());
|
|
}
|
|
|
|
#[test]
|
|
fn MQRCodeM3M() {
|
|
const CODE_STR: &str = r"XXXXXXX X X X X
|
|
X X XX
|
|
X XXX X X XX XX
|
|
X XXX X X X
|
|
X XXX X XX XXXX
|
|
X X XX
|
|
XXXXXXX X XXXX
|
|
X XXX
|
|
X XX XX X X
|
|
X X XX
|
|
XX XX XXXXXXX
|
|
X X X
|
|
XX X X X
|
|
X X X
|
|
X X XXXX XXX
|
|
";
|
|
let bitMatrix = BitMatrix::parse_strings(CODE_STR, "X", " ").unwrap();
|
|
|
|
let result = Decode(&bitMatrix).unwrap();
|
|
assert!(result.isValid());
|
|
}
|
|
|
|
#[test]
|
|
fn MQRCodeM1() {
|
|
const CODE_STR: &str = r"XXXXXXX X X
|
|
X X
|
|
X XXX X XXX
|
|
X XXX X XX
|
|
X XXX X X
|
|
X X XX
|
|
XXXXXXX X
|
|
X
|
|
XX X
|
|
X XXXXX X
|
|
X XXXXXX X
|
|
";
|
|
let bitMatrix = BitMatrix::parse_strings(CODE_STR, "X", " ").unwrap();
|
|
let result = Decode(&bitMatrix).unwrap();
|
|
assert!(result.isValid());
|
|
assert_eq!("123", result.text());
|
|
}
|
|
|
|
#[test]
|
|
fn MQRCodeM1Error4Bits() {
|
|
const CODE_STR: &str = r"XXXXXXX X X
|
|
X X XX
|
|
X XXX X X
|
|
X XXX X XX
|
|
X XXX X X
|
|
X X XX
|
|
XXXXXXX X
|
|
X
|
|
XX X
|
|
X XXXXXX
|
|
X XXXXXXX
|
|
";
|
|
let bitMatrix = BitMatrix::parse_strings(CODE_STR, "X", " ").unwrap();
|
|
let result = Decode(&bitMatrix);
|
|
dbg!(&result);
|
|
assert!(matches!(
|
|
result.err(),
|
|
Some(Exceptions::ReedSolomonException(_))
|
|
));
|
|
// assert_eq!(Error::Checksum, result.error());
|
|
// assert!(result.text().is_empty());
|
|
}
|
|
|
|
#[test]
|
|
fn MQRCodeM4() {
|
|
const CODE_STR: &str = r"XXXXXXX X X X X X
|
|
X X XX X XX
|
|
X XXX X X X XX
|
|
X XXX X XX XX XX
|
|
X XXX X X XXXXX
|
|
X X XX X
|
|
XXXXXXX XX X XX
|
|
X XX XX
|
|
X X XXX X XXX
|
|
XX X XX XX X
|
|
XX XXXX X XX XX
|
|
XX XX X XX XX
|
|
XXX XXX XXX XX XX
|
|
X X X XX X
|
|
X X XX XXXXX
|
|
X X X X X
|
|
X XXXXXXX X X X
|
|
";
|
|
let bitMatrix = BitMatrix::parse_strings(CODE_STR, "X", " ").unwrap();
|
|
let result = Decode(&bitMatrix).unwrap();
|
|
assert!(result.isValid());
|
|
}
|