use crate::Reader;
use super::{test_case_util, RSSExpandedReader};
#[test]
fn testDecodingRowByRow() {
let mut rssExpandedReader = RSSExpandedReader::new();
let binaryMap = test_case_util::getBinaryBitmap("1000.png");
let firstRowNumber = binaryMap.get_height() / 3;
let firstRow = binaryMap.get_black_row(firstRowNumber).expect("get row");
assert!({
rssExpandedReader.decodeRow2pairs(firstRowNumber as u32, &firstRow)
}
.is_err());
assert_eq!(1, rssExpandedReader.getRows().len());
let firstExpandedRow = &mut rssExpandedReader.rows[0];
assert_eq!(firstRowNumber as u32, firstExpandedRow.getRowNumber());
assert_eq!(2, firstExpandedRow.getPairs().len());
firstExpandedRow.getPairsMut()[1]
.getFinderPatternMut()
.as_mut()
.unwrap()
.getStartEndMut()[1] = 0;
rssExpandedReader
.pairs
.last_mut()
.as_mut()
.unwrap()
.getFinderPatternMut()
.as_mut()
.unwrap()
.getStartEndMut()[1] = 0;
let secondRowNumber = 2 * binaryMap.get_height() / 3;
let mut secondRow = binaryMap
.get_black_row(secondRowNumber)
.expect("get row")
.into_owned();
secondRow.reverse();
let totalPairs = rssExpandedReader
.decodeRow2pairs(secondRowNumber as u32, &secondRow)
.expect("decode pairs");
let result = RSSExpandedReader::constructRXingResult(&totalPairs).expect("construct");
assert_eq!("(01)98898765432106(3202)012345(15)991231", result.getText());
}
#[test]
fn testCompleteDecode() {
let mut rssExpandedReader = RSSExpandedReader::new();
let mut binaryMap = test_case_util::getBinaryBitmap("1000.png");
let result = rssExpandedReader.decode(&mut binaryMap).expect("decode");
assert_eq!("(01)98898765432106(3202)012345(15)991231", result.getText());
}