use std::collections::HashMap;
use crate::{
common::BitSourceBuilder,
qrcode::decoder::{decoded_bit_stream_parser, ErrorCorrectionLevel, Version},
};
#[test]
fn testSimpleByteMode() {
let mut builder = BitSourceBuilder::new();
builder.write(0x04, 4); builder.write(0x03, 8); builder.write(0xF1, 8);
builder.write(0xF2, 8);
builder.write(0xF3, 8);
let result = decoded_bit_stream_parser::decode(
builder.toByteArray(),
Version::getVersionForNumber(1).expect("unwrap"),
ErrorCorrectionLevel::H,
&HashMap::new(),
)
.expect("unwrap")
.getText()
.to_string();
assert_eq!("\u{00f1}\u{00f2}\u{00f3}", result);
}
#[test]
fn testSimpleSJIS() {
let mut builder = BitSourceBuilder::new();
builder.write(0x04, 4); builder.write(0x04, 8); builder.write(0xA1, 8);
builder.write(0xA2, 8);
builder.write(0xA3, 8);
builder.write(0xD0, 8);
let result = decoded_bit_stream_parser::decode(
builder.toByteArray(),
Version::getVersionForNumber(1).expect("unwrap"),
ErrorCorrectionLevel::H,
&HashMap::new(),
)
.expect("unwrap")
.getText()
.to_owned();
assert_eq!("\u{ff61}\u{ff62}\u{ff63}\u{ff90}", result);
}
#[test]
fn testECI() {
let mut builder = BitSourceBuilder::new();
builder.write(0x07, 4); builder.write(0x02, 8); builder.write(0x04, 4); builder.write(0x03, 8); builder.write(0xA1, 8);
builder.write(0xA2, 8);
builder.write(0xA3, 8);
let result = decoded_bit_stream_parser::decode(
builder.toByteArray(),
Version::getVersionForNumber(1).expect("unwrap"),
ErrorCorrectionLevel::H,
&HashMap::new(),
)
.expect("unwrap")
.getText()
.to_owned();
assert_eq!("\u{00ed}\u{00f3}\u{00fa}", result);
}
#[test]
fn testHanzi() {
let mut builder = BitSourceBuilder::new();
builder.write(0x0D, 4); builder.write(0x01, 4); builder.write(0x01, 8); builder.write(0x03C1, 13);
let result = decoded_bit_stream_parser::decode(
builder.toByteArray(),
Version::getVersionForNumber(1).expect("unwrap"),
ErrorCorrectionLevel::H,
&HashMap::new(),
)
.expect("unwrap")
.getText()
.to_owned();
assert_eq!("\u{963f}", result);
}
#[test]
fn testHanziLevel1() {
let mut builder = BitSourceBuilder::new();
builder.write(0x0D, 4); builder.write(0x01, 4); builder.write(0x01, 8); builder.write(0x0181, 13);
let result = decoded_bit_stream_parser::decode(
builder.toByteArray(),
Version::getVersionForNumber(1).expect("unwrap"),
ErrorCorrectionLevel::H,
&HashMap::new(),
)
.expect("unwrap")
.getText()
.to_owned();
assert_eq!("\u{30a2}", result);
}