From: Ben Pfaff Date: Mon, 4 Aug 2025 20:38:06 +0000 (-0700) Subject: test writing very long strings X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dbb33cb98b251da68750ef54f12bd6f84e4d3ebe;p=pspp test writing very long strings --- diff --git a/rust/pspp/src/sys/test.rs b/rust/pspp/src/sys/test.rs index b293fbdad8..e2e531d12b 100644 --- a/rust/pspp/src/sys/test.rs +++ b/rust/pspp/src/sys/test.rs @@ -615,60 +615,38 @@ fn write_numeric() { } } -/// Tests writing long string value labels and missing values. +/// Tests writing string data. #[test] -fn write_long_string_value_labels() { +fn write_string_data() { for (compression, compression_string) in [ (None, "uncompressed"), (Some(Compression::Simple), "simple"), (Some(Compression::ZLib), "zlib"), ] { let mut dictionary = Dictionary::new(UTF_8); - let mut s1 = Variable::new(Identifier::new("s1").unwrap(), VarWidth::String(9), UTF_8); - s1.value_labels.insert( - Datum::String(ByteString::from("abc ")), - String::from("First value label"), - ); - s1.value_labels.insert( - Datum::String(ByteString::from("abcdefgh ")), - String::from("Second value label"), - ); - s1.value_labels.insert( - Datum::String(ByteString::from("abcdefghi")), - String::from("Third value label"), - ); - s1.missing_values_mut() - .add_values([Datum::new_utf8("0")]) + dictionary + .add_var(Variable::new( + Identifier::new("s1").unwrap(), + VarWidth::String(1), + UTF_8, + )) .unwrap(); - dictionary.add_var(s1).unwrap(); - let mut s2 = Variable::new(Identifier::new("s2").unwrap(), VarWidth::String(9), UTF_8); - s2.value_labels.insert( - Datum::String(ByteString::from("0 ")), - String::from("Fourth value label"), - ); - s2.value_labels.insert( - Datum::String(ByteString::from("01234567")), - String::from("Fifth value label"), - ); - s2.value_labels.insert( - Datum::String(ByteString::from("012345678")), - String::from("Sixth value label"), - ); - s2.missing_values_mut() - .add_values([Datum::String("12").cloned(), Datum::String("123").cloned()]) + dictionary + .add_var(Variable::new( + Identifier::new("s2").unwrap(), + VarWidth::String(2), + UTF_8, + )) .unwrap(); - dictionary.add_var(s2).unwrap(); - - let mut s3 = Variable::new(Identifier::new("s3").unwrap(), VarWidth::String(9), UTF_8); - s3.missing_values_mut() - .add_values([ - Datum::String("1234").cloned(), - Datum::String("12345").cloned(), - Datum::String("12345678").cloned(), - ]) + + dictionary + .add_var(Variable::new( + Identifier::new("s3").unwrap(), + VarWidth::String(3), + UTF_8, + )) .unwrap(); - dictionary.add_var(s3).unwrap(); dictionary .add_var(Variable::new( @@ -677,18 +655,21 @@ fn write_long_string_value_labels() { UTF_8, )) .unwrap(); + + dictionary + .add_var(Variable::new( + Identifier::new("s566").unwrap(), + VarWidth::String(566), + UTF_8, + )) + .unwrap(); + let mut cases = WriteOptions::reproducible(compression) .write_writer(&dictionary, Cursor::new(Vec::new())) .unwrap(); for case in [ - ["1", "1", "1", "xyzzyquux"], - ["1", "1", " z", "30"], - ["1", "2", "1", "8"], - ["1", "2", "2", "20"], - ["2", "1", "1", "2"], - ["2", "1", "2", "22"], - ["2", "2", "1", "1"], - ["2", "2", "2", "3"], + ["1", "1", "1", "xyzzyquux", "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\nabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\nabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\nabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\nabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\nabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\nabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\nabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\nabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\n"], + ["1", "2", "1", "8", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"], ] { cases .write_case(case.into_iter().map(|s| Datum::String(s))) diff --git a/rust/pspp/src/sys/testdata/write-string-simple.expected b/rust/pspp/src/sys/testdata/write-string-simple.expected index d063ec4c62..c034000a09 100644 --- a/rust/pspp/src/sys/testdata/write-string-simple.expected +++ b/rust/pspp/src/sys/testdata/write-string-simple.expected @@ -5,33 +5,22 @@ │ Version │1.2.3 │ ├──────────────────────┼────────────────────┤ │ Compression │SAV │ -│ Number of Cases│ 8│ +│ Number of Cases│ 2│ ╰──────────────────────┴────────────────────╯ ╭─────────┬─╮ -│Variables│4│ +│Variables│5│ ╰─────────┴─╯ -╭──┬────────┬─────┬─────────────────┬─────┬─────┬─────────┬────────────┬────────────┬───────────────────────────╮ -│ │Position│Label│Measurement Level│ Role│Width│Alignment│Print Format│Write Format│ Missing Values │ -├──┼────────┼─────┼─────────────────┼─────┼─────┼─────────┼────────────┼────────────┼───────────────────────────┤ -│s1│ 1│ │Nominal │Input│ 9│Left │A9 │A9 │"0" │ -│s2│ 2│ │Nominal │Input│ 9│Left │A9 │A9 │"12"; "123" │ -│s3│ 3│ │Nominal │Input│ 9│Left │A9 │A9 │"1234"; "12345"; "12345678"│ -│s4│ 4│ │Nominal │Input│ 9│Left │A9 │A9 │ │ -╰──┴────────┴─────┴─────────────────┴─────┴─────┴─────────┴────────────┴────────────┴───────────────────────────╯ - -╭────────────────────────┬──────────────────╮ -│Variable Value │ │ -├────────────────────────┼──────────────────┤ -│s1 abc │First value label │ -│ abcdefgh │Second value label│ -│ abcdefghi│Third value label │ -├────────────────────────┼──────────────────┤ -│s2 0 │Fourth value label│ -│ 01234567 │Fifth value label │ -│ 012345678│Sixth value label │ -╰────────────────────────┴──────────────────╯ +╭────┬────────┬─────┬─────────────────┬─────┬─────┬─────────┬────────────┬────────────┬──────────────╮ +│ │Position│Label│Measurement Level│ Role│Width│Alignment│Print Format│Write Format│Missing Values│ +├────┼────────┼─────┼─────────────────┼─────┼─────┼─────────┼────────────┼────────────┼──────────────┤ +│s1 │ 1│ │Nominal │Input│ 1│Left │A1 │A1 │ │ +│s2 │ 2│ │Nominal │Input│ 2│Left │A2 │A2 │ │ +│s3 │ 3│ │Nominal │Input│ 3│Left │A3 │A3 │ │ +│s4 │ 4│ │Nominal │Input│ 9│Left │A9 │A9 │ │ +│s566│ 5│ │Nominal │Input│ 32│Left │A566 │A566 │ │ +╰────┴────────┴─────┴─────────────────┴─────┴─────┴─────────┴────────────┴────────────┴──────────────╯ ╭────────────────────────┬─────╮ │Variable and Name │Value│ @@ -43,17 +32,30 @@ │s3 $@Role│0 │ ├────────────────────────┼─────┤ │s4 $@Role│0 │ +├────────────────────────┼─────┤ +│s566 $@Role│0 │ ╰────────────────────────┴─────╯ -╭────┬─────────┬─────────┬─────────┬─────────╮ -│Case│ s1 │ s2 │ s3 │ s4 │ -├────┼─────────┼─────────┼─────────┼─────────┤ -│1 │1 │1 │1 │xyzzyquux│ -│2 │1 │1 │ z│30 │ -│3 │1 │2 │1 │8 │ -│4 │1 │2 │2 │20 │ -│5 │2 │1 │1 │2 │ -│6 │2 │1 │2 │22 │ -│7 │2 │2 │1 │1 │ -│8 │2 │2 │2 │3 │ -╰────┴─────────┴─────────┴─────────┴─────────╯ +╭────┬──┬──┬───┬─────────┬──────────────────────────────────────────────────────────────╮ +│Case│s1│s2│ s3│ s4 │ s566 │ +├────┼──┼──┼───┼─────────┼──────────────────────────────────────────────────────────────┤ +│1 │1 │1 │1 │xyzzyquux│abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789│ +│ │ │ │ │ │abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789│ +│ │ │ │ │ │abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789│ +│ │ │ │ │ │abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789│ +│ │ │ │ │ │abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789│ +│ │ │ │ │ │abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789│ +│ │ │ │ │ │abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789│ +│ │ │ │ │ │abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789│ +│ │ │ │ │ │abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789│ +│2 │1 │2 │1 │8 │xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx │ +│ │ │ │ │ │xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx │ +│ │ │ │ │ │xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx │ +│ │ │ │ │ │xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx │ +│ │ │ │ │ │xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx │ +│ │ │ │ │ │xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx │ +│ │ │ │ │ │xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx │ +│ │ │ │ │ │xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx │ +│ │ │ │ │ │xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx │ +│ │ │ │ │ │xxxxxxxxxxxxxxxxx │ +╰────┴──┴──┴───┴─────────┴──────────────────────────────────────────────────────────────╯ diff --git a/rust/pspp/src/sys/testdata/write-string-uncompressed.expected b/rust/pspp/src/sys/testdata/write-string-uncompressed.expected index 6f7dd8efc5..4cc7d6ecae 100644 --- a/rust/pspp/src/sys/testdata/write-string-uncompressed.expected +++ b/rust/pspp/src/sys/testdata/write-string-uncompressed.expected @@ -5,33 +5,22 @@ │ Version │1.2.3 │ ├──────────────────────┼────────────────────┤ │ Compression │None │ -│ Number of Cases│ 8│ +│ Number of Cases│ 2│ ╰──────────────────────┴────────────────────╯ ╭─────────┬─╮ -│Variables│4│ +│Variables│5│ ╰─────────┴─╯ -╭──┬────────┬─────┬─────────────────┬─────┬─────┬─────────┬────────────┬────────────┬───────────────────────────╮ -│ │Position│Label│Measurement Level│ Role│Width│Alignment│Print Format│Write Format│ Missing Values │ -├──┼────────┼─────┼─────────────────┼─────┼─────┼─────────┼────────────┼────────────┼───────────────────────────┤ -│s1│ 1│ │Nominal │Input│ 9│Left │A9 │A9 │"0" │ -│s2│ 2│ │Nominal │Input│ 9│Left │A9 │A9 │"12"; "123" │ -│s3│ 3│ │Nominal │Input│ 9│Left │A9 │A9 │"1234"; "12345"; "12345678"│ -│s4│ 4│ │Nominal │Input│ 9│Left │A9 │A9 │ │ -╰──┴────────┴─────┴─────────────────┴─────┴─────┴─────────┴────────────┴────────────┴───────────────────────────╯ - -╭────────────────────────┬──────────────────╮ -│Variable Value │ │ -├────────────────────────┼──────────────────┤ -│s1 abc │First value label │ -│ abcdefgh │Second value label│ -│ abcdefghi│Third value label │ -├────────────────────────┼──────────────────┤ -│s2 0 │Fourth value label│ -│ 01234567 │Fifth value label │ -│ 012345678│Sixth value label │ -╰────────────────────────┴──────────────────╯ +╭────┬────────┬─────┬─────────────────┬─────┬─────┬─────────┬────────────┬────────────┬──────────────╮ +│ │Position│Label│Measurement Level│ Role│Width│Alignment│Print Format│Write Format│Missing Values│ +├────┼────────┼─────┼─────────────────┼─────┼─────┼─────────┼────────────┼────────────┼──────────────┤ +│s1 │ 1│ │Nominal │Input│ 1│Left │A1 │A1 │ │ +│s2 │ 2│ │Nominal │Input│ 2│Left │A2 │A2 │ │ +│s3 │ 3│ │Nominal │Input│ 3│Left │A3 │A3 │ │ +│s4 │ 4│ │Nominal │Input│ 9│Left │A9 │A9 │ │ +│s566│ 5│ │Nominal │Input│ 32│Left │A566 │A566 │ │ +╰────┴────────┴─────┴─────────────────┴─────┴─────┴─────────┴────────────┴────────────┴──────────────╯ ╭────────────────────────┬─────╮ │Variable and Name │Value│ @@ -43,17 +32,30 @@ │s3 $@Role│0 │ ├────────────────────────┼─────┤ │s4 $@Role│0 │ +├────────────────────────┼─────┤ +│s566 $@Role│0 │ ╰────────────────────────┴─────╯ -╭────┬─────────┬─────────┬─────────┬─────────╮ -│Case│ s1 │ s2 │ s3 │ s4 │ -├────┼─────────┼─────────┼─────────┼─────────┤ -│1 │1 │1 │1 │xyzzyquux│ -│2 │1 │1 │ z│30 │ -│3 │1 │2 │1 │8 │ -│4 │1 │2 │2 │20 │ -│5 │2 │1 │1 │2 │ -│6 │2 │1 │2 │22 │ -│7 │2 │2 │1 │1 │ -│8 │2 │2 │2 │3 │ -╰────┴─────────┴─────────┴─────────┴─────────╯ +╭────┬──┬──┬───┬─────────┬──────────────────────────────────────────────────────────────╮ +│Case│s1│s2│ s3│ s4 │ s566 │ +├────┼──┼──┼───┼─────────┼──────────────────────────────────────────────────────────────┤ +│1 │1 │1 │1 │xyzzyquux│abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789│ +│ │ │ │ │ │abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789│ +│ │ │ │ │ │abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789│ +│ │ │ │ │ │abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789│ +│ │ │ │ │ │abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789│ +│ │ │ │ │ │abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789│ +│ │ │ │ │ │abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789│ +│ │ │ │ │ │abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789│ +│ │ │ │ │ │abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789│ +│2 │1 │2 │1 │8 │xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx │ +│ │ │ │ │ │xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx │ +│ │ │ │ │ │xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx │ +│ │ │ │ │ │xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx │ +│ │ │ │ │ │xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx │ +│ │ │ │ │ │xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx │ +│ │ │ │ │ │xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx │ +│ │ │ │ │ │xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx │ +│ │ │ │ │ │xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx │ +│ │ │ │ │ │xxxxxxxxxxxxxxxxx │ +╰────┴──┴──┴───┴─────────┴──────────────────────────────────────────────────────────────╯ diff --git a/rust/pspp/src/sys/testdata/write-string-zlib.expected b/rust/pspp/src/sys/testdata/write-string-zlib.expected index 41a64afcaa..11e64a4529 100644 --- a/rust/pspp/src/sys/testdata/write-string-zlib.expected +++ b/rust/pspp/src/sys/testdata/write-string-zlib.expected @@ -5,33 +5,22 @@ │ Version │1.2.3 │ ├──────────────────────┼────────────────────┤ │ Compression │ZSAV │ -│ Number of Cases│ 8│ +│ Number of Cases│ 2│ ╰──────────────────────┴────────────────────╯ ╭─────────┬─╮ -│Variables│4│ +│Variables│5│ ╰─────────┴─╯ -╭──┬────────┬─────┬─────────────────┬─────┬─────┬─────────┬────────────┬────────────┬───────────────────────────╮ -│ │Position│Label│Measurement Level│ Role│Width│Alignment│Print Format│Write Format│ Missing Values │ -├──┼────────┼─────┼─────────────────┼─────┼─────┼─────────┼────────────┼────────────┼───────────────────────────┤ -│s1│ 1│ │Nominal │Input│ 9│Left │A9 │A9 │"0" │ -│s2│ 2│ │Nominal │Input│ 9│Left │A9 │A9 │"12"; "123" │ -│s3│ 3│ │Nominal │Input│ 9│Left │A9 │A9 │"1234"; "12345"; "12345678"│ -│s4│ 4│ │Nominal │Input│ 9│Left │A9 │A9 │ │ -╰──┴────────┴─────┴─────────────────┴─────┴─────┴─────────┴────────────┴────────────┴───────────────────────────╯ - -╭────────────────────────┬──────────────────╮ -│Variable Value │ │ -├────────────────────────┼──────────────────┤ -│s1 abc │First value label │ -│ abcdefgh │Second value label│ -│ abcdefghi│Third value label │ -├────────────────────────┼──────────────────┤ -│s2 0 │Fourth value label│ -│ 01234567 │Fifth value label │ -│ 012345678│Sixth value label │ -╰────────────────────────┴──────────────────╯ +╭────┬────────┬─────┬─────────────────┬─────┬─────┬─────────┬────────────┬────────────┬──────────────╮ +│ │Position│Label│Measurement Level│ Role│Width│Alignment│Print Format│Write Format│Missing Values│ +├────┼────────┼─────┼─────────────────┼─────┼─────┼─────────┼────────────┼────────────┼──────────────┤ +│s1 │ 1│ │Nominal │Input│ 1│Left │A1 │A1 │ │ +│s2 │ 2│ │Nominal │Input│ 2│Left │A2 │A2 │ │ +│s3 │ 3│ │Nominal │Input│ 3│Left │A3 │A3 │ │ +│s4 │ 4│ │Nominal │Input│ 9│Left │A9 │A9 │ │ +│s566│ 5│ │Nominal │Input│ 32│Left │A566 │A566 │ │ +╰────┴────────┴─────┴─────────────────┴─────┴─────┴─────────┴────────────┴────────────┴──────────────╯ ╭────────────────────────┬─────╮ │Variable and Name │Value│ @@ -43,17 +32,30 @@ │s3 $@Role│0 │ ├────────────────────────┼─────┤ │s4 $@Role│0 │ +├────────────────────────┼─────┤ +│s566 $@Role│0 │ ╰────────────────────────┴─────╯ -╭────┬─────────┬─────────┬─────────┬─────────╮ -│Case│ s1 │ s2 │ s3 │ s4 │ -├────┼─────────┼─────────┼─────────┼─────────┤ -│1 │1 │1 │1 │xyzzyquux│ -│2 │1 │1 │ z│30 │ -│3 │1 │2 │1 │8 │ -│4 │1 │2 │2 │20 │ -│5 │2 │1 │1 │2 │ -│6 │2 │1 │2 │22 │ -│7 │2 │2 │1 │1 │ -│8 │2 │2 │2 │3 │ -╰────┴─────────┴─────────┴─────────┴─────────╯ +╭────┬──┬──┬───┬─────────┬──────────────────────────────────────────────────────────────╮ +│Case│s1│s2│ s3│ s4 │ s566 │ +├────┼──┼──┼───┼─────────┼──────────────────────────────────────────────────────────────┤ +│1 │1 │1 │1 │xyzzyquux│abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789│ +│ │ │ │ │ │abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789│ +│ │ │ │ │ │abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789│ +│ │ │ │ │ │abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789│ +│ │ │ │ │ │abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789│ +│ │ │ │ │ │abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789│ +│ │ │ │ │ │abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789│ +│ │ │ │ │ │abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789│ +│ │ │ │ │ │abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789│ +│2 │1 │2 │1 │8 │xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx │ +│ │ │ │ │ │xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx │ +│ │ │ │ │ │xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx │ +│ │ │ │ │ │xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx │ +│ │ │ │ │ │xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx │ +│ │ │ │ │ │xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx │ +│ │ │ │ │ │xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx │ +│ │ │ │ │ │xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx │ +│ │ │ │ │ │xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx │ +│ │ │ │ │ │xxxxxxxxxxxxxxxxx │ +╰────┴──┴──┴───┴─────────┴──────────────────────────────────────────────────────────────╯