Code refactor and numeric support

This commit is contained in:
Chris Wood
2023-12-31 21:30:41 +00:00
parent 5fac0353e6
commit 8f9f0bfa42
7 changed files with 124 additions and 9 deletions

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
use rxing::{oned::TelepenReader, BarcodeFormat};
use rxing::{oned::TelepenReader, BarcodeFormat, oned::TelepenCommon};
mod common;
@@ -22,7 +22,7 @@ mod common;
* @author Chris Wood
*/
#[test]
fn telepen_black_box1_test_case() {
fn telepen_alpha_test_case() {
const NUMTESTS: u32 = 5;
let mut tester = common::AbstractBlackBoxTestCase::new(
@@ -36,3 +36,46 @@ fn telepen_black_box1_test_case() {
tester.test_black_box();
}
#[test]
fn telepen_numeric_test_case() {
let mut tester = common::AbstractBlackBoxTestCase::new(
"test_resources/blackbox/telepen-2",
TelepenReader::new(),
BarcodeFormat::TELEPEN,
);
tester.add_test_complex(1, 1, 0, 0, 0.0);
tester.add_hint(rxing::DecodeHintType::TELEPEN_AS_NUMERIC, rxing::DecodeHintValue::TelepenAsNumeric(true));
tester.ignore_pure = true;
tester.test_black_box();
}
#[test]
fn telepen_checksum_test1() {
let contents = "Hello world!";
let checksum = TelepenCommon::calculate_checksum(contents);
assert_eq!('\u{1a}', checksum);
}
#[test]
fn telepen_checksum_test2() {
let contents = "ABC123456";
let checksum = TelepenCommon::calculate_checksum(contents);
assert_eq!('\u{1}', checksum);
}
#[test]
fn telepen_alpha_to_numeric_test() {
let ascii = "'=Siu";
let result = TelepenCommon::ascii_to_numeric(ascii);
assert_eq!("1234567890", result);
}
#[test]
fn telepen_numeric_to_ascii_test() {
let numeric = "1234567890";
let result = TelepenCommon::numeric_to_ascii(numeric).unwrap();
assert_eq!("'=Siu", result);
}