more minimal encoder functions pass

This commit is contained in:
Henry Schimke
2022-11-02 10:42:10 -05:00
parent 6935b9045d
commit 9b25b08745
3 changed files with 7 additions and 5 deletions

View File

@@ -312,7 +312,8 @@ impl MinimalECIInput {
encoderSet: &ECIEncoderSet, encoderSet: &ECIEncoderSet,
fnc1: Option<&str>, fnc1: Option<&str>,
) -> Vec<u16> { ) -> Vec<u16> {
let inputLength = stringToEncode.chars().count(); // let inputLength = stringToEncode.chars().count();
let inputLength = stringToEncode.graphemes(true).count();
// Array that represents vertices. There is a vertex for every character and encoding. // Array that represents vertices. There is a vertex for every character and encoding.
let mut edges = vec![vec![None; encoderSet.len()]; inputLength + 1]; //InputEdge[inputLength + 1][encoderSet.length()]; let mut edges = vec![vec![None; encoderSet.len()]; inputLength + 1]; //InputEdge[inputLength + 1][encoderSet.length()];

View File

@@ -557,7 +557,7 @@ fn encodeHighLevel(msg: &str) -> String {
fn encodeHighLevelCompare(msg: &str, compareSizeToMinimalEncoder: bool) -> String { fn encodeHighLevelCompare(msg: &str, compareSizeToMinimalEncoder: bool) -> String {
let encoded = high_level_encoder::encodeHighLevel(msg).expect("encodes"); let encoded = high_level_encoder::encodeHighLevel(msg).expect("encodes");
let encoded2 = minimal_encoder::encodeHighLevel(msg).expect("encodes"); let encoded2 = minimal_encoder::encodeHighLevel(msg).expect("encodes");
assert!(!compareSizeToMinimalEncoder || encoded2.len() <= encoded.len(), "{} <= {}", encoded2.len() , encoded.len()); assert!(!compareSizeToMinimalEncoder || encoded2.chars().count() <= encoded.chars().count(), "{} <= {}", encoded2.chars().count() , encoded.chars().count());
visualize(&encoded) visualize(&encoded)
} }

View File

@@ -1017,7 +1017,7 @@ impl Edge {
assert!(self.characterLength % 3 == 0); assert!(self.characterLength % 3 == 0);
let mut result = vec![0u8; self.characterLength as usize / 3 * 2]; let mut result = vec![0u8; self.characterLength as usize / 3 * 2];
let mut i = 0; let mut i = 0;
while i <= result.len() { while i < result.len() {
// for (int i = 0; i < result.length; i += 2) { // for (int i = 0; i < result.length; i += 2) {
Self::setC40Word( Self::setC40Word(
&mut result, &mut result,
@@ -1322,7 +1322,8 @@ impl RXingResult {
randomizeLengths.push(size); randomizeLengths.push(size);
} }
if Edge::getPreviousStartMode(current.previous.clone()) != current.getMode() { if Edge::getPreviousStartMode(current.previous.clone()) != current.getMode() {
Self::prepend(&current.getLatchBytes()?, &mut bytesAL);} Self::prepend(&current.getLatchBytes()?, &mut bytesAL);
}
size = 0; size = 0;
} }
@@ -1450,7 +1451,7 @@ impl Input {
pub fn getFNC1Character(&self) -> Option<char> { pub fn getFNC1Character(&self) -> Option<char> {
if self.internal.getFNC1Character() == 1000 { if self.internal.getFNC1Character() == 1000 {
None None
}else { } else {
Some(self.internal.getFNC1Character() as u8 as char) Some(self.internal.getFNC1Character() as u8 as char)
} }
} }