cargo fmt

This commit is contained in:
Henry Schimke
2022-12-16 16:52:24 -06:00
parent 0fbd3baef9
commit afc3ee8fa1
7 changed files with 169 additions and 143 deletions

View File

@@ -36,7 +36,7 @@ impl ExpandedRow {
} }
#[cfg(test)] #[cfg(test)]
pub(crate) fn getPairsMut(&mut self) -> &mut [ExpandedPair]{ pub(crate) fn getPairsMut(&mut self) -> &mut [ExpandedPair] {
&mut self.pairs &mut self.pairs
} }

View File

@@ -31,4 +31,4 @@ mod rss_expanded_image_2_string_test_case;
mod rss_expanded_stacked_internal_test_case; mod rss_expanded_stacked_internal_test_case;
#[cfg(test)] #[cfg(test)]
mod test_case_util; mod test_case_util;

View File

@@ -24,168 +24,179 @@
* http://www.piramidepse.com/ * http://www.piramidepse.com/
*/ */
use std::{rc::Rc, collections::HashMap}; use std::{collections::HashMap, rc::Rc};
use crate::{BinaryBitmap, common::{GlobalHistogramBinarizer, BitArray}, BufferedImageLuminanceSource, oned::{rss::expanded::RSSExpandedReader, OneDReader}, BarcodeFormat};
use crate::{
common::{BitArray, GlobalHistogramBinarizer},
oned::{rss::expanded::RSSExpandedReader, OneDReader},
BarcodeFormat, BinaryBitmap, BufferedImageLuminanceSource,
};
/** /**
* @author Pablo Orduña, University of Deusto (pablo.orduna@deusto.es) * @author Pablo Orduña, University of Deusto (pablo.orduna@deusto.es)
* @author Eduardo Castillejo, University of Deusto (eduardo.castillejo@deusto.es) * @author Eduardo Castillejo, University of Deusto (eduardo.castillejo@deusto.es)
*/ */
#[test] #[test]
fn testDecodeRow2string1() { fn testDecodeRow2string1() {
assertCorrectImage2string("1.png", "(11)100224(17)110224(3102)000100"); assertCorrectImage2string("1.png", "(11)100224(17)110224(3102)000100");
} }
#[test] #[test]
fn testDecodeRow2string2() { fn testDecodeRow2string2() {
assertCorrectImage2string("2.png", "(01)90012345678908(3103)001750"); assertCorrectImage2string("2.png", "(01)90012345678908(3103)001750");
} }
#[test] #[test]
fn testDecodeRow2string3() { fn testDecodeRow2string3() {
assertCorrectImage2string("3.png", "(10)12A"); assertCorrectImage2string("3.png", "(10)12A");
} }
#[test] #[test]
fn testDecodeRow2string4() { fn testDecodeRow2string4() {
assertCorrectImage2string("4.png", "(01)98898765432106(3202)012345(15)991231"); assertCorrectImage2string("4.png", "(01)98898765432106(3202)012345(15)991231");
} }
#[test] #[test]
fn testDecodeRow2string5() { fn testDecodeRow2string5() {
assertCorrectImage2string("5.png", "(01)90614141000015(3202)000150"); assertCorrectImage2string("5.png", "(01)90614141000015(3202)000150");
} }
#[test] #[test]
fn testDecodeRow2string7() { fn testDecodeRow2string7() {
assertCorrectImage2string("7.png", "(10)567(11)010101"); assertCorrectImage2string("7.png", "(10)567(11)010101");
} }
#[test] #[test]
fn testDecodeRow2string10() { fn testDecodeRow2string10() {
let expected = "(01)98898765432106(15)991231(3103)001750(10)12A(422)123(21)123456(423)012345678901"; let expected =
"(01)98898765432106(15)991231(3103)001750(10)12A(422)123(21)123456(423)012345678901";
assertCorrectImage2string("10.png", expected); assertCorrectImage2string("10.png", expected);
} }
#[test] #[test]
fn testDecodeRow2string11() { fn testDecodeRow2string11() {
assertCorrectImage2string("11.png", "(01)98898765432106(15)991231(3103)001750(10)12A(422)123(21)123456"); assertCorrectImage2string(
} "11.png",
"(01)98898765432106(15)991231(3103)001750(10)12A(422)123(21)123456",
);
}
#[test] #[test]
fn testDecodeRow2string12() { fn testDecodeRow2string12() {
assertCorrectImage2string("12.png", "(01)98898765432106(3103)001750"); assertCorrectImage2string("12.png", "(01)98898765432106(3103)001750");
} }
#[test] #[test]
fn testDecodeRow2string13() { fn testDecodeRow2string13() {
assertCorrectImage2string("13.png", "(01)90012345678908(3922)795"); assertCorrectImage2string("13.png", "(01)90012345678908(3922)795");
} }
#[test] #[test]
fn testDecodeRow2string14() { fn testDecodeRow2string14() {
assertCorrectImage2string("14.png", "(01)90012345678908(3932)0401234"); assertCorrectImage2string("14.png", "(01)90012345678908(3932)0401234");
} }
#[test] #[test]
fn testDecodeRow2string15() { fn testDecodeRow2string15() {
assertCorrectImage2string("15.png", "(01)90012345678908(3102)001750(11)100312"); assertCorrectImage2string("15.png", "(01)90012345678908(3102)001750(11)100312");
} }
#[test] #[test]
fn testDecodeRow2string16() { fn testDecodeRow2string16() {
assertCorrectImage2string("16.png", "(01)90012345678908(3202)001750(11)100312"); assertCorrectImage2string("16.png", "(01)90012345678908(3202)001750(11)100312");
} }
#[test] #[test]
fn testDecodeRow2string17() { fn testDecodeRow2string17() {
assertCorrectImage2string("17.png", "(01)90012345678908(3102)001750(13)100312"); assertCorrectImage2string("17.png", "(01)90012345678908(3102)001750(13)100312");
} }
#[test] #[test]
fn testDecodeRow2string18() { fn testDecodeRow2string18() {
assertCorrectImage2string("18.png", "(01)90012345678908(3202)001750(13)100312"); assertCorrectImage2string("18.png", "(01)90012345678908(3202)001750(13)100312");
} }
#[test] #[test]
fn testDecodeRow2string19() { fn testDecodeRow2string19() {
assertCorrectImage2string("19.png", "(01)90012345678908(3102)001750(15)100312"); assertCorrectImage2string("19.png", "(01)90012345678908(3102)001750(15)100312");
} }
#[test] #[test]
fn testDecodeRow2string20() { fn testDecodeRow2string20() {
assertCorrectImage2string("20.png", "(01)90012345678908(3202)001750(15)100312"); assertCorrectImage2string("20.png", "(01)90012345678908(3202)001750(15)100312");
} }
#[test] #[test]
fn testDecodeRow2string21() { fn testDecodeRow2string21() {
assertCorrectImage2string("21.png", "(01)90012345678908(3102)001750(17)100312"); assertCorrectImage2string("21.png", "(01)90012345678908(3102)001750(17)100312");
} }
#[test] #[test]
fn testDecodeRow2string22() { fn testDecodeRow2string22() {
assertCorrectImage2string("22.png", "(01)90012345678908(3202)001750(17)100312"); assertCorrectImage2string("22.png", "(01)90012345678908(3202)001750(17)100312");
} }
#[test] #[test]
fn testDecodeRow2string25() { fn testDecodeRow2string25() {
assertCorrectImage2string("25.png", "(10)123"); assertCorrectImage2string("25.png", "(10)123");
} }
#[test] #[test]
fn testDecodeRow2string26() { fn testDecodeRow2string26() {
assertCorrectImage2string("26.png", "(10)5678(11)010101"); assertCorrectImage2string("26.png", "(10)5678(11)010101");
} }
#[test] #[test]
fn testDecodeRow2string27() { fn testDecodeRow2string27() {
assertCorrectImage2string("27.png", "(10)1098-1234"); assertCorrectImage2string("27.png", "(10)1098-1234");
} }
#[test] #[test]
fn testDecodeRow2string28() { fn testDecodeRow2string28() {
assertCorrectImage2string("28.png", "(10)1098/1234"); assertCorrectImage2string("28.png", "(10)1098/1234");
} }
#[test] #[test]
fn testDecodeRow2string29() { fn testDecodeRow2string29() {
assertCorrectImage2string("29.png", "(10)1098.1234"); assertCorrectImage2string("29.png", "(10)1098.1234");
} }
#[test] #[test]
fn testDecodeRow2string30() { fn testDecodeRow2string30() {
assertCorrectImage2string("30.png", "(10)1098*1234"); assertCorrectImage2string("30.png", "(10)1098*1234");
} }
#[test] #[test]
fn testDecodeRow2string31() { fn testDecodeRow2string31() {
assertCorrectImage2string("31.png", "(10)1098,1234"); assertCorrectImage2string("31.png", "(10)1098,1234");
} }
#[test] #[test]
fn testDecodeRow2string32() { fn testDecodeRow2string32() {
assertCorrectImage2string("32.png", "(15)991231(3103)001750(10)12A(422)123(21)123456(423)0123456789012"); assertCorrectImage2string(
} "32.png",
"(15)991231(3103)001750(10)12A(422)123(21)123456(423)0123456789012",
);
}
fn assertCorrectImage2string( fileName:&str, expected:&str) fn assertCorrectImage2string(fileName: &str, expected: &str) {
{ let path = format!("test_resources/blackbox/rssexpanded-1/{}", fileName);
let path = format!("test_resources/blackbox/rssexpanded-1/{}",fileName);
let image = image::open(path).expect("load image"); let image = image::open(path).expect("load image");
let binaryMap = let binaryMap = BinaryBitmap::new(Rc::new(GlobalHistogramBinarizer::new(Box::new(
BinaryBitmap::new(Rc::new(GlobalHistogramBinarizer::new(Box::new(BufferedImageLuminanceSource::new(image))))); BufferedImageLuminanceSource::new(image),
))));
let rowNumber = binaryMap.getHeight() / 2; let rowNumber = binaryMap.getHeight() / 2;
let row = binaryMap.getBlackRow(rowNumber, &mut BitArray::new()).expect("get row"); let row = binaryMap
.getBlackRow(rowNumber, &mut BitArray::new())
let mut rssExpandedReader = RSSExpandedReader::new(); .expect("get row");
let result = rssExpandedReader.decodeRow(rowNumber as u32, &row, &HashMap::new()).expect("should decode");
let mut rssExpandedReader = RSSExpandedReader::new();
let result = rssExpandedReader
.decodeRow(rowNumber as u32, &row, &HashMap::new())
.expect("should decode");
assert_eq!(&BarcodeFormat::RSS_EXPANDED, result.getBarcodeFormat()); assert_eq!(&BarcodeFormat::RSS_EXPANDED, result.getBarcodeFormat());
assert_eq!(expected, result.getText()); assert_eq!(expected, result.getText());
} }

View File

@@ -142,9 +142,9 @@ pub struct RSSExpandedReader {
oddCounts: [u32; 4], oddCounts: [u32; 4],
evenCounts: [u32; 4], evenCounts: [u32; 4],
pub(super) pairs: Vec<ExpandedPair>, //new ArrayList<>(MAX_PAIRS); pub(super) pairs: Vec<ExpandedPair>, //new ArrayList<>(MAX_PAIRS);
pub(super) rows: Vec<ExpandedRow>, // new ArrayList<>(); pub(super) rows: Vec<ExpandedRow>, // new ArrayList<>();
startEnd: [u32; 2], // new int[2]; startEnd: [u32; 2], // new int[2];
startFromEven: bool, startFromEven: bool,
} }
impl AbstractRSSReaderTrait for RSSExpandedReader {} impl AbstractRSSReaderTrait for RSSExpandedReader {}
@@ -534,8 +534,8 @@ impl RSSExpandedReader {
&mut self.rows &mut self.rows
} }
#[cfg(test)] #[cfg(test)]
pub(crate) fn getRows(& self) -> & [ExpandedRow] { pub(crate) fn getRows(&self) -> &[ExpandedRow] {
& self.rows &self.rows
} }
// Not private for unit testing // Not private for unit testing

View File

@@ -24,60 +24,75 @@
* http://www.piramidepse.com/ * http://www.piramidepse.com/
*/ */
use crate::{Exceptions, common::BitArray, oned::rss::expanded::ExpandedPair, Reader}; use crate::{common::BitArray, oned::rss::expanded::ExpandedPair, Exceptions, Reader};
use super::{RSSExpandedReader, test_case_util};
use super::{test_case_util, RSSExpandedReader};
/** /**
* Tests {@link RSSExpandedReader} handling of stacked RSS barcodes. * Tests {@link RSSExpandedReader} handling of stacked RSS barcodes.
*/ */
#[test]
#[test] fn testDecodingRowByRow() {
fn testDecodingRowByRow() { let mut rssExpandedReader = RSSExpandedReader::new();
let mut rssExpandedReader = RSSExpandedReader::new();
let binaryMap = test_case_util::getBinaryBitmap("1000.png"); let binaryMap = test_case_util::getBinaryBitmap("1000.png");
let firstRowNumber = binaryMap.getHeight() / 3; let firstRowNumber = binaryMap.getHeight() / 3;
let firstRow = binaryMap.getBlackRow(firstRowNumber, &mut BitArray::new()).expect("get row"); let firstRow = binaryMap
.getBlackRow(firstRowNumber, &mut BitArray::new())
.expect("get row");
// let tester = ; // let tester = ;
assert!(|| -> Result<Vec<ExpandedPair>,Exceptions> { assert!(|| -> Result<Vec<ExpandedPair>, Exceptions> {
rssExpandedReader.decodeRow2pairs(firstRowNumber as u32, &firstRow) rssExpandedReader.decodeRow2pairs(firstRowNumber as u32, &firstRow)
// fail(NotFoundException.class.getName() + " expected"); // fail(NotFoundException.class.getName() + " expected");
}().is_err()); }()
.is_err());
assert_eq!(1, rssExpandedReader.getRows().len()); assert_eq!(1, rssExpandedReader.getRows().len());
let firstExpandedRow = &mut rssExpandedReader.rows[0]; //&mut rssExpandedReader.getRowsMut()[0];//.expect("not None"); let firstExpandedRow = &mut rssExpandedReader.rows[0]; //&mut rssExpandedReader.getRowsMut()[0];//.expect("not None");
assert_eq!(firstRowNumber as u32, firstExpandedRow.getRowNumber()); assert_eq!(firstRowNumber as u32, firstExpandedRow.getRowNumber());
assert_eq!(2, firstExpandedRow.getPairs().len()); assert_eq!(2, firstExpandedRow.getPairs().len());
firstExpandedRow.getPairsMut()[1].getFinderPatternMut().as_mut().unwrap().getStartEndMut()[1] = 0; firstExpandedRow.getPairsMut()[1]
rssExpandedReader.pairs.last_mut().as_mut().unwrap().getFinderPatternMut().as_mut().unwrap().getStartEndMut()[1] = 0; .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.getHeight() / 3; let secondRowNumber = 2 * binaryMap.getHeight() / 3;
let mut secondRow = binaryMap.getBlackRow(secondRowNumber, &mut BitArray::new()).expect("get row"); let mut secondRow = binaryMap
.getBlackRow(secondRowNumber, &mut BitArray::new())
.expect("get row");
secondRow.reverse(); secondRow.reverse();
let totalPairs = rssExpandedReader.decodeRow2pairs(secondRowNumber as u32, &secondRow).expect("decode pairs"); let totalPairs = rssExpandedReader
.decodeRow2pairs(secondRowNumber as u32, &secondRow)
.expect("decode pairs");
let result = RSSExpandedReader::constructRXingResult(&totalPairs).expect("construct"); let result = RSSExpandedReader::constructRXingResult(&totalPairs).expect("construct");
assert_eq!("(01)98898765432106(3202)012345(15)991231", result.getText()); assert_eq!("(01)98898765432106(3202)012345(15)991231", result.getText());
} }
#[test] #[test]
fn testCompleteDecode() { fn testCompleteDecode() {
let mut rssExpandedReader = RSSExpandedReader::new(); let mut rssExpandedReader = RSSExpandedReader::new();
let binaryMap = test_case_util::getBinaryBitmap("1000.png"); let binaryMap = test_case_util::getBinaryBitmap("1000.png");
let result = rssExpandedReader.decode(&binaryMap).expect("decode"); let result = rssExpandedReader.decode(&binaryMap).expect("decode");
assert_eq!("(01)98898765432106(3202)012345(15)991231", result.getText()); assert_eq!("(01)98898765432106(3202)012345(15)991231", result.getText());
} }

View File

@@ -28,21 +28,21 @@ use std::rc::Rc;
use image::DynamicImage; use image::DynamicImage;
use crate::{BinaryBitmap, common::GlobalHistogramBinarizer, BufferedImageLuminanceSource}; use crate::{common::GlobalHistogramBinarizer, BinaryBitmap, BufferedImageLuminanceSource};
fn getBufferedImage(fileName: &str) -> DynamicImage {
fn getBufferedImage( fileName:&str) -> DynamicImage { let path = format!("test_resources/blackbox/rssexpandedstacked-2/{}", fileName);
let path = format!("test_resources/blackbox/rssexpandedstacked-2/{}",fileName);
let image = image::open(path).expect("load image"); let image = image::open(path).expect("load image");
image image
} }
pub(crate) fn getBinaryBitmap( fileName:&str) -> BinaryBitmap { pub(crate) fn getBinaryBitmap(fileName: &str) -> BinaryBitmap {
let bufferedImage = getBufferedImage(fileName); let bufferedImage = getBufferedImage(fileName);
let binaryMap = let binaryMap = BinaryBitmap::new(Rc::new(GlobalHistogramBinarizer::new(Box::new(
BinaryBitmap::new(Rc::new(GlobalHistogramBinarizer::new(Box::new(BufferedImageLuminanceSource::new(bufferedImage))))); BufferedImageLuminanceSource::new(bufferedImage),
))));
binaryMap
} binaryMap
}

View File

@@ -49,7 +49,7 @@ impl FinderPattern {
} }
#[cfg(test)] #[cfg(test)]
pub(crate)fn getStartEndMut(&mut self) -> &mut [usize]{ pub(crate) fn getStartEndMut(&mut self) -> &mut [usize] {
&mut self.startEnd &mut self.startEnd
} }