Fix 'multiline' truncating last character of each line.

Fixes #987.
This commit is contained in:
KtorZ 2024-08-01 15:16:46 +02:00
parent b8bb480bff
commit 91aa435f37
No known key found for this signature in database
GPG Key ID: 33173CB6F77F4277
2 changed files with 38 additions and 1 deletions

View File

@ -1,5 +1,19 @@
# Changelog # Changelog
## v1.1.0 - UNRELEASED
### Added
### Changed
- **aiken-project**: fix blueprint's apply truncating last character of outputs. See [#987](https://github.com/aiken-lang/aiken/issues/987). @KtorZ
### Removed
## v1.0.30-alpha - 2024-07-25 ## v1.0.30-alpha - 2024-07-25
### Added ### Added

View File

@ -167,7 +167,7 @@ pub fn multiline(max_len: usize, s: String) -> Vec<String> {
let len = s.len(); let len = s.len();
loop { loop {
let lo = i * max_len; let lo = i * max_len;
let hi = cmp::min(len - 1, lo + max_len - 1); let hi = cmp::min(len, lo + max_len);
if lo >= len { if lo >= len {
break; break;
@ -179,3 +179,26 @@ pub fn multiline(max_len: usize, s: String) -> Vec<String> {
} }
xs xs
} }
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn multiline_empty_string() {
assert_eq!(multiline(10, "".to_string()), Vec::<String>::new());
}
#[test]
fn multiline_single_line() {
assert_eq!(multiline(10, "foo".to_string()), vec!["foo".to_string()]);
}
#[test]
fn multiline_many_lines() {
assert_eq!(
multiline(3, "foobar".to_string()),
vec!["foo".to_string(), "bar".to_string()]
);
}
}