From 3c5c50589fa0e2a50154a549112beacfb996ab7b Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Mon, 24 Mar 2025 09:24:17 -0700 Subject: [PATCH] Add tests for P and PK output formats. --- rust/pspp/src/dictionary.rs | 14 + rust/pspp/src/format/mod.rs | 140 +- rust/pspp/src/format/testdata/ib.txt | 2108 +++++++++++++++++ rust/pspp/src/format/testdata/p.txt | 748 ++++++ rust/pspp/src/format/testdata/pib.txt | 2108 +++++++++++++++++ rust/pspp/src/format/testdata/pibhex.txt | 340 +++ rust/pspp/src/format/testdata/pk.txt | 748 ++++++ .../testdata/split-binhex-out.expected.py | 107 + .../testdata}/split-num-out.expected.py | 0 rust/pspp/src/settings.rs | 10 +- 10 files changed, 6320 insertions(+), 3 deletions(-) create mode 100644 rust/pspp/src/format/testdata/ib.txt create mode 100644 rust/pspp/src/format/testdata/p.txt create mode 100644 rust/pspp/src/format/testdata/pib.txt create mode 100644 rust/pspp/src/format/testdata/pibhex.txt create mode 100644 rust/pspp/src/format/testdata/pk.txt create mode 100644 rust/pspp/src/format/testdata/split-binhex-out.expected.py rename rust/pspp/{ => src/format/testdata}/split-num-out.expected.py (100%) diff --git a/rust/pspp/src/dictionary.rs b/rust/pspp/src/dictionary.rs index 353806a324..7be3e9e744 100644 --- a/rust/pspp/src/dictionary.rs +++ b/rust/pspp/src/dictionary.rs @@ -229,6 +229,20 @@ impl Value { pub fn display(&self, format: Format, encoding: &'static Encoding) -> DisplayValue { DisplayValue::new(format, self, encoding) } + + pub fn as_number(&self) -> Option> { + match self { + Value::Number(number) => Some(*number), + Value::String(_) => None, + } + } + + pub fn as_string(&self) -> Option<&[u8]> { + match self { + Value::Number(_) => None, + Value::String(s) => Some(&*s), + } + } } impl From for Value { diff --git a/rust/pspp/src/format/mod.rs b/rust/pspp/src/format/mod.rs index d444a8c4e8..b41fffb986 100644 --- a/rust/pspp/src/format/mod.rs +++ b/rust/pspp/src/format/mod.rs @@ -2,7 +2,7 @@ use core::f64; use std::{ cmp::min, fmt::{Display, Error as FmtError, Formatter, Result as FmtResult, Write}, - io::Write as _, + io::{Error as IoError, Write as IoWrite}, ops::{Not, RangeInclusive}, str::{from_utf8_unchecked, Chars, FromStr}, sync::LazyLock, @@ -1215,6 +1215,7 @@ impl<'a, 'b> DisplayValue<'a, 'b> { fn missing(&self, f: &mut Formatter<'_>) -> FmtResult { match self.format.type_ { + //Type::P => return self.p(f, -f64::MAX), Type::RBHex => return self.rbhex(f, -f64::MAX), _ => (), } @@ -1595,6 +1596,76 @@ impl<'a, 'b> DisplayValue<'a, 'b> { self.missing(f) } } + + pub fn write_binary(&self, w: W) -> Result + where + W: IoWrite, + { + let Some(number) = self.value.as_number() else { + return Ok(false); + }; + match self.format.type_() { + Type::P => self.p(w, number).map(|()| true), + Type::PK => self.pk(w, number).map(|()| true), + _ => Ok(false), + } + } + + fn bcd(&self, number: Option, digits: usize) -> (bool, SmallVec<[u8; 16]>) { + let legacy = LegacyFormat::new(number.unwrap_or_default(), self.format.d()); + let len = legacy.len(); + + let mut output = SmallVec::new(); + if len > digits { + output.resize(digits.div_ceil(2), 0); + (false, output) + } else { + let mut decimal = SmallString::<[u8; 16]>::new(); + write!( + &mut decimal, + "{}{legacy}", + Zeros(digits.saturating_sub(len)) + ) + .unwrap(); + + let mut src = decimal.bytes(); + for _ in 0..digits / 2 { + let d0 = src.next().unwrap() - b'0'; + let d1 = src.next().unwrap() - b'0'; + output.push((d0 << 4) + d1); + } + if digits % 2 != 0 { + let d = src.next().unwrap() - b'0'; + output.push(d << 4); + } + (true, output) + } + } + + fn p(&self, mut w: W, number: Option) -> Result<(), IoError> + where + W: IoWrite, + { + let (valid, mut output) = self.bcd(number, self.format.w() * 2 - 1); + if valid && number.is_some_and(|number| number < 0.0) { + *output.last_mut().unwrap() |= 0xd; + } else { + *output.last_mut().unwrap() |= 0xf; + } + w.write_all(&*output) + } + + fn pk(&self, mut w: W, number: Option) -> Result<(), IoError> + where + W: IoWrite, + { + let number = match number { + Some(number) if number < 0.0 => None, + other => other, + }; + let (_valid, output) = self.bcd(number, self.format.w() * 2); + w.write_all(&*output) + } } struct LegacyFormat { @@ -1975,10 +2046,12 @@ where #[cfg(test)] mod test { - use std::{fs::File, io::BufRead, path::Path}; + use std::{fmt::Write, fs::File, io::BufRead, path::Path}; use binrw::io::BufReader; use encoding_rs::UTF_8; + use smallstr::SmallString; + use smallvec::SmallVec; use crate::{ dictionary::Value, @@ -2176,4 +2249,67 @@ mod test { test(&settings, 1.5e10, " ¥2E+010€ "); test(&settings, -1.5e10, "«¥2E+010€»"); } + + fn test_binhex(name: &str) { + let filename = Path::new(env!("CARGO_MANIFEST_DIR")) + .join("src/format/testdata") + .join(name); + let input = BufReader::new(File::open(&filename).unwrap()); + let mut value = None; + let mut value_name = String::new(); + for (line_number, line) in input.lines().map(|r| r.unwrap()).enumerate() { + let line = line.trim(); + let line_number = line_number + 1; + let tokens = StringScanner::new(&line, Syntax::Interactive, true) + .unwrapped() + .collect::>(); + match &tokens[0] { + Token::Number(number) => { + value = Some(*number); + value_name = String::from(line); + } + Token::End => { + value = None; + value_name = String::from(line); + } + Token::Id(id) => { + let format: UncheckedFormat = + id.0.as_str() + .parse::() + .unwrap() + .try_into() + .unwrap(); + let format: Format = format.try_into().unwrap(); + assert_eq!(tokens.get(1), Some(&Token::Punct(Punct::Colon))); + let expected = tokens[2].as_string().unwrap(); + let mut actual = SmallVec::<[u8; 16]>::new(); + assert!(Value::Number(value) + .display(format, UTF_8) + .write_binary(&mut actual) + .unwrap()); + let mut actual_s = SmallString::<[u8; 32]>::new(); + for b in actual { + write!(&mut actual_s, "{:02x}", b).unwrap(); + } + assert_eq!( + expected, + &*actual_s, + "{}:{line_number}: Error formatting {value_name} as {format}", + filename.display() + ); + } + _ => panic!(), + } + } + } + + #[test] + fn test_p() { + test_binhex("p.txt"); + } + + #[test] + fn test_pk() { + test_binhex("pk.txt"); + } } diff --git a/rust/pspp/src/format/testdata/ib.txt b/rust/pspp/src/format/testdata/ib.txt new file mode 100644 index 0000000000..ef308df549 --- /dev/null +++ b/rust/pspp/src/format/testdata/ib.txt @@ -0,0 +1,2108 @@ +. +IB1.0: "00" +IB2.0: "0000" +IB3.0: "000000" +IB4.0: "00000000" +IB1.1: "00" +IB2.1: "0000" +IB3.1: "000000" +IB4.1: "00000000" +IB1.2: "00" +IB2.2: "0000" +IB3.2: "000000" +IB4.2: "00000000" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "000000" +IB4.3: "00000000" +IB2.4: "0000" +IB3.4: "000000" +IB4.4: "00000000" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "00000000" +IB3.6: "000000" +IB4.6: "00000000" +IB3.7: "000000" +IB4.7: "00000000" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +2 +IB1.0: "02" +IB2.0: "0002" +IB3.0: "000002" +IB4.0: "00000002" +IB1.1: "14" +IB2.1: "0014" +IB3.1: "000014" +IB4.1: "00000014" +IB1.2: "00" +IB2.2: "00c8" +IB3.2: "0000c8" +IB4.2: "000000c8" +IB1.3: "00" +IB2.3: "07d0" +IB3.3: "0007d0" +IB4.3: "000007d0" +IB2.4: "4e20" +IB3.4: "004e20" +IB4.4: "00004e20" +IB2.5: "0000" +IB3.5: "030d40" +IB4.5: "00030d40" +IB3.6: "1e8480" +IB4.6: "001e8480" +IB3.7: "000000" +IB4.7: "01312d00" +IB3.8: "000000" +IB4.8: "0bebc200" +IB4.9: "77359400" +IB4.10: "00000000" +11 +IB1.0: "0b" +IB2.0: "000b" +IB3.0: "00000b" +IB4.0: "0000000b" +IB1.1: "6e" +IB2.1: "006e" +IB3.1: "00006e" +IB4.1: "0000006e" +IB1.2: "00" +IB2.2: "044c" +IB3.2: "00044c" +IB4.2: "0000044c" +IB1.3: "00" +IB2.3: "2af8" +IB3.3: "002af8" +IB4.3: "00002af8" +IB2.4: "0000" +IB3.4: "01adb0" +IB4.4: "0001adb0" +IB2.5: "0000" +IB3.5: "10c8e0" +IB4.5: "0010c8e0" +IB3.6: "000000" +IB4.6: "00a7d8c0" +IB3.7: "000000" +IB4.7: "068e7780" +IB3.8: "000000" +IB4.8: "4190ab00" +IB4.9: "00000000" +IB4.10: "00000000" +123 +IB1.0: "7b" +IB2.0: "007b" +IB3.0: "00007b" +IB4.0: "0000007b" +IB1.1: "00" +IB2.1: "04ce" +IB3.1: "0004ce" +IB4.1: "000004ce" +IB1.2: "00" +IB2.2: "300c" +IB3.2: "00300c" +IB4.2: "0000300c" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "01e078" +IB4.3: "0001e078" +IB2.4: "0000" +IB3.4: "12c4b0" +IB4.4: "0012c4b0" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "00bbaee0" +IB3.6: "000000" +IB4.6: "0754d4c0" +IB3.7: "000000" +IB4.7: "49504f80" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +1234 +IB1.0: "00" +IB2.0: "04d2" +IB3.0: "0004d2" +IB4.0: "000004d2" +IB1.1: "00" +IB2.1: "3034" +IB3.1: "003034" +IB4.1: "00003034" +IB1.2: "00" +IB2.2: "0000" +IB3.2: "01e208" +IB4.2: "0001e208" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "12d450" +IB4.3: "0012d450" +IB2.4: "0000" +IB3.4: "000000" +IB4.4: "00bc4b20" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "075aef40" +IB3.6: "000000" +IB4.6: "498d5880" +IB3.7: "000000" +IB4.7: "00000000" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +913 +IB1.0: "00" +IB2.0: "0391" +IB3.0: "000391" +IB4.0: "00000391" +IB1.1: "00" +IB2.1: "23aa" +IB3.1: "0023aa" +IB4.1: "000023aa" +IB1.2: "00" +IB2.2: "0000" +IB3.2: "0164a4" +IB4.2: "000164a4" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "0dee68" +IB4.3: "000dee68" +IB2.4: "0000" +IB3.4: "000000" +IB4.4: "008b5010" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "057120a0" +IB3.6: "000000" +IB4.6: "366b4640" +IB3.7: "000000" +IB4.7: "00000000" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +3.14159 +IB1.0: "03" +IB2.0: "0003" +IB3.0: "000003" +IB4.0: "00000003" +IB1.1: "1f" +IB2.1: "001f" +IB3.1: "00001f" +IB4.1: "0000001f" +IB1.2: "00" +IB2.2: "013a" +IB3.2: "00013a" +IB4.2: "0000013a" +IB1.3: "00" +IB2.3: "0c46" +IB3.3: "000c46" +IB4.3: "00000c46" +IB2.4: "7ab8" +IB3.4: "007ab8" +IB4.4: "00007ab8" +IB2.5: "0000" +IB3.5: "04cb2f" +IB4.5: "0004cb2f" +IB3.6: "2fefd6" +IB4.6: "002fefd6" +IB3.7: "000000" +IB4.7: "01df5e5c" +IB3.8: "000000" +IB4.8: "12b9af98" +IB4.9: "00000000" +IB4.10: "00000000" +777 +IB1.0: "00" +IB2.0: "0309" +IB3.0: "000309" +IB4.0: "00000309" +IB1.1: "00" +IB2.1: "1e5a" +IB3.1: "001e5a" +IB4.1: "00001e5a" +IB1.2: "00" +IB2.2: "0000" +IB3.2: "012f84" +IB4.2: "00012f84" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "0bdb28" +IB4.3: "000bdb28" +IB2.4: "0000" +IB3.4: "768f90" +IB4.4: "00768f90" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "04a19ba0" +IB3.6: "000000" +IB4.6: "2e501440" +IB3.7: "000000" +IB4.7: "00000000" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +82 +IB1.0: "52" +IB2.0: "0052" +IB3.0: "000052" +IB4.0: "00000052" +IB1.1: "00" +IB2.1: "0334" +IB3.1: "000334" +IB4.1: "00000334" +IB1.2: "00" +IB2.2: "2008" +IB3.2: "002008" +IB4.2: "00002008" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "014050" +IB4.3: "00014050" +IB2.4: "0000" +IB3.4: "0c8320" +IB4.4: "000c8320" +IB2.5: "0000" +IB3.5: "7d1f40" +IB4.5: "007d1f40" +IB3.6: "000000" +IB4.6: "04e33880" +IB3.7: "000000" +IB4.7: "30e03500" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +690 +IB1.0: "00" +IB2.0: "02b2" +IB3.0: "0002b2" +IB4.0: "000002b2" +IB1.1: "00" +IB2.1: "1af4" +IB3.1: "001af4" +IB4.1: "00001af4" +IB1.2: "00" +IB2.2: "0000" +IB3.2: "010d88" +IB4.2: "00010d88" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "0a8750" +IB4.3: "000a8750" +IB2.4: "0000" +IB3.4: "694920" +IB4.4: "00694920" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "041cdb40" +IB3.6: "000000" +IB4.6: "29209080" +IB3.7: "000000" +IB4.7: "00000000" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +-2 +IB1.0: "fe" +IB2.0: "fffe" +IB3.0: "fffffe" +IB4.0: "fffffffe" +IB1.1: "ec" +IB2.1: "ffec" +IB3.1: "ffffec" +IB4.1: "ffffffec" +IB1.2: "00" +IB2.2: "ff38" +IB3.2: "ffff38" +IB4.2: "ffffff38" +IB1.3: "00" +IB2.3: "f830" +IB3.3: "fff830" +IB4.3: "fffff830" +IB2.4: "b1e0" +IB3.4: "ffb1e0" +IB4.4: "ffffb1e0" +IB2.5: "0000" +IB3.5: "fcf2c0" +IB4.5: "fffcf2c0" +IB3.6: "e17b80" +IB4.6: "ffe17b80" +IB3.7: "000000" +IB4.7: "feced300" +IB3.8: "000000" +IB4.8: "f4143e00" +IB4.9: "88ca6c00" +IB4.10: "00000000" +-11 +IB1.0: "f5" +IB2.0: "fff5" +IB3.0: "fffff5" +IB4.0: "fffffff5" +IB1.1: "92" +IB2.1: "ff92" +IB3.1: "ffff92" +IB4.1: "ffffff92" +IB1.2: "00" +IB2.2: "fbb4" +IB3.2: "fffbb4" +IB4.2: "fffffbb4" +IB1.3: "00" +IB2.3: "d508" +IB3.3: "ffd508" +IB4.3: "ffffd508" +IB2.4: "0000" +IB3.4: "fe5250" +IB4.4: "fffe5250" +IB2.5: "0000" +IB3.5: "ef3720" +IB4.5: "ffef3720" +IB3.6: "000000" +IB4.6: "ff582740" +IB3.7: "000000" +IB4.7: "f9718880" +IB3.8: "000000" +IB4.8: "be6f5500" +IB4.9: "00000000" +IB4.10: "00000000" +-123 +IB1.0: "85" +IB2.0: "ff85" +IB3.0: "ffff85" +IB4.0: "ffffff85" +IB1.1: "00" +IB2.1: "fb32" +IB3.1: "fffb32" +IB4.1: "fffffb32" +IB1.2: "00" +IB2.2: "cff4" +IB3.2: "ffcff4" +IB4.2: "ffffcff4" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "fe1f88" +IB4.3: "fffe1f88" +IB2.4: "0000" +IB3.4: "ed3b50" +IB4.4: "ffed3b50" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "ff445120" +IB3.6: "000000" +IB4.6: "f8ab2b40" +IB3.7: "000000" +IB4.7: "b6afb080" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +-1234 +IB1.0: "00" +IB2.0: "fb2e" +IB3.0: "fffb2e" +IB4.0: "fffffb2e" +IB1.1: "00" +IB2.1: "cfcc" +IB3.1: "ffcfcc" +IB4.1: "ffffcfcc" +IB1.2: "00" +IB2.2: "0000" +IB3.2: "fe1df8" +IB4.2: "fffe1df8" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "ed2bb0" +IB4.3: "ffed2bb0" +IB2.4: "0000" +IB3.4: "000000" +IB4.4: "ff43b4e0" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "f8a510c0" +IB3.6: "000000" +IB4.6: "b672a780" +IB3.7: "000000" +IB4.7: "00000000" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +-913 +IB1.0: "00" +IB2.0: "fc6f" +IB3.0: "fffc6f" +IB4.0: "fffffc6f" +IB1.1: "00" +IB2.1: "dc56" +IB3.1: "ffdc56" +IB4.1: "ffffdc56" +IB1.2: "00" +IB2.2: "0000" +IB3.2: "fe9b5c" +IB4.2: "fffe9b5c" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "f21198" +IB4.3: "fff21198" +IB2.4: "0000" +IB3.4: "000000" +IB4.4: "ff74aff0" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "fa8edf60" +IB3.6: "000000" +IB4.6: "c994b9c0" +IB3.7: "000000" +IB4.7: "00000000" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +-3.14159 +IB1.0: "fd" +IB2.0: "fffd" +IB3.0: "fffffd" +IB4.0: "fffffffd" +IB1.1: "e1" +IB2.1: "ffe1" +IB3.1: "ffffe1" +IB4.1: "ffffffe1" +IB1.2: "00" +IB2.2: "fec6" +IB3.2: "fffec6" +IB4.2: "fffffec6" +IB1.3: "00" +IB2.3: "f3ba" +IB3.3: "fff3ba" +IB4.3: "fffff3ba" +IB2.4: "8548" +IB3.4: "ff8548" +IB4.4: "ffff8548" +IB2.5: "0000" +IB3.5: "fb34d1" +IB4.5: "fffb34d1" +IB3.6: "d0102a" +IB4.6: "ffd0102a" +IB3.7: "000000" +IB4.7: "fe20a1a4" +IB3.8: "000000" +IB4.8: "ed465068" +IB4.9: "00000000" +IB4.10: "00000000" +-777 +IB1.0: "00" +IB2.0: "fcf7" +IB3.0: "fffcf7" +IB4.0: "fffffcf7" +IB1.1: "00" +IB2.1: "e1a6" +IB3.1: "ffe1a6" +IB4.1: "ffffe1a6" +IB1.2: "00" +IB2.2: "0000" +IB3.2: "fed07c" +IB4.2: "fffed07c" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "f424d8" +IB4.3: "fff424d8" +IB2.4: "0000" +IB3.4: "897070" +IB4.4: "ff897070" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "fb5e6460" +IB3.6: "000000" +IB4.6: "d1afebc0" +IB3.7: "000000" +IB4.7: "00000000" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +-82 +IB1.0: "ae" +IB2.0: "ffae" +IB3.0: "ffffae" +IB4.0: "ffffffae" +IB1.1: "00" +IB2.1: "fccc" +IB3.1: "fffccc" +IB4.1: "fffffccc" +IB1.2: "00" +IB2.2: "dff8" +IB3.2: "ffdff8" +IB4.2: "ffffdff8" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "febfb0" +IB4.3: "fffebfb0" +IB2.4: "0000" +IB3.4: "f37ce0" +IB4.4: "fff37ce0" +IB2.5: "0000" +IB3.5: "82e0c0" +IB4.5: "ff82e0c0" +IB3.6: "000000" +IB4.6: "fb1cc780" +IB3.7: "000000" +IB4.7: "cf1fcb00" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +-690 +IB1.0: "00" +IB2.0: "fd4e" +IB3.0: "fffd4e" +IB4.0: "fffffd4e" +IB1.1: "00" +IB2.1: "e50c" +IB3.1: "ffe50c" +IB4.1: "ffffe50c" +IB1.2: "00" +IB2.2: "0000" +IB3.2: "fef278" +IB4.2: "fffef278" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "f578b0" +IB4.3: "fff578b0" +IB2.4: "0000" +IB3.4: "96b6e0" +IB4.4: "ff96b6e0" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "fbe324c0" +IB3.6: "000000" +IB4.6: "d6df6f80" +IB3.7: "000000" +IB4.7: "00000000" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +-.1 +IB1.0: "00" +IB2.0: "0000" +IB3.0: "000000" +IB4.0: "00000000" +IB1.1: "ff" +IB2.1: "ffff" +IB3.1: "ffffff" +IB4.1: "ffffffff" +IB1.2: "f6" +IB2.2: "fff6" +IB3.2: "fffff6" +IB4.2: "fffffff6" +IB1.3: "9c" +IB2.3: "ff9c" +IB3.3: "ffff9c" +IB4.3: "ffffff9c" +IB2.4: "fc18" +IB3.4: "fffc18" +IB4.4: "fffffc18" +IB2.5: "d8f0" +IB3.5: "ffd8f0" +IB4.5: "ffffd8f0" +IB3.6: "fe7960" +IB4.6: "fffe7960" +IB3.7: "f0bdc0" +IB4.7: "fff0bdc0" +IB3.8: "000000" +IB4.8: "ff676980" +IB4.9: "fa0a1f00" +IB4.10: "c4653600" +-.5 +IB1.0: "ff" +IB2.0: "ffff" +IB3.0: "ffffff" +IB4.0: "ffffffff" +IB1.1: "fb" +IB2.1: "fffb" +IB3.1: "fffffb" +IB4.1: "fffffffb" +IB1.2: "ce" +IB2.2: "ffce" +IB3.2: "ffffce" +IB4.2: "ffffffce" +IB1.3: "00" +IB2.3: "fe0c" +IB3.3: "fffe0c" +IB4.3: "fffffe0c" +IB2.4: "ec78" +IB3.4: "ffec78" +IB4.4: "ffffec78" +IB2.5: "0000" +IB3.5: "ff3cb0" +IB4.5: "ffff3cb0" +IB3.6: "f85ee0" +IB4.6: "fff85ee0" +IB3.7: "b3b4c0" +IB4.7: "ffb3b4c0" +IB3.8: "000000" +IB4.8: "fd050f80" +IB4.9: "e2329b00" +IB4.10: "00000000" +-.9 +IB1.0: "ff" +IB2.0: "ffff" +IB3.0: "ffffff" +IB4.0: "ffffffff" +IB1.1: "f7" +IB2.1: "fff7" +IB3.1: "fffff7" +IB4.1: "fffffff7" +IB1.2: "a6" +IB2.2: "ffa6" +IB3.2: "ffffa6" +IB4.2: "ffffffa6" +IB1.3: "00" +IB2.3: "fc7c" +IB3.3: "fffc7c" +IB4.3: "fffffc7c" +IB2.4: "dcd8" +IB3.4: "ffdcd8" +IB4.4: "ffffdcd8" +IB2.5: "0000" +IB3.5: "fea070" +IB4.5: "fffea070" +IB3.6: "f24460" +IB4.6: "fff24460" +IB3.7: "000000" +IB4.7: "ff76abc0" +IB3.8: "000000" +IB4.8: "faa2b580" +IB4.9: "ca5b1700" +IB4.10: "00000000" +9999.1 +IB1.0: "00" +IB2.0: "270f" +IB3.0: "00270f" +IB4.0: "0000270f" +IB1.1: "00" +IB2.1: "0000" +IB3.1: "018697" +IB4.1: "00018697" +IB1.2: "00" +IB2.2: "0000" +IB3.2: "0f41e6" +IB4.2: "000f41e6" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "000000" +IB4.3: "009892fc" +IB2.4: "0000" +IB3.4: "000000" +IB4.4: "05f5bdd8" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "3b996a70" +IB3.6: "000000" +IB4.6: "00000000" +IB3.7: "000000" +IB4.7: "00000000" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +9999.5 +IB1.0: "00" +IB2.0: "2710" +IB3.0: "002710" +IB4.0: "00002710" +IB1.1: "00" +IB2.1: "0000" +IB3.1: "01869b" +IB4.1: "0001869b" +IB1.2: "00" +IB2.2: "0000" +IB3.2: "0f420e" +IB4.2: "000f420e" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "000000" +IB4.3: "0098948c" +IB2.4: "0000" +IB3.4: "000000" +IB4.4: "05f5cd78" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "3b9a06b0" +IB3.6: "000000" +IB4.6: "00000000" +IB3.7: "000000" +IB4.7: "00000000" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +9999.9 +IB1.0: "00" +IB2.0: "2710" +IB3.0: "002710" +IB4.0: "00002710" +IB1.1: "00" +IB2.1: "0000" +IB3.1: "01869f" +IB4.1: "0001869f" +IB1.2: "00" +IB2.2: "0000" +IB3.2: "0f4236" +IB4.2: "000f4236" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "000000" +IB4.3: "0098961c" +IB2.4: "0000" +IB3.4: "000000" +IB4.4: "05f5dd18" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "3b9aa2f0" +IB3.6: "000000" +IB4.6: "00000000" +IB3.7: "000000" +IB4.7: "00000000" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +10000 +IB1.0: "00" +IB2.0: "2710" +IB3.0: "002710" +IB4.0: "00002710" +IB1.1: "00" +IB2.1: "0000" +IB3.1: "0186a0" +IB4.1: "000186a0" +IB1.2: "00" +IB2.2: "0000" +IB3.2: "0f4240" +IB4.2: "000f4240" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "000000" +IB4.3: "00989680" +IB2.4: "0000" +IB3.4: "000000" +IB4.4: "05f5e100" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "3b9aca00" +IB3.6: "000000" +IB4.6: "00000000" +IB3.7: "000000" +IB4.7: "00000000" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +18231237 +IB1.0: "00" +IB2.0: "0000" +IB3.0: "000000" +IB4.0: "01162fc5" +IB1.1: "00" +IB2.1: "0000" +IB3.1: "000000" +IB4.1: "0addddb2" +IB1.2: "00" +IB2.2: "0000" +IB3.2: "000000" +IB4.2: "6caaa8f4" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "000000" +IB4.3: "00000000" +IB2.4: "0000" +IB3.4: "000000" +IB4.4: "00000000" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "00000000" +IB3.6: "000000" +IB4.6: "00000000" +IB3.7: "000000" +IB4.7: "00000000" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +-9999.1 +IB1.0: "00" +IB2.0: "d8f1" +IB3.0: "ffd8f1" +IB4.0: "ffffd8f1" +IB1.1: "00" +IB2.1: "0000" +IB3.1: "fe7969" +IB4.1: "fffe7969" +IB1.2: "00" +IB2.2: "0000" +IB3.2: "f0be1a" +IB4.2: "fff0be1a" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "000000" +IB4.3: "ff676d04" +IB2.4: "0000" +IB3.4: "000000" +IB4.4: "fa0a4228" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "c4669590" +IB3.6: "000000" +IB4.6: "00000000" +IB3.7: "000000" +IB4.7: "00000000" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +-9999.5 +IB1.0: "00" +IB2.0: "d8f0" +IB3.0: "ffd8f0" +IB4.0: "ffffd8f0" +IB1.1: "00" +IB2.1: "0000" +IB3.1: "fe7965" +IB4.1: "fffe7965" +IB1.2: "00" +IB2.2: "0000" +IB3.2: "f0bdf2" +IB4.2: "fff0bdf2" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "000000" +IB4.3: "ff676b74" +IB2.4: "0000" +IB3.4: "000000" +IB4.4: "fa0a3288" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "c465f950" +IB3.6: "000000" +IB4.6: "00000000" +IB3.7: "000000" +IB4.7: "00000000" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +-9999.9 +IB1.0: "00" +IB2.0: "d8f0" +IB3.0: "ffd8f0" +IB4.0: "ffffd8f0" +IB1.1: "00" +IB2.1: "0000" +IB3.1: "fe7961" +IB4.1: "fffe7961" +IB1.2: "00" +IB2.2: "0000" +IB3.2: "f0bdca" +IB4.2: "fff0bdca" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "000000" +IB4.3: "ff6769e4" +IB2.4: "0000" +IB3.4: "000000" +IB4.4: "fa0a22e8" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "c4655d10" +IB3.6: "000000" +IB4.6: "00000000" +IB3.7: "000000" +IB4.7: "00000000" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +-10000 +IB1.0: "00" +IB2.0: "d8f0" +IB3.0: "ffd8f0" +IB4.0: "ffffd8f0" +IB1.1: "00" +IB2.1: "0000" +IB3.1: "fe7960" +IB4.1: "fffe7960" +IB1.2: "00" +IB2.2: "0000" +IB3.2: "f0bdc0" +IB4.2: "fff0bdc0" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "000000" +IB4.3: "ff676980" +IB2.4: "0000" +IB3.4: "000000" +IB4.4: "fa0a1f00" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "c4653600" +IB3.6: "000000" +IB4.6: "00000000" +IB3.7: "000000" +IB4.7: "00000000" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +-8231237 +IB1.0: "00" +IB2.0: "0000" +IB3.0: "8266bb" +IB4.0: "ff8266bb" +IB1.1: "00" +IB2.1: "0000" +IB3.1: "000000" +IB4.1: "fb18034e" +IB1.2: "00" +IB2.2: "0000" +IB3.2: "000000" +IB4.2: "cef0210c" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "000000" +IB4.3: "00000000" +IB2.4: "0000" +IB3.4: "000000" +IB4.4: "00000000" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "00000000" +IB3.6: "000000" +IB4.6: "00000000" +IB3.7: "000000" +IB4.7: "00000000" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +999.1 +IB1.0: "00" +IB2.0: "03e7" +IB3.0: "0003e7" +IB4.0: "000003e7" +IB1.1: "00" +IB2.1: "2707" +IB3.1: "002707" +IB4.1: "00002707" +IB1.2: "00" +IB2.2: "0000" +IB3.2: "018646" +IB4.2: "00018646" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "0f3ebc" +IB4.3: "000f3ebc" +IB2.4: "0000" +IB3.4: "000000" +IB4.4: "00987358" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "05f48170" +IB3.6: "000000" +IB4.6: "3b8d0e60" +IB3.7: "000000" +IB4.7: "00000000" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +999.5 +IB1.0: "00" +IB2.0: "03e8" +IB3.0: "0003e8" +IB4.0: "000003e8" +IB1.1: "00" +IB2.1: "270b" +IB3.1: "00270b" +IB4.1: "0000270b" +IB1.2: "00" +IB2.2: "0000" +IB3.2: "01866e" +IB4.2: "0001866e" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "0f404c" +IB4.3: "000f404c" +IB2.4: "0000" +IB3.4: "000000" +IB4.4: "009882f8" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "05f51db0" +IB3.6: "000000" +IB4.6: "3b9328e0" +IB3.7: "000000" +IB4.7: "00000000" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +999.9 +IB1.0: "00" +IB2.0: "03e8" +IB3.0: "0003e8" +IB4.0: "000003e8" +IB1.1: "00" +IB2.1: "270f" +IB3.1: "00270f" +IB4.1: "0000270f" +IB1.2: "00" +IB2.2: "0000" +IB3.2: "018696" +IB4.2: "00018696" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "0f41dc" +IB4.3: "000f41dc" +IB2.4: "0000" +IB3.4: "000000" +IB4.4: "00989298" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "05f5b9f0" +IB3.6: "000000" +IB4.6: "3b994360" +IB3.7: "000000" +IB4.7: "00000000" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +1000 +IB1.0: "00" +IB2.0: "03e8" +IB3.0: "0003e8" +IB4.0: "000003e8" +IB1.1: "00" +IB2.1: "2710" +IB3.1: "002710" +IB4.1: "00002710" +IB1.2: "00" +IB2.2: "0000" +IB3.2: "0186a0" +IB4.2: "000186a0" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "0f4240" +IB4.3: "000f4240" +IB2.4: "0000" +IB3.4: "000000" +IB4.4: "00989680" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "05f5e100" +IB3.6: "000000" +IB4.6: "3b9aca00" +IB3.7: "000000" +IB4.7: "00000000" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +8231237 +IB1.0: "00" +IB2.0: "0000" +IB3.0: "7d9945" +IB4.0: "007d9945" +IB1.1: "00" +IB2.1: "0000" +IB3.1: "000000" +IB4.1: "04e7fcb2" +IB1.2: "00" +IB2.2: "0000" +IB3.2: "000000" +IB4.2: "310fdef4" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "000000" +IB4.3: "00000000" +IB2.4: "0000" +IB3.4: "000000" +IB4.4: "00000000" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "00000000" +IB3.6: "000000" +IB4.6: "00000000" +IB3.7: "000000" +IB4.7: "00000000" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +-999.1 +IB1.0: "00" +IB2.0: "fc19" +IB3.0: "fffc19" +IB4.0: "fffffc19" +IB1.1: "00" +IB2.1: "d8f9" +IB3.1: "ffd8f9" +IB4.1: "ffffd8f9" +IB1.2: "00" +IB2.2: "0000" +IB3.2: "fe79ba" +IB4.2: "fffe79ba" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "f0c144" +IB4.3: "fff0c144" +IB2.4: "0000" +IB3.4: "000000" +IB4.4: "ff678ca8" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "fa0b7e90" +IB3.6: "000000" +IB4.6: "c472f1a0" +IB3.7: "000000" +IB4.7: "00000000" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +-999.5 +IB1.0: "00" +IB2.0: "fc18" +IB3.0: "fffc18" +IB4.0: "fffffc18" +IB1.1: "00" +IB2.1: "d8f5" +IB3.1: "ffd8f5" +IB4.1: "ffffd8f5" +IB1.2: "00" +IB2.2: "0000" +IB3.2: "fe7992" +IB4.2: "fffe7992" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "f0bfb4" +IB4.3: "fff0bfb4" +IB2.4: "0000" +IB3.4: "000000" +IB4.4: "ff677d08" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "fa0ae250" +IB3.6: "000000" +IB4.6: "c46cd720" +IB3.7: "000000" +IB4.7: "00000000" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +-999.9 +IB1.0: "00" +IB2.0: "fc18" +IB3.0: "fffc18" +IB4.0: "fffffc18" +IB1.1: "00" +IB2.1: "d8f1" +IB3.1: "ffd8f1" +IB4.1: "ffffd8f1" +IB1.2: "00" +IB2.2: "0000" +IB3.2: "fe796a" +IB4.2: "fffe796a" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "f0be24" +IB4.3: "fff0be24" +IB2.4: "0000" +IB3.4: "000000" +IB4.4: "ff676d68" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "fa0a4610" +IB3.6: "000000" +IB4.6: "c466bca0" +IB3.7: "000000" +IB4.7: "00000000" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +-1000 +IB1.0: "00" +IB2.0: "fc18" +IB3.0: "fffc18" +IB4.0: "fffffc18" +IB1.1: "00" +IB2.1: "d8f0" +IB3.1: "ffd8f0" +IB4.1: "ffffd8f0" +IB1.2: "00" +IB2.2: "0000" +IB3.2: "fe7960" +IB4.2: "fffe7960" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "f0bdc0" +IB4.3: "fff0bdc0" +IB2.4: "0000" +IB3.4: "000000" +IB4.4: "ff676980" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "fa0a1f00" +IB3.6: "000000" +IB4.6: "c4653600" +IB3.7: "000000" +IB4.7: "00000000" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +-8231237 +IB1.0: "00" +IB2.0: "0000" +IB3.0: "8266bb" +IB4.0: "ff8266bb" +IB1.1: "00" +IB2.1: "0000" +IB3.1: "000000" +IB4.1: "fb18034e" +IB1.2: "00" +IB2.2: "0000" +IB3.2: "000000" +IB4.2: "cef0210c" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "000000" +IB4.3: "00000000" +IB2.4: "0000" +IB3.4: "000000" +IB4.4: "00000000" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "00000000" +IB3.6: "000000" +IB4.6: "00000000" +IB3.7: "000000" +IB4.7: "00000000" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +99.1 +IB1.0: "63" +IB2.0: "0063" +IB3.0: "000063" +IB4.0: "00000063" +IB1.1: "00" +IB2.1: "03df" +IB3.1: "0003df" +IB4.1: "000003df" +IB1.2: "00" +IB2.2: "26b6" +IB3.2: "0026b6" +IB4.2: "000026b6" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "01831c" +IB4.3: "0001831c" +IB2.4: "0000" +IB3.4: "0f1f18" +IB4.4: "000f1f18" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "009736f0" +IB3.6: "000000" +IB4.6: "05e82560" +IB3.7: "000000" +IB4.7: "3b1175c0" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +99.5 +IB1.0: "64" +IB2.0: "0064" +IB3.0: "000064" +IB4.0: "00000064" +IB1.1: "00" +IB2.1: "03e3" +IB3.1: "0003e3" +IB4.1: "000003e3" +IB1.2: "00" +IB2.2: "26de" +IB3.2: "0026de" +IB4.2: "000026de" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "0184ac" +IB4.3: "000184ac" +IB2.4: "0000" +IB3.4: "0f2eb8" +IB4.4: "000f2eb8" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "0097d330" +IB3.6: "000000" +IB4.6: "05ee3fe0" +IB3.7: "000000" +IB4.7: "3b4e7ec0" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +99.9 +IB1.0: "64" +IB2.0: "0064" +IB3.0: "000064" +IB4.0: "00000064" +IB1.1: "00" +IB2.1: "03e7" +IB3.1: "0003e7" +IB4.1: "000003e7" +IB1.2: "00" +IB2.2: "2706" +IB3.2: "002706" +IB4.2: "00002706" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "01863c" +IB4.3: "0001863c" +IB2.4: "0000" +IB3.4: "0f3e58" +IB4.4: "000f3e58" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "00986f70" +IB3.6: "000000" +IB4.6: "05f45a60" +IB3.7: "000000" +IB4.7: "3b8b87c0" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +100 +IB1.0: "64" +IB2.0: "0064" +IB3.0: "000064" +IB4.0: "00000064" +IB1.1: "00" +IB2.1: "03e8" +IB3.1: "0003e8" +IB4.1: "000003e8" +IB1.2: "00" +IB2.2: "2710" +IB3.2: "002710" +IB4.2: "00002710" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "0186a0" +IB4.3: "000186a0" +IB2.4: "0000" +IB3.4: "0f4240" +IB4.4: "000f4240" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "00989680" +IB3.6: "000000" +IB4.6: "05f5e100" +IB3.7: "000000" +IB4.7: "3b9aca00" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +821237 +IB1.0: "00" +IB2.0: "0000" +IB3.0: "0c87f5" +IB4.0: "000c87f5" +IB1.1: "00" +IB2.1: "0000" +IB3.1: "7d4f92" +IB4.1: "007d4f92" +IB1.2: "00" +IB2.2: "0000" +IB3.2: "000000" +IB4.2: "04e51bb4" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "000000" +IB4.3: "30f31508" +IB2.4: "0000" +IB3.4: "000000" +IB4.4: "00000000" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "00000000" +IB3.6: "000000" +IB4.6: "00000000" +IB3.7: "000000" +IB4.7: "00000000" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +-99.1 +IB1.0: "9d" +IB2.0: "ff9d" +IB3.0: "ffff9d" +IB4.0: "ffffff9d" +IB1.1: "00" +IB2.1: "fc21" +IB3.1: "fffc21" +IB4.1: "fffffc21" +IB1.2: "00" +IB2.2: "d94a" +IB3.2: "ffd94a" +IB4.2: "ffffd94a" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "fe7ce4" +IB4.3: "fffe7ce4" +IB2.4: "0000" +IB3.4: "f0e0e8" +IB4.4: "fff0e0e8" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "ff68c910" +IB3.6: "000000" +IB4.6: "fa17daa0" +IB3.7: "000000" +IB4.7: "c4ee8a40" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +-99.5 +IB1.0: "9c" +IB2.0: "ff9c" +IB3.0: "ffff9c" +IB4.0: "ffffff9c" +IB1.1: "00" +IB2.1: "fc1d" +IB3.1: "fffc1d" +IB4.1: "fffffc1d" +IB1.2: "00" +IB2.2: "d922" +IB3.2: "ffd922" +IB4.2: "ffffd922" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "fe7b54" +IB4.3: "fffe7b54" +IB2.4: "0000" +IB3.4: "f0d148" +IB4.4: "fff0d148" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "ff682cd0" +IB3.6: "000000" +IB4.6: "fa11c020" +IB3.7: "000000" +IB4.7: "c4b18140" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +-99.9 +IB1.0: "9c" +IB2.0: "ff9c" +IB3.0: "ffff9c" +IB4.0: "ffffff9c" +IB1.1: "00" +IB2.1: "fc19" +IB3.1: "fffc19" +IB4.1: "fffffc19" +IB1.2: "00" +IB2.2: "d8fa" +IB3.2: "ffd8fa" +IB4.2: "ffffd8fa" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "fe79c4" +IB4.3: "fffe79c4" +IB2.4: "0000" +IB3.4: "f0c1a8" +IB4.4: "fff0c1a8" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "ff679090" +IB3.6: "000000" +IB4.6: "fa0ba5a0" +IB3.7: "000000" +IB4.7: "c4747840" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +-100 +IB1.0: "9c" +IB2.0: "ff9c" +IB3.0: "ffff9c" +IB4.0: "ffffff9c" +IB1.1: "00" +IB2.1: "fc18" +IB3.1: "fffc18" +IB4.1: "fffffc18" +IB1.2: "00" +IB2.2: "d8f0" +IB3.2: "ffd8f0" +IB4.2: "ffffd8f0" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "fe7960" +IB4.3: "fffe7960" +IB2.4: "0000" +IB3.4: "f0bdc0" +IB4.4: "fff0bdc0" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "ff676980" +IB3.6: "000000" +IB4.6: "fa0a1f00" +IB3.7: "000000" +IB4.7: "c4653600" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +-831237 +IB1.0: "00" +IB2.0: "0000" +IB3.0: "f350fb" +IB4.0: "fff350fb" +IB1.1: "00" +IB2.1: "0000" +IB3.1: "8129ce" +IB4.1: "ff8129ce" +IB1.2: "00" +IB2.2: "0000" +IB3.2: "000000" +IB4.2: "fb0ba20c" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "000000" +IB4.3: "ce745478" +IB2.4: "0000" +IB3.4: "000000" +IB4.4: "00000000" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "00000000" +IB3.6: "000000" +IB4.6: "00000000" +IB3.7: "000000" +IB4.7: "00000000" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +9.1 +IB1.0: "09" +IB2.0: "0009" +IB3.0: "000009" +IB4.0: "00000009" +IB1.1: "5b" +IB2.1: "005b" +IB3.1: "00005b" +IB4.1: "0000005b" +IB1.2: "00" +IB2.2: "038e" +IB3.2: "00038e" +IB4.2: "0000038e" +IB1.3: "00" +IB2.3: "238c" +IB3.3: "00238c" +IB4.3: "0000238c" +IB2.4: "0000" +IB3.4: "016378" +IB4.4: "00016378" +IB2.5: "0000" +IB3.5: "0de2b0" +IB4.5: "000de2b0" +IB3.6: "000000" +IB4.6: "008adae0" +IB3.7: "000000" +IB4.7: "056c8cc0" +IB3.8: "000000" +IB4.8: "363d7f80" +IB4.9: "00000000" +IB4.10: "00000000" +9.5 +IB1.0: "0a" +IB2.0: "000a" +IB3.0: "00000a" +IB4.0: "0000000a" +IB1.1: "5f" +IB2.1: "005f" +IB3.1: "00005f" +IB4.1: "0000005f" +IB1.2: "00" +IB2.2: "03b6" +IB3.2: "0003b6" +IB4.2: "000003b6" +IB1.3: "00" +IB2.3: "251c" +IB3.3: "00251c" +IB4.3: "0000251c" +IB2.4: "0000" +IB3.4: "017318" +IB4.4: "00017318" +IB2.5: "0000" +IB3.5: "0e7ef0" +IB4.5: "000e7ef0" +IB3.6: "000000" +IB4.6: "0090f560" +IB3.7: "000000" +IB4.7: "05a995c0" +IB3.8: "000000" +IB4.8: "389fd980" +IB4.9: "00000000" +IB4.10: "00000000" +9.9 +IB1.0: "0a" +IB2.0: "000a" +IB3.0: "00000a" +IB4.0: "0000000a" +IB1.1: "63" +IB2.1: "0063" +IB3.1: "000063" +IB4.1: "00000063" +IB1.2: "00" +IB2.2: "03de" +IB3.2: "0003de" +IB4.2: "000003de" +IB1.3: "00" +IB2.3: "26ac" +IB3.3: "0026ac" +IB4.3: "000026ac" +IB2.4: "0000" +IB3.4: "0182b8" +IB4.4: "000182b8" +IB2.5: "0000" +IB3.5: "0f1b30" +IB4.5: "000f1b30" +IB3.6: "000000" +IB4.6: "00970fe0" +IB3.7: "000000" +IB4.7: "05e69ec0" +IB3.8: "000000" +IB4.8: "3b023380" +IB4.9: "00000000" +IB4.10: "00000000" +10 +IB1.0: "0a" +IB2.0: "000a" +IB3.0: "00000a" +IB4.0: "0000000a" +IB1.1: "64" +IB2.1: "0064" +IB3.1: "000064" +IB4.1: "00000064" +IB1.2: "00" +IB2.2: "03e8" +IB3.2: "0003e8" +IB4.2: "000003e8" +IB1.3: "00" +IB2.3: "2710" +IB3.3: "002710" +IB4.3: "00002710" +IB2.4: "0000" +IB3.4: "0186a0" +IB4.4: "000186a0" +IB2.5: "0000" +IB3.5: "0f4240" +IB4.5: "000f4240" +IB3.6: "000000" +IB4.6: "00989680" +IB3.7: "000000" +IB4.7: "05f5e100" +IB3.8: "000000" +IB4.8: "3b9aca00" +IB4.9: "00000000" +IB4.10: "00000000" +81237 +IB1.0: "00" +IB2.0: "0000" +IB3.0: "013d55" +IB4.0: "00013d55" +IB1.1: "00" +IB2.1: "0000" +IB3.1: "0c6552" +IB4.1: "000c6552" +IB1.2: "00" +IB2.2: "0000" +IB3.2: "7bf534" +IB4.2: "007bf534" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "000000" +IB4.3: "04d79408" +IB2.4: "0000" +IB3.4: "000000" +IB4.4: "306bc850" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "00000000" +IB3.6: "000000" +IB4.6: "00000000" +IB3.7: "000000" +IB4.7: "00000000" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +-9.1 +IB1.0: "f7" +IB2.0: "fff7" +IB3.0: "fffff7" +IB4.0: "fffffff7" +IB1.1: "a5" +IB2.1: "ffa5" +IB3.1: "ffffa5" +IB4.1: "ffffffa5" +IB1.2: "00" +IB2.2: "fc72" +IB3.2: "fffc72" +IB4.2: "fffffc72" +IB1.3: "00" +IB2.3: "dc74" +IB3.3: "ffdc74" +IB4.3: "ffffdc74" +IB2.4: "0000" +IB3.4: "fe9c88" +IB4.4: "fffe9c88" +IB2.5: "0000" +IB3.5: "f21d50" +IB4.5: "fff21d50" +IB3.6: "000000" +IB4.6: "ff752520" +IB3.7: "000000" +IB4.7: "fa937340" +IB3.8: "000000" +IB4.8: "c9c28080" +IB4.9: "00000000" +IB4.10: "00000000" +-9.5 +IB1.0: "f6" +IB2.0: "fff6" +IB3.0: "fffff6" +IB4.0: "fffffff6" +IB1.1: "a1" +IB2.1: "ffa1" +IB3.1: "ffffa1" +IB4.1: "ffffffa1" +IB1.2: "00" +IB2.2: "fc4a" +IB3.2: "fffc4a" +IB4.2: "fffffc4a" +IB1.3: "00" +IB2.3: "dae4" +IB3.3: "ffdae4" +IB4.3: "ffffdae4" +IB2.4: "0000" +IB3.4: "fe8ce8" +IB4.4: "fffe8ce8" +IB2.5: "0000" +IB3.5: "f18110" +IB4.5: "fff18110" +IB3.6: "000000" +IB4.6: "ff6f0aa0" +IB3.7: "000000" +IB4.7: "fa566a40" +IB3.8: "000000" +IB4.8: "c7602680" +IB4.9: "00000000" +IB4.10: "00000000" +-9.9 +IB1.0: "f6" +IB2.0: "fff6" +IB3.0: "fffff6" +IB4.0: "fffffff6" +IB1.1: "9d" +IB2.1: "ff9d" +IB3.1: "ffff9d" +IB4.1: "ffffff9d" +IB1.2: "00" +IB2.2: "fc22" +IB3.2: "fffc22" +IB4.2: "fffffc22" +IB1.3: "00" +IB2.3: "d954" +IB3.3: "ffd954" +IB4.3: "ffffd954" +IB2.4: "0000" +IB3.4: "fe7d48" +IB4.4: "fffe7d48" +IB2.5: "0000" +IB3.5: "f0e4d0" +IB4.5: "fff0e4d0" +IB3.6: "000000" +IB4.6: "ff68f020" +IB3.7: "000000" +IB4.7: "fa196140" +IB3.8: "000000" +IB4.8: "c4fdcc80" +IB4.9: "00000000" +IB4.10: "00000000" +-10 +IB1.0: "f6" +IB2.0: "fff6" +IB3.0: "fffff6" +IB4.0: "fffffff6" +IB1.1: "9c" +IB2.1: "ff9c" +IB3.1: "ffff9c" +IB4.1: "ffffff9c" +IB1.2: "00" +IB2.2: "fc18" +IB3.2: "fffc18" +IB4.2: "fffffc18" +IB1.3: "00" +IB2.3: "d8f0" +IB3.3: "ffd8f0" +IB4.3: "ffffd8f0" +IB2.4: "0000" +IB3.4: "fe7960" +IB4.4: "fffe7960" +IB2.5: "0000" +IB3.5: "f0bdc0" +IB4.5: "fff0bdc0" +IB3.6: "000000" +IB4.6: "ff676980" +IB3.7: "000000" +IB4.7: "fa0a1f00" +IB3.8: "000000" +IB4.8: "c4653600" +IB4.9: "00000000" +IB4.10: "00000000" +-81237 +IB1.0: "00" +IB2.0: "0000" +IB3.0: "fec2ab" +IB4.0: "fffec2ab" +IB1.1: "00" +IB2.1: "0000" +IB3.1: "f39aae" +IB4.1: "fff39aae" +IB1.2: "00" +IB2.2: "0000" +IB3.2: "840acc" +IB4.2: "ff840acc" +IB1.3: "00" +IB2.3: "0000" +IB3.3: "000000" +IB4.3: "fb286bf8" +IB2.4: "0000" +IB3.4: "000000" +IB4.4: "cf9437b0" +IB2.5: "0000" +IB3.5: "000000" +IB4.5: "00000000" +IB3.6: "000000" +IB4.6: "00000000" +IB3.7: "000000" +IB4.7: "00000000" +IB3.8: "000000" +IB4.8: "00000000" +IB4.9: "00000000" +IB4.10: "00000000" +1.1 +IB1.0: "01" +IB2.0: "0001" +IB3.0: "000001" +IB4.0: "00000001" +IB1.1: "0b" +IB2.1: "000b" +IB3.1: "00000b" +IB4.1: "0000000b" +IB1.2: "6e" +IB2.2: "006e" +IB3.2: "00006e" +IB4.2: "0000006e" +IB1.3: "00" +IB2.3: "044c" +IB3.3: "00044c" +IB4.3: "0000044c" +IB2.4: "2af8" +IB3.4: "002af8" +IB4.4: "00002af8" +IB2.5: "0000" +IB3.5: "01adb0" +IB4.5: "0001adb0" +IB3.6: "10c8e0" +IB4.6: "0010c8e0" +IB3.7: "000000" +IB4.7: "00a7d8c0" +IB3.8: "000000" +IB4.8: "068e7780" +IB4.9: "4190ab00" +IB4.10: "00000000" +-1.1 +IB1.0: "ff" +IB2.0: "ffff" +IB3.0: "ffffff" +IB4.0: "ffffffff" +IB1.1: "f5" +IB2.1: "fff5" +IB3.1: "fffff5" +IB4.1: "fffffff5" +IB1.2: "92" +IB2.2: "ff92" +IB3.2: "ffff92" +IB4.2: "ffffff92" +IB1.3: "00" +IB2.3: "fbb4" +IB3.3: "fffbb4" +IB4.3: "fffffbb4" +IB2.4: "d508" +IB3.4: "ffd508" +IB4.4: "ffffd508" +IB2.5: "0000" +IB3.5: "fe5250" +IB4.5: "fffe5250" +IB3.6: "ef3720" +IB4.6: "ffef3720" +IB3.7: "000000" +IB4.7: "ff582740" +IB3.8: "000000" +IB4.8: "f9718880" +IB4.9: "be6f5500" +IB4.10: "00000000" +1.5 +IB1.0: "02" +IB2.0: "0002" +IB3.0: "000002" +IB4.0: "00000002" +IB1.1: "0f" +IB2.1: "000f" +IB3.1: "00000f" +IB4.1: "0000000f" +IB1.2: "00" +IB2.2: "0096" +IB3.2: "000096" +IB4.2: "00000096" +IB1.3: "00" +IB2.3: "05dc" +IB3.3: "0005dc" +IB4.3: "000005dc" +IB2.4: "3a98" +IB3.4: "003a98" +IB4.4: "00003a98" +IB2.5: "0000" +IB3.5: "0249f0" +IB4.5: "000249f0" +IB3.6: "16e360" +IB4.6: "0016e360" +IB3.7: "000000" +IB4.7: "00e4e1c0" +IB3.8: "000000" +IB4.8: "08f0d180" +IB4.9: "59682f00" +IB4.10: "00000000" +-1.5 +IB1.0: "fe" +IB2.0: "fffe" +IB3.0: "fffffe" +IB4.0: "fffffffe" +IB1.1: "f1" +IB2.1: "fff1" +IB3.1: "fffff1" +IB4.1: "fffffff1" +IB1.2: "00" +IB2.2: "ff6a" +IB3.2: "ffff6a" +IB4.2: "ffffff6a" +IB1.3: "00" +IB2.3: "fa24" +IB3.3: "fffa24" +IB4.3: "fffffa24" +IB2.4: "c568" +IB3.4: "ffc568" +IB4.4: "ffffc568" +IB2.5: "0000" +IB3.5: "fdb610" +IB4.5: "fffdb610" +IB3.6: "e91ca0" +IB4.6: "ffe91ca0" +IB3.7: "000000" +IB4.7: "ff1b1e40" +IB3.8: "000000" +IB4.8: "f70f2e80" +IB4.9: "a697d100" +IB4.10: "00000000" +1.9 +IB1.0: "02" +IB2.0: "0002" +IB3.0: "000002" +IB4.0: "00000002" +IB1.1: "13" +IB2.1: "0013" +IB3.1: "000013" +IB4.1: "00000013" +IB1.2: "00" +IB2.2: "00be" +IB3.2: "0000be" +IB4.2: "000000be" +IB1.3: "00" +IB2.3: "076c" +IB3.3: "00076c" +IB4.3: "0000076c" +IB2.4: "4a38" +IB3.4: "004a38" +IB4.4: "00004a38" +IB2.5: "0000" +IB3.5: "02e630" +IB4.5: "0002e630" +IB3.6: "1cfde0" +IB4.6: "001cfde0" +IB3.7: "000000" +IB4.7: "0121eac0" +IB3.8: "000000" +IB4.8: "0b532b80" +IB4.9: "713fb300" +IB4.10: "00000000" +-1.9 +IB1.0: "fe" +IB2.0: "fffe" +IB3.0: "fffffe" +IB4.0: "fffffffe" +IB1.1: "ed" +IB2.1: "ffed" +IB3.1: "ffffed" +IB4.1: "ffffffed" +IB1.2: "00" +IB2.2: "ff42" +IB3.2: "ffff42" +IB4.2: "ffffff42" +IB1.3: "00" +IB2.3: "f894" +IB3.3: "fff894" +IB4.3: "fffff894" +IB2.4: "b5c8" +IB3.4: "ffb5c8" +IB4.4: "ffffb5c8" +IB2.5: "0000" +IB3.5: "fd19d0" +IB4.5: "fffd19d0" +IB3.6: "e30220" +IB4.6: "ffe30220" +IB3.7: "000000" +IB4.7: "fede1540" +IB3.8: "000000" +IB4.8: "f4acd480" +IB4.9: "8ec04d00" +IB4.10: "00000000" diff --git a/rust/pspp/src/format/testdata/p.txt b/rust/pspp/src/format/testdata/p.txt new file mode 100644 index 0000000000..87f87bd26c --- /dev/null +++ b/rust/pspp/src/format/testdata/p.txt @@ -0,0 +1,748 @@ +. +P1.0: "0f" +P2.0: "000f" +P3.0: "00000f" +P4.0: "0000000f" +P2.1: "000f" +P3.1: "00000f" +P4.1: "0000000f" +P3.2: "00000f" +P4.2: "0000000f" +P4.3: "0000000f" +2 +P1.0: "2f" +P2.0: "002f" +P3.0: "00002f" +P4.0: "0000002f" +P2.1: "020f" +P3.1: "00020f" +P4.1: "0000020f" +P3.2: "00200f" +P4.2: "0000200f" +P4.3: "0002000f" +11 +P1.0: "0f" +P2.0: "011f" +P3.0: "00011f" +P4.0: "0000011f" +P2.1: "110f" +P3.1: "00110f" +P4.1: "0000110f" +P3.2: "01100f" +P4.2: "0001100f" +P4.3: "0011000f" +123 +P1.0: "0f" +P2.0: "123f" +P3.0: "00123f" +P4.0: "0000123f" +P2.1: "000f" +P3.1: "01230f" +P4.1: "0001230f" +P3.2: "12300f" +P4.2: "0012300f" +P4.3: "0123000f" +1234 +P1.0: "0f" +P2.0: "000f" +P3.0: "01234f" +P4.0: "0001234f" +P2.1: "000f" +P3.1: "12340f" +P4.1: "0012340f" +P3.2: "00000f" +P4.2: "0123400f" +P4.3: "1234000f" +913 +P1.0: "0f" +P2.0: "913f" +P3.0: "00913f" +P4.0: "0000913f" +P2.1: "000f" +P3.1: "09130f" +P4.1: "0009130f" +P3.2: "91300f" +P4.2: "0091300f" +P4.3: "0913000f" +3.14159 +P1.0: "3f" +P2.0: "003f" +P3.0: "00003f" +P4.0: "0000003f" +P2.1: "031f" +P3.1: "00031f" +P4.1: "0000031f" +P3.2: "00314f" +P4.2: "0000314f" +P4.3: "0003142f" +777 +P1.0: "0f" +P2.0: "777f" +P3.0: "00777f" +P4.0: "0000777f" +P2.1: "000f" +P3.1: "07770f" +P4.1: "0007770f" +P3.2: "77700f" +P4.2: "0077700f" +P4.3: "0777000f" +82 +P1.0: "0f" +P2.0: "082f" +P3.0: "00082f" +P4.0: "0000082f" +P2.1: "820f" +P3.1: "00820f" +P4.1: "0000820f" +P3.2: "08200f" +P4.2: "0008200f" +P4.3: "0082000f" +690 +P1.0: "0f" +P2.0: "690f" +P3.0: "00690f" +P4.0: "0000690f" +P2.1: "000f" +P3.1: "06900f" +P4.1: "0006900f" +P3.2: "69000f" +P4.2: "0069000f" +P4.3: "0690000f" +-2 +P1.0: "2d" +P2.0: "002d" +P3.0: "00002d" +P4.0: "0000002d" +P2.1: "020d" +P3.1: "00020d" +P4.1: "0000020d" +P3.2: "00200d" +P4.2: "0000200d" +P4.3: "0002000d" +-11 +P1.0: "0f" +P2.0: "011d" +P3.0: "00011d" +P4.0: "0000011d" +P2.1: "110d" +P3.1: "00110d" +P4.1: "0000110d" +P3.2: "01100d" +P4.2: "0001100d" +P4.3: "0011000d" +-123 +P1.0: "0f" +P2.0: "123d" +P3.0: "00123d" +P4.0: "0000123d" +P2.1: "000f" +P3.1: "01230d" +P4.1: "0001230d" +P3.2: "12300d" +P4.2: "0012300d" +P4.3: "0123000d" +-1234 +P1.0: "0f" +P2.0: "000f" +P3.0: "01234d" +P4.0: "0001234d" +P2.1: "000f" +P3.1: "12340d" +P4.1: "0012340d" +P3.2: "00000f" +P4.2: "0123400d" +P4.3: "1234000d" +-913 +P1.0: "0f" +P2.0: "913d" +P3.0: "00913d" +P4.0: "0000913d" +P2.1: "000f" +P3.1: "09130d" +P4.1: "0009130d" +P3.2: "91300d" +P4.2: "0091300d" +P4.3: "0913000d" +-3.14159 +P1.0: "3d" +P2.0: "003d" +P3.0: "00003d" +P4.0: "0000003d" +P2.1: "031d" +P3.1: "00031d" +P4.1: "0000031d" +P3.2: "00314d" +P4.2: "0000314d" +P4.3: "0003142d" +-777 +P1.0: "0f" +P2.0: "777d" +P3.0: "00777d" +P4.0: "0000777d" +P2.1: "000f" +P3.1: "07770d" +P4.1: "0007770d" +P3.2: "77700d" +P4.2: "0077700d" +P4.3: "0777000d" +-82 +P1.0: "0f" +P2.0: "082d" +P3.0: "00082d" +P4.0: "0000082d" +P2.1: "820d" +P3.1: "00820d" +P4.1: "0000820d" +P3.2: "08200d" +P4.2: "0008200d" +P4.3: "0082000d" +-690 +P1.0: "0f" +P2.0: "690d" +P3.0: "00690d" +P4.0: "0000690d" +P2.1: "000f" +P3.1: "06900d" +P4.1: "0006900d" +P3.2: "69000d" +P4.2: "0069000d" +P4.3: "0690000d" +-.1 +P1.0: "0d" +P2.0: "000d" +P3.0: "00000d" +P4.0: "0000000d" +P2.1: "001d" +P3.1: "00001d" +P4.1: "0000001d" +P3.2: "00010d" +P4.2: "0000010d" +P4.3: "0000100d" +-.5 +P1.0: "1d" +P2.0: "001d" +P3.0: "00001d" +P4.0: "0000001d" +P2.1: "005d" +P3.1: "00005d" +P4.1: "0000005d" +P3.2: "00050d" +P4.2: "0000050d" +P4.3: "0000500d" +-.9 +P1.0: "1d" +P2.0: "001d" +P3.0: "00001d" +P4.0: "0000001d" +P2.1: "009d" +P3.1: "00009d" +P4.1: "0000009d" +P3.2: "00090d" +P4.2: "0000090d" +P4.3: "0000900d" +9999.1 +P1.0: "0f" +P2.0: "000f" +P3.0: "09999f" +P4.0: "0009999f" +P2.1: "000f" +P3.1: "99991f" +P4.1: "0099991f" +P3.2: "00000f" +P4.2: "0999910f" +P4.3: "9999100f" +9999.5 +P1.0: "0f" +P2.0: "000f" +P3.0: "10000f" +P4.0: "0010000f" +P2.1: "000f" +P3.1: "99995f" +P4.1: "0099995f" +P3.2: "00000f" +P4.2: "0999950f" +P4.3: "9999500f" +9999.9 +P1.0: "0f" +P2.0: "000f" +P3.0: "10000f" +P4.0: "0010000f" +P2.1: "000f" +P3.1: "99999f" +P4.1: "0099999f" +P3.2: "00000f" +P4.2: "0999990f" +P4.3: "9999900f" +10000 +P1.0: "0f" +P2.0: "000f" +P3.0: "10000f" +P4.0: "0010000f" +P2.1: "000f" +P3.1: "00000f" +P4.1: "0100000f" +P3.2: "00000f" +P4.2: "1000000f" +P4.3: "0000000f" +18231237 +P1.0: "0f" +P2.0: "000f" +P3.0: "00000f" +P4.0: "0000000f" +P2.1: "000f" +P3.1: "00000f" +P4.1: "0000000f" +P3.2: "00000f" +P4.2: "0000000f" +P4.3: "0000000f" +-9999.1 +P1.0: "0f" +P2.0: "000f" +P3.0: "09999d" +P4.0: "0009999d" +P2.1: "000f" +P3.1: "99991d" +P4.1: "0099991d" +P3.2: "00000f" +P4.2: "0999910d" +P4.3: "9999100d" +-9999.5 +P1.0: "0f" +P2.0: "000f" +P3.0: "10000d" +P4.0: "0010000d" +P2.1: "000f" +P3.1: "99995d" +P4.1: "0099995d" +P3.2: "00000f" +P4.2: "0999950d" +P4.3: "9999500d" +-9999.9 +P1.0: "0f" +P2.0: "000f" +P3.0: "10000d" +P4.0: "0010000d" +P2.1: "000f" +P3.1: "99999d" +P4.1: "0099999d" +P3.2: "00000f" +P4.2: "0999990d" +P4.3: "9999900d" +-10000 +P1.0: "0f" +P2.0: "000f" +P3.0: "10000d" +P4.0: "0010000d" +P2.1: "000f" +P3.1: "00000f" +P4.1: "0100000d" +P3.2: "00000f" +P4.2: "1000000d" +P4.3: "0000000f" +-8231237 +P1.0: "0f" +P2.0: "000f" +P3.0: "00000f" +P4.0: "8231237d" +P2.1: "000f" +P3.1: "00000f" +P4.1: "0000000f" +P3.2: "00000f" +P4.2: "0000000f" +P4.3: "0000000f" +999.1 +P1.0: "0f" +P2.0: "999f" +P3.0: "00999f" +P4.0: "0000999f" +P2.1: "000f" +P3.1: "09991f" +P4.1: "0009991f" +P3.2: "99910f" +P4.2: "0099910f" +P4.3: "0999100f" +999.5 +P1.0: "0f" +P2.0: "000f" +P3.0: "01000f" +P4.0: "0001000f" +P2.1: "000f" +P3.1: "09995f" +P4.1: "0009995f" +P3.2: "99950f" +P4.2: "0099950f" +P4.3: "0999500f" +999.9 +P1.0: "0f" +P2.0: "000f" +P3.0: "01000f" +P4.0: "0001000f" +P2.1: "000f" +P3.1: "09999f" +P4.1: "0009999f" +P3.2: "99990f" +P4.2: "0099990f" +P4.3: "0999900f" +1000 +P1.0: "0f" +P2.0: "000f" +P3.0: "01000f" +P4.0: "0001000f" +P2.1: "000f" +P3.1: "10000f" +P4.1: "0010000f" +P3.2: "00000f" +P4.2: "0100000f" +P4.3: "1000000f" +8231237 +P1.0: "0f" +P2.0: "000f" +P3.0: "00000f" +P4.0: "8231237f" +P2.1: "000f" +P3.1: "00000f" +P4.1: "0000000f" +P3.2: "00000f" +P4.2: "0000000f" +P4.3: "0000000f" +-999.1 +P1.0: "0f" +P2.0: "999d" +P3.0: "00999d" +P4.0: "0000999d" +P2.1: "000f" +P3.1: "09991d" +P4.1: "0009991d" +P3.2: "99910d" +P4.2: "0099910d" +P4.3: "0999100d" +-999.5 +P1.0: "0f" +P2.0: "000f" +P3.0: "01000d" +P4.0: "0001000d" +P2.1: "000f" +P3.1: "09995d" +P4.1: "0009995d" +P3.2: "99950d" +P4.2: "0099950d" +P4.3: "0999500d" +-999.9 +P1.0: "0f" +P2.0: "000f" +P3.0: "01000d" +P4.0: "0001000d" +P2.1: "000f" +P3.1: "09999d" +P4.1: "0009999d" +P3.2: "99990d" +P4.2: "0099990d" +P4.3: "0999900d" +-1000 +P1.0: "0f" +P2.0: "000f" +P3.0: "01000d" +P4.0: "0001000d" +P2.1: "000f" +P3.1: "10000d" +P4.1: "0010000d" +P3.2: "00000f" +P4.2: "0100000d" +P4.3: "1000000d" +-8231237 +P1.0: "0f" +P2.0: "000f" +P3.0: "00000f" +P4.0: "8231237d" +P2.1: "000f" +P3.1: "00000f" +P4.1: "0000000f" +P3.2: "00000f" +P4.2: "0000000f" +P4.3: "0000000f" +99.1 +P1.0: "0f" +P2.0: "099f" +P3.0: "00099f" +P4.0: "0000099f" +P2.1: "991f" +P3.1: "00991f" +P4.1: "0000991f" +P3.2: "09910f" +P4.2: "0009910f" +P4.3: "0099100f" +99.5 +P1.0: "0f" +P2.0: "100f" +P3.0: "00100f" +P4.0: "0000100f" +P2.1: "995f" +P3.1: "00995f" +P4.1: "0000995f" +P3.2: "09950f" +P4.2: "0009950f" +P4.3: "0099500f" +99.9 +P1.0: "0f" +P2.0: "100f" +P3.0: "00100f" +P4.0: "0000100f" +P2.1: "999f" +P3.1: "00999f" +P4.1: "0000999f" +P3.2: "09990f" +P4.2: "0009990f" +P4.3: "0099900f" +100 +P1.0: "0f" +P2.0: "100f" +P3.0: "00100f" +P4.0: "0000100f" +P2.1: "000f" +P3.1: "01000f" +P4.1: "0001000f" +P3.2: "10000f" +P4.2: "0010000f" +P4.3: "0100000f" +821237 +P1.0: "0f" +P2.0: "000f" +P3.0: "00000f" +P4.0: "0821237f" +P2.1: "000f" +P3.1: "00000f" +P4.1: "8212370f" +P3.2: "00000f" +P4.2: "0000000f" +P4.3: "0000000f" +-99.1 +P1.0: "0f" +P2.0: "099d" +P3.0: "00099d" +P4.0: "0000099d" +P2.1: "991d" +P3.1: "00991d" +P4.1: "0000991d" +P3.2: "09910d" +P4.2: "0009910d" +P4.3: "0099100d" +-99.5 +P1.0: "0f" +P2.0: "100d" +P3.0: "00100d" +P4.0: "0000100d" +P2.1: "995d" +P3.1: "00995d" +P4.1: "0000995d" +P3.2: "09950d" +P4.2: "0009950d" +P4.3: "0099500d" +-99.9 +P1.0: "0f" +P2.0: "100d" +P3.0: "00100d" +P4.0: "0000100d" +P2.1: "999d" +P3.1: "00999d" +P4.1: "0000999d" +P3.2: "09990d" +P4.2: "0009990d" +P4.3: "0099900d" +-100 +P1.0: "0f" +P2.0: "100d" +P3.0: "00100d" +P4.0: "0000100d" +P2.1: "000f" +P3.1: "01000d" +P4.1: "0001000d" +P3.2: "10000d" +P4.2: "0010000d" +P4.3: "0100000d" +-831237 +P1.0: "0f" +P2.0: "000f" +P3.0: "00000f" +P4.0: "0831237d" +P2.1: "000f" +P3.1: "00000f" +P4.1: "8312370d" +P3.2: "00000f" +P4.2: "0000000f" +P4.3: "0000000f" +9.1 +P1.0: "9f" +P2.0: "009f" +P3.0: "00009f" +P4.0: "0000009f" +P2.1: "091f" +P3.1: "00091f" +P4.1: "0000091f" +P3.2: "00910f" +P4.2: "0000910f" +P4.3: "0009100f" +9.5 +P1.0: "0f" +P2.0: "010f" +P3.0: "00010f" +P4.0: "0000010f" +P2.1: "095f" +P3.1: "00095f" +P4.1: "0000095f" +P3.2: "00950f" +P4.2: "0000950f" +P4.3: "0009500f" +9.9 +P1.0: "0f" +P2.0: "010f" +P3.0: "00010f" +P4.0: "0000010f" +P2.1: "099f" +P3.1: "00099f" +P4.1: "0000099f" +P3.2: "00990f" +P4.2: "0000990f" +P4.3: "0009900f" +10 +P1.0: "0f" +P2.0: "010f" +P3.0: "00010f" +P4.0: "0000010f" +P2.1: "100f" +P3.1: "00100f" +P4.1: "0000100f" +P3.2: "01000f" +P4.2: "0001000f" +P4.3: "0010000f" +81237 +P1.0: "0f" +P2.0: "000f" +P3.0: "81237f" +P4.0: "0081237f" +P2.1: "000f" +P3.1: "00000f" +P4.1: "0812370f" +P3.2: "00000f" +P4.2: "8123700f" +P4.3: "0000000f" +-9.1 +P1.0: "9d" +P2.0: "009d" +P3.0: "00009d" +P4.0: "0000009d" +P2.1: "091d" +P3.1: "00091d" +P4.1: "0000091d" +P3.2: "00910d" +P4.2: "0000910d" +P4.3: "0009100d" +-9.5 +P1.0: "0f" +P2.0: "010d" +P3.0: "00010d" +P4.0: "0000010d" +P2.1: "095d" +P3.1: "00095d" +P4.1: "0000095d" +P3.2: "00950d" +P4.2: "0000950d" +P4.3: "0009500d" +-9.9 +P1.0: "0f" +P2.0: "010d" +P3.0: "00010d" +P4.0: "0000010d" +P2.1: "099d" +P3.1: "00099d" +P4.1: "0000099d" +P3.2: "00990d" +P4.2: "0000990d" +P4.3: "0009900d" +-10 +P1.0: "0f" +P2.0: "010d" +P3.0: "00010d" +P4.0: "0000010d" +P2.1: "100d" +P3.1: "00100d" +P4.1: "0000100d" +P3.2: "01000d" +P4.2: "0001000d" +P4.3: "0010000d" +-81237 +P1.0: "0f" +P2.0: "000f" +P3.0: "81237d" +P4.0: "0081237d" +P2.1: "000f" +P3.1: "00000f" +P4.1: "0812370d" +P3.2: "00000f" +P4.2: "8123700d" +P4.3: "0000000f" +1.1 +P1.0: "1f" +P2.0: "001f" +P3.0: "00001f" +P4.0: "0000001f" +P2.1: "011f" +P3.1: "00011f" +P4.1: "0000011f" +P3.2: "00110f" +P4.2: "0000110f" +P4.3: "0001100f" +-1.1 +P1.0: "1d" +P2.0: "001d" +P3.0: "00001d" +P4.0: "0000001d" +P2.1: "011d" +P3.1: "00011d" +P4.1: "0000011d" +P3.2: "00110d" +P4.2: "0000110d" +P4.3: "0001100d" +1.5 +P1.0: "2f" +P2.0: "002f" +P3.0: "00002f" +P4.0: "0000002f" +P2.1: "015f" +P3.1: "00015f" +P4.1: "0000015f" +P3.2: "00150f" +P4.2: "0000150f" +P4.3: "0001500f" +-1.5 +P1.0: "2d" +P2.0: "002d" +P3.0: "00002d" +P4.0: "0000002d" +P2.1: "015d" +P3.1: "00015d" +P4.1: "0000015d" +P3.2: "00150d" +P4.2: "0000150d" +P4.3: "0001500d" +1.9 +P1.0: "2f" +P2.0: "002f" +P3.0: "00002f" +P4.0: "0000002f" +P2.1: "019f" +P3.1: "00019f" +P4.1: "0000019f" +P3.2: "00190f" +P4.2: "0000190f" +P4.3: "0001900f" +-1.9 +P1.0: "2d" +P2.0: "002d" +P3.0: "00002d" +P4.0: "0000002d" +P2.1: "019d" +P3.1: "00019d" +P4.1: "0000019d" +P3.2: "00190d" +P4.2: "0000190d" +P4.3: "0001900d" diff --git a/rust/pspp/src/format/testdata/pib.txt b/rust/pspp/src/format/testdata/pib.txt new file mode 100644 index 0000000000..9b324977a9 --- /dev/null +++ b/rust/pspp/src/format/testdata/pib.txt @@ -0,0 +1,2108 @@ +. +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +2 +PIB1.0: "02" +PIB2.0: "0002" +PIB3.0: "000002" +PIB4.0: "00000002" +PIB1.1: "14" +PIB2.1: "0014" +PIB3.1: "000014" +PIB4.1: "00000014" +PIB1.2: "c8" +PIB2.2: "00c8" +PIB3.2: "0000c8" +PIB4.2: "000000c8" +PIB1.3: "00" +PIB2.3: "07d0" +PIB3.3: "0007d0" +PIB4.3: "000007d0" +PIB2.4: "4e20" +PIB3.4: "004e20" +PIB4.4: "00004e20" +PIB2.5: "0000" +PIB3.5: "030d40" +PIB4.5: "00030d40" +PIB3.6: "1e8480" +PIB4.6: "001e8480" +PIB3.7: "000000" +PIB4.7: "01312d00" +PIB3.8: "000000" +PIB4.8: "0bebc200" +PIB4.9: "77359400" +PIB4.10: "00000000" +11 +PIB1.0: "0b" +PIB2.0: "000b" +PIB3.0: "00000b" +PIB4.0: "0000000b" +PIB1.1: "6e" +PIB2.1: "006e" +PIB3.1: "00006e" +PIB4.1: "0000006e" +PIB1.2: "00" +PIB2.2: "044c" +PIB3.2: "00044c" +PIB4.2: "0000044c" +PIB1.3: "00" +PIB2.3: "2af8" +PIB3.3: "002af8" +PIB4.3: "00002af8" +PIB2.4: "0000" +PIB3.4: "01adb0" +PIB4.4: "0001adb0" +PIB2.5: "0000" +PIB3.5: "10c8e0" +PIB4.5: "0010c8e0" +PIB3.6: "a7d8c0" +PIB4.6: "00a7d8c0" +PIB3.7: "000000" +PIB4.7: "068e7780" +PIB3.8: "000000" +PIB4.8: "4190ab00" +PIB4.9: "00000000" +PIB4.10: "00000000" +123 +PIB1.0: "7b" +PIB2.0: "007b" +PIB3.0: "00007b" +PIB4.0: "0000007b" +PIB1.1: "00" +PIB2.1: "04ce" +PIB3.1: "0004ce" +PIB4.1: "000004ce" +PIB1.2: "00" +PIB2.2: "300c" +PIB3.2: "00300c" +PIB4.2: "0000300c" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "01e078" +PIB4.3: "0001e078" +PIB2.4: "0000" +PIB3.4: "12c4b0" +PIB4.4: "0012c4b0" +PIB2.5: "0000" +PIB3.5: "bbaee0" +PIB4.5: "00bbaee0" +PIB3.6: "000000" +PIB4.6: "0754d4c0" +PIB3.7: "000000" +PIB4.7: "49504f80" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +1234 +PIB1.0: "00" +PIB2.0: "04d2" +PIB3.0: "0004d2" +PIB4.0: "000004d2" +PIB1.1: "00" +PIB2.1: "3034" +PIB3.1: "003034" +PIB4.1: "00003034" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "01e208" +PIB4.2: "0001e208" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "12d450" +PIB4.3: "0012d450" +PIB2.4: "0000" +PIB3.4: "bc4b20" +PIB4.4: "00bc4b20" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "075aef40" +PIB3.6: "000000" +PIB4.6: "498d5880" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +913 +PIB1.0: "00" +PIB2.0: "0391" +PIB3.0: "000391" +PIB4.0: "00000391" +PIB1.1: "00" +PIB2.1: "23aa" +PIB3.1: "0023aa" +PIB4.1: "000023aa" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "0164a4" +PIB4.2: "000164a4" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "0dee68" +PIB4.3: "000dee68" +PIB2.4: "0000" +PIB3.4: "8b5010" +PIB4.4: "008b5010" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "057120a0" +PIB3.6: "000000" +PIB4.6: "366b4640" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +3.14159 +PIB1.0: "03" +PIB2.0: "0003" +PIB3.0: "000003" +PIB4.0: "00000003" +PIB1.1: "1f" +PIB2.1: "001f" +PIB3.1: "00001f" +PIB4.1: "0000001f" +PIB1.2: "00" +PIB2.2: "013a" +PIB3.2: "00013a" +PIB4.2: "0000013a" +PIB1.3: "00" +PIB2.3: "0c46" +PIB3.3: "000c46" +PIB4.3: "00000c46" +PIB2.4: "7ab8" +PIB3.4: "007ab8" +PIB4.4: "00007ab8" +PIB2.5: "0000" +PIB3.5: "04cb2f" +PIB4.5: "0004cb2f" +PIB3.6: "2fefd6" +PIB4.6: "002fefd6" +PIB3.7: "000000" +PIB4.7: "01df5e5c" +PIB3.8: "000000" +PIB4.8: "12b9af98" +PIB4.9: "bb40dbf0" +PIB4.10: "00000000" +777 +PIB1.0: "00" +PIB2.0: "0309" +PIB3.0: "000309" +PIB4.0: "00000309" +PIB1.1: "00" +PIB2.1: "1e5a" +PIB3.1: "001e5a" +PIB4.1: "00001e5a" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "012f84" +PIB4.2: "00012f84" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "0bdb28" +PIB4.3: "000bdb28" +PIB2.4: "0000" +PIB3.4: "768f90" +PIB4.4: "00768f90" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "04a19ba0" +PIB3.6: "000000" +PIB4.6: "2e501440" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +82 +PIB1.0: "52" +PIB2.0: "0052" +PIB3.0: "000052" +PIB4.0: "00000052" +PIB1.1: "00" +PIB2.1: "0334" +PIB3.1: "000334" +PIB4.1: "00000334" +PIB1.2: "00" +PIB2.2: "2008" +PIB3.2: "002008" +PIB4.2: "00002008" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "014050" +PIB4.3: "00014050" +PIB2.4: "0000" +PIB3.4: "0c8320" +PIB4.4: "000c8320" +PIB2.5: "0000" +PIB3.5: "7d1f40" +PIB4.5: "007d1f40" +PIB3.6: "000000" +PIB4.6: "04e33880" +PIB3.7: "000000" +PIB4.7: "30e03500" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +690 +PIB1.0: "00" +PIB2.0: "02b2" +PIB3.0: "0002b2" +PIB4.0: "000002b2" +PIB1.1: "00" +PIB2.1: "1af4" +PIB3.1: "001af4" +PIB4.1: "00001af4" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "010d88" +PIB4.2: "00010d88" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "0a8750" +PIB4.3: "000a8750" +PIB2.4: "0000" +PIB3.4: "694920" +PIB4.4: "00694920" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "041cdb40" +PIB3.6: "000000" +PIB4.6: "29209080" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +-2 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +-11 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +-123 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +-1234 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +-913 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +-3.14159 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +-777 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +-82 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +-690 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +-.1 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +-.5 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +-.9 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +9999.1 +PIB1.0: "00" +PIB2.0: "270f" +PIB3.0: "00270f" +PIB4.0: "0000270f" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "018697" +PIB4.1: "00018697" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "0f41e6" +PIB4.2: "000f41e6" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "9892fc" +PIB4.3: "009892fc" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "05f5bdd8" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "3b996a70" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +9999.5 +PIB1.0: "00" +PIB2.0: "2710" +PIB3.0: "002710" +PIB4.0: "00002710" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "01869b" +PIB4.1: "0001869b" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "0f420e" +PIB4.2: "000f420e" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "98948c" +PIB4.3: "0098948c" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "05f5cd78" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "3b9a06b0" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +9999.9 +PIB1.0: "00" +PIB2.0: "2710" +PIB3.0: "002710" +PIB4.0: "00002710" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "01869f" +PIB4.1: "0001869f" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "0f4236" +PIB4.2: "000f4236" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "98961c" +PIB4.3: "0098961c" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "05f5dd18" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "3b9aa2f0" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +10000 +PIB1.0: "00" +PIB2.0: "2710" +PIB3.0: "002710" +PIB4.0: "00002710" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "0186a0" +PIB4.1: "000186a0" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "0f4240" +PIB4.2: "000f4240" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "989680" +PIB4.3: "00989680" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "05f5e100" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "3b9aca00" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +18231237 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "01162fc5" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "0addddb2" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "6caaa8f4" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +-9999.1 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +-9999.5 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +-9999.9 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +-10000 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +-8231237 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +999.1 +PIB1.0: "00" +PIB2.0: "03e7" +PIB3.0: "0003e7" +PIB4.0: "000003e7" +PIB1.1: "00" +PIB2.1: "2707" +PIB3.1: "002707" +PIB4.1: "00002707" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "018646" +PIB4.2: "00018646" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "0f3ebc" +PIB4.3: "000f3ebc" +PIB2.4: "0000" +PIB3.4: "987358" +PIB4.4: "00987358" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "05f48170" +PIB3.6: "000000" +PIB4.6: "3b8d0e60" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +999.5 +PIB1.0: "00" +PIB2.0: "03e8" +PIB3.0: "0003e8" +PIB4.0: "000003e8" +PIB1.1: "00" +PIB2.1: "270b" +PIB3.1: "00270b" +PIB4.1: "0000270b" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "01866e" +PIB4.2: "0001866e" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "0f404c" +PIB4.3: "000f404c" +PIB2.4: "0000" +PIB3.4: "9882f8" +PIB4.4: "009882f8" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "05f51db0" +PIB3.6: "000000" +PIB4.6: "3b9328e0" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +999.9 +PIB1.0: "00" +PIB2.0: "03e8" +PIB3.0: "0003e8" +PIB4.0: "000003e8" +PIB1.1: "00" +PIB2.1: "270f" +PIB3.1: "00270f" +PIB4.1: "0000270f" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "018696" +PIB4.2: "00018696" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "0f41dc" +PIB4.3: "000f41dc" +PIB2.4: "0000" +PIB3.4: "989298" +PIB4.4: "00989298" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "05f5b9f0" +PIB3.6: "000000" +PIB4.6: "3b994360" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +1000 +PIB1.0: "00" +PIB2.0: "03e8" +PIB3.0: "0003e8" +PIB4.0: "000003e8" +PIB1.1: "00" +PIB2.1: "2710" +PIB3.1: "002710" +PIB4.1: "00002710" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "0186a0" +PIB4.2: "000186a0" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "0f4240" +PIB4.3: "000f4240" +PIB2.4: "0000" +PIB3.4: "989680" +PIB4.4: "00989680" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "05f5e100" +PIB3.6: "000000" +PIB4.6: "3b9aca00" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +8231237 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "7d9945" +PIB4.0: "007d9945" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "04e7fcb2" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "310fdef4" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +-999.1 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +-999.5 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +-999.9 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +-1000 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +-8231237 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +99.1 +PIB1.0: "63" +PIB2.0: "0063" +PIB3.0: "000063" +PIB4.0: "00000063" +PIB1.1: "00" +PIB2.1: "03df" +PIB3.1: "0003df" +PIB4.1: "000003df" +PIB1.2: "00" +PIB2.2: "26b6" +PIB3.2: "0026b6" +PIB4.2: "000026b6" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "01831c" +PIB4.3: "0001831c" +PIB2.4: "0000" +PIB3.4: "0f1f18" +PIB4.4: "000f1f18" +PIB2.5: "0000" +PIB3.5: "9736f0" +PIB4.5: "009736f0" +PIB3.6: "000000" +PIB4.6: "05e82560" +PIB3.7: "000000" +PIB4.7: "3b1175c0" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +99.5 +PIB1.0: "64" +PIB2.0: "0064" +PIB3.0: "000064" +PIB4.0: "00000064" +PIB1.1: "00" +PIB2.1: "03e3" +PIB3.1: "0003e3" +PIB4.1: "000003e3" +PIB1.2: "00" +PIB2.2: "26de" +PIB3.2: "0026de" +PIB4.2: "000026de" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "0184ac" +PIB4.3: "000184ac" +PIB2.4: "0000" +PIB3.4: "0f2eb8" +PIB4.4: "000f2eb8" +PIB2.5: "0000" +PIB3.5: "97d330" +PIB4.5: "0097d330" +PIB3.6: "000000" +PIB4.6: "05ee3fe0" +PIB3.7: "000000" +PIB4.7: "3b4e7ec0" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +99.9 +PIB1.0: "64" +PIB2.0: "0064" +PIB3.0: "000064" +PIB4.0: "00000064" +PIB1.1: "00" +PIB2.1: "03e7" +PIB3.1: "0003e7" +PIB4.1: "000003e7" +PIB1.2: "00" +PIB2.2: "2706" +PIB3.2: "002706" +PIB4.2: "00002706" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "01863c" +PIB4.3: "0001863c" +PIB2.4: "0000" +PIB3.4: "0f3e58" +PIB4.4: "000f3e58" +PIB2.5: "0000" +PIB3.5: "986f70" +PIB4.5: "00986f70" +PIB3.6: "000000" +PIB4.6: "05f45a60" +PIB3.7: "000000" +PIB4.7: "3b8b87c0" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +100 +PIB1.0: "64" +PIB2.0: "0064" +PIB3.0: "000064" +PIB4.0: "00000064" +PIB1.1: "00" +PIB2.1: "03e8" +PIB3.1: "0003e8" +PIB4.1: "000003e8" +PIB1.2: "00" +PIB2.2: "2710" +PIB3.2: "002710" +PIB4.2: "00002710" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "0186a0" +PIB4.3: "000186a0" +PIB2.4: "0000" +PIB3.4: "0f4240" +PIB4.4: "000f4240" +PIB2.5: "0000" +PIB3.5: "989680" +PIB4.5: "00989680" +PIB3.6: "000000" +PIB4.6: "05f5e100" +PIB3.7: "000000" +PIB4.7: "3b9aca00" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +821237 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "0c87f5" +PIB4.0: "000c87f5" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "7d4f92" +PIB4.1: "007d4f92" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "04e51bb4" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "30f31508" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +-99.1 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +-99.5 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +-99.9 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +-100 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +-831237 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +9.1 +PIB1.0: "09" +PIB2.0: "0009" +PIB3.0: "000009" +PIB4.0: "00000009" +PIB1.1: "5b" +PIB2.1: "005b" +PIB3.1: "00005b" +PIB4.1: "0000005b" +PIB1.2: "00" +PIB2.2: "038e" +PIB3.2: "00038e" +PIB4.2: "0000038e" +PIB1.3: "00" +PIB2.3: "238c" +PIB3.3: "00238c" +PIB4.3: "0000238c" +PIB2.4: "0000" +PIB3.4: "016378" +PIB4.4: "00016378" +PIB2.5: "0000" +PIB3.5: "0de2b0" +PIB4.5: "000de2b0" +PIB3.6: "8adae0" +PIB4.6: "008adae0" +PIB3.7: "000000" +PIB4.7: "056c8cc0" +PIB3.8: "000000" +PIB4.8: "363d7f80" +PIB4.9: "00000000" +PIB4.10: "00000000" +9.5 +PIB1.0: "0a" +PIB2.0: "000a" +PIB3.0: "00000a" +PIB4.0: "0000000a" +PIB1.1: "5f" +PIB2.1: "005f" +PIB3.1: "00005f" +PIB4.1: "0000005f" +PIB1.2: "00" +PIB2.2: "03b6" +PIB3.2: "0003b6" +PIB4.2: "000003b6" +PIB1.3: "00" +PIB2.3: "251c" +PIB3.3: "00251c" +PIB4.3: "0000251c" +PIB2.4: "0000" +PIB3.4: "017318" +PIB4.4: "00017318" +PIB2.5: "0000" +PIB3.5: "0e7ef0" +PIB4.5: "000e7ef0" +PIB3.6: "90f560" +PIB4.6: "0090f560" +PIB3.7: "000000" +PIB4.7: "05a995c0" +PIB3.8: "000000" +PIB4.8: "389fd980" +PIB4.9: "00000000" +PIB4.10: "00000000" +9.9 +PIB1.0: "0a" +PIB2.0: "000a" +PIB3.0: "00000a" +PIB4.0: "0000000a" +PIB1.1: "63" +PIB2.1: "0063" +PIB3.1: "000063" +PIB4.1: "00000063" +PIB1.2: "00" +PIB2.2: "03de" +PIB3.2: "0003de" +PIB4.2: "000003de" +PIB1.3: "00" +PIB2.3: "26ac" +PIB3.3: "0026ac" +PIB4.3: "000026ac" +PIB2.4: "0000" +PIB3.4: "0182b8" +PIB4.4: "000182b8" +PIB2.5: "0000" +PIB3.5: "0f1b30" +PIB4.5: "000f1b30" +PIB3.6: "970fe0" +PIB4.6: "00970fe0" +PIB3.7: "000000" +PIB4.7: "05e69ec0" +PIB3.8: "000000" +PIB4.8: "3b023380" +PIB4.9: "00000000" +PIB4.10: "00000000" +10 +PIB1.0: "0a" +PIB2.0: "000a" +PIB3.0: "00000a" +PIB4.0: "0000000a" +PIB1.1: "64" +PIB2.1: "0064" +PIB3.1: "000064" +PIB4.1: "00000064" +PIB1.2: "00" +PIB2.2: "03e8" +PIB3.2: "0003e8" +PIB4.2: "000003e8" +PIB1.3: "00" +PIB2.3: "2710" +PIB3.3: "002710" +PIB4.3: "00002710" +PIB2.4: "0000" +PIB3.4: "0186a0" +PIB4.4: "000186a0" +PIB2.5: "0000" +PIB3.5: "0f4240" +PIB4.5: "000f4240" +PIB3.6: "989680" +PIB4.6: "00989680" +PIB3.7: "000000" +PIB4.7: "05f5e100" +PIB3.8: "000000" +PIB4.8: "3b9aca00" +PIB4.9: "00000000" +PIB4.10: "00000000" +81237 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "013d55" +PIB4.0: "00013d55" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "0c6552" +PIB4.1: "000c6552" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "7bf534" +PIB4.2: "007bf534" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "04d79408" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "306bc850" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +-9.1 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +-9.5 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +-9.9 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +-10 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +-81237 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +1.1 +PIB1.0: "01" +PIB2.0: "0001" +PIB3.0: "000001" +PIB4.0: "00000001" +PIB1.1: "0b" +PIB2.1: "000b" +PIB3.1: "00000b" +PIB4.1: "0000000b" +PIB1.2: "6e" +PIB2.2: "006e" +PIB3.2: "00006e" +PIB4.2: "0000006e" +PIB1.3: "00" +PIB2.3: "044c" +PIB3.3: "00044c" +PIB4.3: "0000044c" +PIB2.4: "2af8" +PIB3.4: "002af8" +PIB4.4: "00002af8" +PIB2.5: "0000" +PIB3.5: "01adb0" +PIB4.5: "0001adb0" +PIB3.6: "10c8e0" +PIB4.6: "0010c8e0" +PIB3.7: "a7d8c0" +PIB4.7: "00a7d8c0" +PIB3.8: "000000" +PIB4.8: "068e7780" +PIB4.9: "4190ab00" +PIB4.10: "00000000" +-1.1 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +1.5 +PIB1.0: "02" +PIB2.0: "0002" +PIB3.0: "000002" +PIB4.0: "00000002" +PIB1.1: "0f" +PIB2.1: "000f" +PIB3.1: "00000f" +PIB4.1: "0000000f" +PIB1.2: "96" +PIB2.2: "0096" +PIB3.2: "000096" +PIB4.2: "00000096" +PIB1.3: "00" +PIB2.3: "05dc" +PIB3.3: "0005dc" +PIB4.3: "000005dc" +PIB2.4: "3a98" +PIB3.4: "003a98" +PIB4.4: "00003a98" +PIB2.5: "0000" +PIB3.5: "0249f0" +PIB4.5: "000249f0" +PIB3.6: "16e360" +PIB4.6: "0016e360" +PIB3.7: "e4e1c0" +PIB4.7: "00e4e1c0" +PIB3.8: "000000" +PIB4.8: "08f0d180" +PIB4.9: "59682f00" +PIB4.10: "00000000" +-1.5 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" +1.9 +PIB1.0: "02" +PIB2.0: "0002" +PIB3.0: "000002" +PIB4.0: "00000002" +PIB1.1: "13" +PIB2.1: "0013" +PIB3.1: "000013" +PIB4.1: "00000013" +PIB1.2: "be" +PIB2.2: "00be" +PIB3.2: "0000be" +PIB4.2: "000000be" +PIB1.3: "00" +PIB2.3: "076c" +PIB3.3: "00076c" +PIB4.3: "0000076c" +PIB2.4: "4a38" +PIB3.4: "004a38" +PIB4.4: "00004a38" +PIB2.5: "0000" +PIB3.5: "02e630" +PIB4.5: "0002e630" +PIB3.6: "1cfde0" +PIB4.6: "001cfde0" +PIB3.7: "000000" +PIB4.7: "0121eac0" +PIB3.8: "000000" +PIB4.8: "0b532b80" +PIB4.9: "713fb300" +PIB4.10: "00000000" +-1.9 +PIB1.0: "00" +PIB2.0: "0000" +PIB3.0: "000000" +PIB4.0: "00000000" +PIB1.1: "00" +PIB2.1: "0000" +PIB3.1: "000000" +PIB4.1: "00000000" +PIB1.2: "00" +PIB2.2: "0000" +PIB3.2: "000000" +PIB4.2: "00000000" +PIB1.3: "00" +PIB2.3: "0000" +PIB3.3: "000000" +PIB4.3: "00000000" +PIB2.4: "0000" +PIB3.4: "000000" +PIB4.4: "00000000" +PIB2.5: "0000" +PIB3.5: "000000" +PIB4.5: "00000000" +PIB3.6: "000000" +PIB4.6: "00000000" +PIB3.7: "000000" +PIB4.7: "00000000" +PIB3.8: "000000" +PIB4.8: "00000000" +PIB4.9: "00000000" +PIB4.10: "00000000" diff --git a/rust/pspp/src/format/testdata/pibhex.txt b/rust/pspp/src/format/testdata/pibhex.txt new file mode 100644 index 0000000000..4c6a9ded68 --- /dev/null +++ b/rust/pspp/src/format/testdata/pibhex.txt @@ -0,0 +1,340 @@ +. +PIBHEX2: "b' '" +PIBHEX4: "b' '" +PIBHEX6: "b' '" +PIBHEX8: "b' '" +2 +PIBHEX2: "b'02'" +PIBHEX4: "b'0002'" +PIBHEX6: "b'000002'" +PIBHEX8: "b'00000002'" +11 +PIBHEX2: "b'0B'" +PIBHEX4: "b'000B'" +PIBHEX6: "b'00000B'" +PIBHEX8: "b'0000000B'" +123 +PIBHEX2: "b'7B'" +PIBHEX4: "b'007B'" +PIBHEX6: "b'00007B'" +PIBHEX8: "b'0000007B'" +1234 +PIBHEX2: "b'**'" +PIBHEX4: "b'04D2'" +PIBHEX6: "b'0004D2'" +PIBHEX8: "b'000004D2'" +913 +PIBHEX2: "b'**'" +PIBHEX4: "b'0391'" +PIBHEX6: "b'000391'" +PIBHEX8: "b'00000391'" +3.14159 +PIBHEX2: "b'03'" +PIBHEX4: "b'0003'" +PIBHEX6: "b'000003'" +PIBHEX8: "b'00000003'" +777 +PIBHEX2: "b'**'" +PIBHEX4: "b'0309'" +PIBHEX6: "b'000309'" +PIBHEX8: "b'00000309'" +82 +PIBHEX2: "b'52'" +PIBHEX4: "b'0052'" +PIBHEX6: "b'000052'" +PIBHEX8: "b'00000052'" +690 +PIBHEX2: "b'**'" +PIBHEX4: "b'02B2'" +PIBHEX6: "b'0002B2'" +PIBHEX8: "b'000002B2'" +-2 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" +-11 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" +-123 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" +-1234 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" +-913 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" +-3.14159 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" +-777 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" +-82 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" +-690 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" +-.1 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" +-.5 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" +-.9 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" +9999.1 +PIBHEX2: "b'**'" +PIBHEX4: "b'270F'" +PIBHEX6: "b'00270F'" +PIBHEX8: "b'0000270F'" +9999.5 +PIBHEX2: "b'**'" +PIBHEX4: "b'2710'" +PIBHEX6: "b'002710'" +PIBHEX8: "b'00002710'" +9999.9 +PIBHEX2: "b'**'" +PIBHEX4: "b'2710'" +PIBHEX6: "b'002710'" +PIBHEX8: "b'00002710'" +10000 +PIBHEX2: "b'**'" +PIBHEX4: "b'2710'" +PIBHEX6: "b'002710'" +PIBHEX8: "b'00002710'" +18231237 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'01162FC5'" +-9999.1 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" +-9999.5 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" +-9999.9 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" +-10000 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" +-8231237 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" +999.1 +PIBHEX2: "b'**'" +PIBHEX4: "b'03E7'" +PIBHEX6: "b'0003E7'" +PIBHEX8: "b'000003E7'" +999.5 +PIBHEX2: "b'**'" +PIBHEX4: "b'03E8'" +PIBHEX6: "b'0003E8'" +PIBHEX8: "b'000003E8'" +999.9 +PIBHEX2: "b'**'" +PIBHEX4: "b'03E8'" +PIBHEX6: "b'0003E8'" +PIBHEX8: "b'000003E8'" +1000 +PIBHEX2: "b'**'" +PIBHEX4: "b'03E8'" +PIBHEX6: "b'0003E8'" +PIBHEX8: "b'000003E8'" +8231237 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'7D9945'" +PIBHEX8: "b'007D9945'" +-999.1 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" +-999.5 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" +-999.9 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" +-1000 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" +-8231237 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" +99.1 +PIBHEX2: "b'63'" +PIBHEX4: "b'0063'" +PIBHEX6: "b'000063'" +PIBHEX8: "b'00000063'" +99.5 +PIBHEX2: "b'64'" +PIBHEX4: "b'0064'" +PIBHEX6: "b'000064'" +PIBHEX8: "b'00000064'" +99.9 +PIBHEX2: "b'64'" +PIBHEX4: "b'0064'" +PIBHEX6: "b'000064'" +PIBHEX8: "b'00000064'" +100 +PIBHEX2: "b'64'" +PIBHEX4: "b'0064'" +PIBHEX6: "b'000064'" +PIBHEX8: "b'00000064'" +821237 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'0C87F5'" +PIBHEX8: "b'000C87F5'" +-99.1 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" +-99.5 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" +-99.9 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" +-100 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" +-831237 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" +9.1 +PIBHEX2: "b'09'" +PIBHEX4: "b'0009'" +PIBHEX6: "b'000009'" +PIBHEX8: "b'00000009'" +9.5 +PIBHEX2: "b'0A'" +PIBHEX4: "b'000A'" +PIBHEX6: "b'00000A'" +PIBHEX8: "b'0000000A'" +9.9 +PIBHEX2: "b'0A'" +PIBHEX4: "b'000A'" +PIBHEX6: "b'00000A'" +PIBHEX8: "b'0000000A'" +10 +PIBHEX2: "b'0A'" +PIBHEX4: "b'000A'" +PIBHEX6: "b'00000A'" +PIBHEX8: "b'0000000A'" +81237 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'013D55'" +PIBHEX8: "b'00013D55'" +-9.1 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" +-9.5 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" +-9.9 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" +-10 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" +-81237 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" +1.1 +PIBHEX2: "b'01'" +PIBHEX4: "b'0001'" +PIBHEX6: "b'000001'" +PIBHEX8: "b'00000001'" +-1.1 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" +1.5 +PIBHEX2: "b'02'" +PIBHEX4: "b'0002'" +PIBHEX6: "b'000002'" +PIBHEX8: "b'00000002'" +-1.5 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" +1.9 +PIBHEX2: "b'02'" +PIBHEX4: "b'0002'" +PIBHEX6: "b'000002'" +PIBHEX8: "b'00000002'" +-1.9 +PIBHEX2: "b'**'" +PIBHEX4: "b'****'" +PIBHEX6: "b'******'" +PIBHEX8: "b'********'" diff --git a/rust/pspp/src/format/testdata/pk.txt b/rust/pspp/src/format/testdata/pk.txt new file mode 100644 index 0000000000..f521e81308 --- /dev/null +++ b/rust/pspp/src/format/testdata/pk.txt @@ -0,0 +1,748 @@ +. +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +2 +PK1.0: "02" +PK2.0: "0002" +PK3.0: "000002" +PK4.0: "00000002" +PK2.1: "0020" +PK3.1: "000020" +PK4.1: "00000020" +PK3.2: "000200" +PK4.2: "00000200" +PK4.3: "00002000" +11 +PK1.0: "11" +PK2.0: "0011" +PK3.0: "000011" +PK4.0: "00000011" +PK2.1: "0110" +PK3.1: "000110" +PK4.1: "00000110" +PK3.2: "001100" +PK4.2: "00001100" +PK4.3: "00011000" +123 +PK1.0: "00" +PK2.0: "0123" +PK3.0: "000123" +PK4.0: "00000123" +PK2.1: "1230" +PK3.1: "001230" +PK4.1: "00001230" +PK3.2: "012300" +PK4.2: "00012300" +PK4.3: "00123000" +1234 +PK1.0: "00" +PK2.0: "1234" +PK3.0: "001234" +PK4.0: "00001234" +PK2.1: "0000" +PK3.1: "012340" +PK4.1: "00012340" +PK3.2: "123400" +PK4.2: "00123400" +PK4.3: "01234000" +913 +PK1.0: "00" +PK2.0: "0913" +PK3.0: "000913" +PK4.0: "00000913" +PK2.1: "9130" +PK3.1: "009130" +PK4.1: "00009130" +PK3.2: "091300" +PK4.2: "00091300" +PK4.3: "00913000" +3.14159 +PK1.0: "03" +PK2.0: "0003" +PK3.0: "000003" +PK4.0: "00000003" +PK2.1: "0031" +PK3.1: "000031" +PK4.1: "00000031" +PK3.2: "000314" +PK4.2: "00000314" +PK4.3: "00003142" +777 +PK1.0: "00" +PK2.0: "0777" +PK3.0: "000777" +PK4.0: "00000777" +PK2.1: "7770" +PK3.1: "007770" +PK4.1: "00007770" +PK3.2: "077700" +PK4.2: "00077700" +PK4.3: "00777000" +82 +PK1.0: "82" +PK2.0: "0082" +PK3.0: "000082" +PK4.0: "00000082" +PK2.1: "0820" +PK3.1: "000820" +PK4.1: "00000820" +PK3.2: "008200" +PK4.2: "00008200" +PK4.3: "00082000" +690 +PK1.0: "00" +PK2.0: "0690" +PK3.0: "000690" +PK4.0: "00000690" +PK2.1: "6900" +PK3.1: "006900" +PK4.1: "00006900" +PK3.2: "069000" +PK4.2: "00069000" +PK4.3: "00690000" +-2 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +-11 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +-123 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +-1234 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +-913 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +-3.14159 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +-777 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +-82 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +-690 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +-.1 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +-.5 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +-.9 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +9999.1 +PK1.0: "00" +PK2.0: "9999" +PK3.0: "009999" +PK4.0: "00009999" +PK2.1: "0000" +PK3.1: "099991" +PK4.1: "00099991" +PK3.2: "999910" +PK4.2: "00999910" +PK4.3: "09999100" +9999.5 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "010000" +PK4.0: "00010000" +PK2.1: "0000" +PK3.1: "099995" +PK4.1: "00099995" +PK3.2: "999950" +PK4.2: "00999950" +PK4.3: "09999500" +9999.9 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "010000" +PK4.0: "00010000" +PK2.1: "0000" +PK3.1: "099999" +PK4.1: "00099999" +PK3.2: "999990" +PK4.2: "00999990" +PK4.3: "09999900" +10000 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "010000" +PK4.0: "00010000" +PK2.1: "0000" +PK3.1: "100000" +PK4.1: "00100000" +PK3.2: "000000" +PK4.2: "01000000" +PK4.3: "10000000" +18231237 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "18231237" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +-9999.1 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +-9999.5 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +-9999.9 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +-10000 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +-8231237 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +999.1 +PK1.0: "00" +PK2.0: "0999" +PK3.0: "000999" +PK4.0: "00000999" +PK2.1: "9991" +PK3.1: "009991" +PK4.1: "00009991" +PK3.2: "099910" +PK4.2: "00099910" +PK4.3: "00999100" +999.5 +PK1.0: "00" +PK2.0: "1000" +PK3.0: "001000" +PK4.0: "00001000" +PK2.1: "9995" +PK3.1: "009995" +PK4.1: "00009995" +PK3.2: "099950" +PK4.2: "00099950" +PK4.3: "00999500" +999.9 +PK1.0: "00" +PK2.0: "1000" +PK3.0: "001000" +PK4.0: "00001000" +PK2.1: "9999" +PK3.1: "009999" +PK4.1: "00009999" +PK3.2: "099990" +PK4.2: "00099990" +PK4.3: "00999900" +1000 +PK1.0: "00" +PK2.0: "1000" +PK3.0: "001000" +PK4.0: "00001000" +PK2.1: "0000" +PK3.1: "010000" +PK4.1: "00010000" +PK3.2: "100000" +PK4.2: "00100000" +PK4.3: "01000000" +8231237 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "08231237" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "82312370" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +-999.1 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +-999.5 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +-999.9 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +-1000 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +-8231237 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +99.1 +PK1.0: "99" +PK2.0: "0099" +PK3.0: "000099" +PK4.0: "00000099" +PK2.1: "0991" +PK3.1: "000991" +PK4.1: "00000991" +PK3.2: "009910" +PK4.2: "00009910" +PK4.3: "00099100" +99.5 +PK1.0: "00" +PK2.0: "0100" +PK3.0: "000100" +PK4.0: "00000100" +PK2.1: "0995" +PK3.1: "000995" +PK4.1: "00000995" +PK3.2: "009950" +PK4.2: "00009950" +PK4.3: "00099500" +99.9 +PK1.0: "00" +PK2.0: "0100" +PK3.0: "000100" +PK4.0: "00000100" +PK2.1: "0999" +PK3.1: "000999" +PK4.1: "00000999" +PK3.2: "009990" +PK4.2: "00009990" +PK4.3: "00099900" +100 +PK1.0: "00" +PK2.0: "0100" +PK3.0: "000100" +PK4.0: "00000100" +PK2.1: "1000" +PK3.1: "001000" +PK4.1: "00001000" +PK3.2: "010000" +PK4.2: "00010000" +PK4.3: "00100000" +821237 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "821237" +PK4.0: "00821237" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "08212370" +PK3.2: "000000" +PK4.2: "82123700" +PK4.3: "00000000" +-99.1 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +-99.5 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +-99.9 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +-100 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +-831237 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +9.1 +PK1.0: "09" +PK2.0: "0009" +PK3.0: "000009" +PK4.0: "00000009" +PK2.1: "0091" +PK3.1: "000091" +PK4.1: "00000091" +PK3.2: "000910" +PK4.2: "00000910" +PK4.3: "00009100" +9.5 +PK1.0: "10" +PK2.0: "0010" +PK3.0: "000010" +PK4.0: "00000010" +PK2.1: "0095" +PK3.1: "000095" +PK4.1: "00000095" +PK3.2: "000950" +PK4.2: "00000950" +PK4.3: "00009500" +9.9 +PK1.0: "10" +PK2.0: "0010" +PK3.0: "000010" +PK4.0: "00000010" +PK2.1: "0099" +PK3.1: "000099" +PK4.1: "00000099" +PK3.2: "000990" +PK4.2: "00000990" +PK4.3: "00009900" +10 +PK1.0: "10" +PK2.0: "0010" +PK3.0: "000010" +PK4.0: "00000010" +PK2.1: "0100" +PK3.1: "000100" +PK4.1: "00000100" +PK3.2: "001000" +PK4.2: "00001000" +PK4.3: "00010000" +81237 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "081237" +PK4.0: "00081237" +PK2.1: "0000" +PK3.1: "812370" +PK4.1: "00812370" +PK3.2: "000000" +PK4.2: "08123700" +PK4.3: "81237000" +-9.1 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +-9.5 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +-9.9 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +-10 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +-81237 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +1.1 +PK1.0: "01" +PK2.0: "0001" +PK3.0: "000001" +PK4.0: "00000001" +PK2.1: "0011" +PK3.1: "000011" +PK4.1: "00000011" +PK3.2: "000110" +PK4.2: "00000110" +PK4.3: "00001100" +-1.1 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +1.5 +PK1.0: "02" +PK2.0: "0002" +PK3.0: "000002" +PK4.0: "00000002" +PK2.1: "0015" +PK3.1: "000015" +PK4.1: "00000015" +PK3.2: "000150" +PK4.2: "00000150" +PK4.3: "00001500" +-1.5 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" +1.9 +PK1.0: "02" +PK2.0: "0002" +PK3.0: "000002" +PK4.0: "00000002" +PK2.1: "0019" +PK3.1: "000019" +PK4.1: "00000019" +PK3.2: "000190" +PK4.2: "00000190" +PK4.3: "00001900" +-1.9 +PK1.0: "00" +PK2.0: "0000" +PK3.0: "000000" +PK4.0: "00000000" +PK2.1: "0000" +PK3.1: "000000" +PK4.1: "00000000" +PK3.2: "000000" +PK4.2: "00000000" +PK4.3: "00000000" diff --git a/rust/pspp/src/format/testdata/split-binhex-out.expected.py b/rust/pspp/src/format/testdata/split-binhex-out.expected.py new file mode 100644 index 0000000000..c7d5e87060 --- /dev/null +++ b/rust/pspp/src/format/testdata/split-binhex-out.expected.py @@ -0,0 +1,107 @@ +#! /usr/bin/python3 + +import sys +import pathlib + +outputs = {} +for format in ["P", "PK", "IB", "PIB", "PIBHEX"]: + outputs[format] = open(format.lower() + '.txt', 'w') + +values = [ + ".", + "2", + "11", + "123", + "1234", + "913", + "3.14159", + "777", + "82", + "690", + "-2", + "-11", + "-123", + "-1234", + "-913", + "-3.14159", + "-777", + "-82", + "-690", + "-.1", + "-.5", + "-.9", + "9999.1", + "9999.5", + "9999.9", + "10000", + "18231237", + "-9999.1", + "-9999.5", + "-9999.9", + "-10000", + "-8231237", + "999.1", + "999.5", + "999.9", + "1000", + "8231237", + "-999.1", + "-999.5", + "-999.9", + "-1000", + "-8231237", + "99.1", + "99.5", + "99.9", + "100", + "821237", + "-99.1", + "-99.5", + "-99.9", + "-100", + "-831237", + "9.1", + "9.5", + "9.9", + "10", + "81237", + "-9.1", + "-9.5", + "-9.9", + "-10", + "-81237", + "1.1", + "-1.1", + "1.5", + "-1.5", + "1.9", + "-1.9", +] + +b = pathlib.Path('binhex-out.expected').read_bytes() +ofs = 0 +for value in values: + for f in outputs.values(): + f.write(f"{value}\n") + x = ofs + for d in range(4): + for w in range(d + 1, 5): + outputs["P"].write(f"P{w}.{d}: \"{b[x:x + w].hex()}\"\n") + x += w + for d in range(4): + for w in range(d + 1, 5): + outputs["PK"].write(f"PK{w}.{d}: \"{b[x:x + w].hex()}\"\n") + x += w + for d in range(11): + for w in range([1, 1, 1, 1, 2, 2, 3, 3, 3, 4, 4][d], 5): + outputs["IB"].write(f"IB{w}.{d}: \"{b[x:x + w].hex()}\"\n") + x += w + for d in range(11): + for w in range([1, 1, 1, 1, 2, 2, 3, 3, 3, 4, 4][d], 5): + outputs["PIB"].write(f"PIB{w}.{d}: \"{b[x:x + w].hex()}\"\n") + x += w + for w in [2,4,6,8]: + outputs["PIBHEX"].write(f"PIBHEX{w}: \"{b[x:x + w]}\"\n") + x += w + + ofs += 256 diff --git a/rust/pspp/split-num-out.expected.py b/rust/pspp/src/format/testdata/split-num-out.expected.py similarity index 100% rename from rust/pspp/split-num-out.expected.py rename to rust/pspp/src/format/testdata/split-num-out.expected.py diff --git a/rust/pspp/src/settings.rs b/rust/pspp/src/settings.rs index 01e7e8c540..ac41b22e64 100644 --- a/rust/pspp/src/settings.rs +++ b/rust/pspp/src/settings.rs @@ -5,7 +5,8 @@ use enum_map::EnumMap; use crate::{ endian::Endian, format::{Format, Settings as FormatSettings}, - message::Severity, output::pivot::Look, + message::Severity, + output::pivot::Look, }; /// Whether to show variable or value labels or the underlying value or variable @@ -40,9 +41,16 @@ impl Show { pub struct Settings { pub look: Arc, + /// Endianness for reading IB and PIB formats. pub input_integer_format: Endian, + + /// Endianness for reading RB and RBHEX formats. pub input_float_format: Endian, + + /// Endianness for writing IB and PIB formats. pub output_integer_format: Endian, + + /// Endianness for writing RB and RBHEX formats. pub output_float_format: Endian, /// `MDISPLAY`: how to display matrices in `MATRIX`...`END MATRIX`. -- 2.30.2