diff --git a/trinitry/src/tests.rs b/trinitry/src/tests.rs
new file mode 100644
index 0000000..4a65b94
--- /dev/null
+++ b/trinitry/src/tests.rs
@@ -0,0 +1,1365 @@
+// DO NOT EDIT
+// This file is automatically generated by the 'update.sh' file, with data from:
+// https://raw.githubusercontent.com/minimaxir/big-list-of-naughty-strings/master/blns.txt
+
+#[cfg(test)]
+mod test {
+ use crate::Trinitry;
+ #[test]
+ fn parse_0() {
+ let p = Trinitry::new(r##"undefined"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"undefined"##, &p.to_string());
+ }
+ #[test]
+ fn parse_1() {
+ let p = Trinitry::new(r##"undef"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"undef"##, &p.to_string());
+ }
+ #[test]
+ fn parse_2() {
+ let p = Trinitry::new(r##"null"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"null"##, &p.to_string());
+ }
+ #[test]
+ fn parse_3() {
+ let p = Trinitry::new(r##"NULL"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"NULL"##, &p.to_string());
+ }
+ #[test]
+ fn parse_4() {
+ let p = Trinitry::new(r##"(null)"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_5() {
+ let p = Trinitry::new(r##"nil"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"nil"##, &p.to_string());
+ }
+ #[test]
+ fn parse_6() {
+ let p = Trinitry::new(r##"NIL"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"NIL"##, &p.to_string());
+ }
+ #[test]
+ fn parse_7() {
+ let p = Trinitry::new(r##"true"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"true"##, &p.to_string());
+ }
+ #[test]
+ fn parse_8() {
+ let p = Trinitry::new(r##"True"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"True"##, &p.to_string());
+ }
+ #[test]
+ fn parse_9() {
+ let p = Trinitry::new(r##"TRUE"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"TRUE"##, &p.to_string());
+ }
+ #[test]
+ fn parse_10() {
+ let p = Trinitry::new(r##"FALSE"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"FALSE"##, &p.to_string());
+ }
+ #[test]
+ fn parse_11() {
+ let p = Trinitry::new(r##"None"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"None"##, &p.to_string());
+ }
+ #[test]
+ fn parse_12() {
+ let p = Trinitry::new(r##"then"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"then"##, &p.to_string());
+ }
+ #[test]
+ fn parse_13() {
+ let p = Trinitry::new(r##"\"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_14() {
+ let p = Trinitry::new(r##"\\"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_15() {
+ let p = Trinitry::new(r##"0"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"0"##, &p.to_string());
+ }
+ #[test]
+ fn parse_16() {
+ let p = Trinitry::new(r##"1"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"1"##, &p.to_string());
+ }
+ #[test]
+ fn parse_17() {
+ let p = Trinitry::new(r##"1.00"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"1.00"##, &p.to_string());
+ }
+ #[test]
+ fn parse_18() {
+ let p = Trinitry::new(r##"$1.00"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_19() {
+ let p = Trinitry::new(r##"1/2"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_20() {
+ let p = Trinitry::new(r##"1E2"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"1E2"##, &p.to_string());
+ }
+ #[test]
+ fn parse_21() {
+ let p = Trinitry::new(r##"1E02"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"1E02"##, &p.to_string());
+ }
+ #[test]
+ fn parse_22() {
+ let p = Trinitry::new(r##"1E+02"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_23() {
+ let p = Trinitry::new(r##"-1"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"-1"##, &p.to_string());
+ }
+ #[test]
+ fn parse_24() {
+ let p = Trinitry::new(r##"-1.00"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"-1.00"##, &p.to_string());
+ }
+ #[test]
+ fn parse_25() {
+ let p = Trinitry::new(r##"-$1.00"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_26() {
+ let p = Trinitry::new(r##"-1/2"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_27() {
+ let p = Trinitry::new(r##"-1E2"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"-1E2"##, &p.to_string());
+ }
+ #[test]
+ fn parse_28() {
+ let p = Trinitry::new(r##"-1E02"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"-1E02"##, &p.to_string());
+ }
+ #[test]
+ fn parse_29() {
+ let p = Trinitry::new(r##"-1E+02"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_30() {
+ let p = Trinitry::new(r##"1/0"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_31() {
+ let p = Trinitry::new(r##"0/0"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_32() {
+ let p = Trinitry::new(r##"-2147483648/-1"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_33() {
+ let p = Trinitry::new(r##"-9223372036854775808/-1"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_34() {
+ let p = Trinitry::new(r##"-0"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"-0"##, &p.to_string());
+ }
+ #[test]
+ fn parse_35() {
+ let p = Trinitry::new(r##"-0.0"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"-0.0"##, &p.to_string());
+ }
+ #[test]
+ fn parse_36() {
+ let p = Trinitry::new(r##"+0"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_37() {
+ let p = Trinitry::new(r##"+0.0"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_38() {
+ let p = Trinitry::new(r##"0.00"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"0.00"##, &p.to_string());
+ }
+ #[test]
+ fn parse_39() {
+ let p = Trinitry::new(r##"0..0"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"0..0"##, &p.to_string());
+ }
+ #[test]
+ fn parse_40() {
+ let p = Trinitry::new(r##"."##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"."##, &p.to_string());
+ }
+ #[test]
+ fn parse_41() {
+ let p = Trinitry::new(r##"0.0.0"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"0.0.0"##, &p.to_string());
+ }
+ #[test]
+ fn parse_42() {
+ let p = Trinitry::new(r##"0,00"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_43() {
+ let p = Trinitry::new(r##"0,,0"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_44() {
+ let p = Trinitry::new(r##","##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_45() {
+ let p = Trinitry::new(r##"0,0,0"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_46() {
+ let p = Trinitry::new(r##"0.0/0"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_47() {
+ let p = Trinitry::new(r##"1.0/0.0"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_48() {
+ let p = Trinitry::new(r##"0.0/0.0"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_49() {
+ let p = Trinitry::new(r##"1,0/0,0"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_50() {
+ let p = Trinitry::new(r##"0,0/0,0"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_51() {
+ let p = Trinitry::new(r##"--1"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"--1"##, &p.to_string());
+ }
+ #[test]
+ fn parse_52() {
+ let p = Trinitry::new(r##"-"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"-"##, &p.to_string());
+ }
+ #[test]
+ fn parse_53() {
+ let p = Trinitry::new(r##"-."##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"-."##, &p.to_string());
+ }
+ #[test]
+ fn parse_54() {
+ let p = Trinitry::new(r##"-,"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_55() {
+ let p = Trinitry::new(r##"999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999"##, &p.to_string());
+ }
+ #[test]
+ fn parse_56() {
+ let p = Trinitry::new(r##"NaN"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"NaN"##, &p.to_string());
+ }
+ #[test]
+ fn parse_57() {
+ let p = Trinitry::new(r##"Infinity"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"Infinity"##, &p.to_string());
+ }
+ #[test]
+ fn parse_58() {
+ let p = Trinitry::new(r##"-Infinity"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"-Infinity"##, &p.to_string());
+ }
+ #[test]
+ fn parse_59() {
+ let p = Trinitry::new(r##"INF"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"INF"##, &p.to_string());
+ }
+ #[test]
+ fn parse_60() {
+ let p = Trinitry::new(r##"1#INF"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_61() {
+ let p = Trinitry::new(r##"-1#IND"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_62() {
+ let p = Trinitry::new(r##"1#QNAN"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_63() {
+ let p = Trinitry::new(r##"1#SNAN"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_64() {
+ let p = Trinitry::new(r##"1#IND"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_65() {
+ let p = Trinitry::new(r##"0x0"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"0x0"##, &p.to_string());
+ }
+ #[test]
+ fn parse_66() {
+ let p = Trinitry::new(r##"0xffffffff"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"0xffffffff"##, &p.to_string());
+ }
+ #[test]
+ fn parse_67() {
+ let p = Trinitry::new(r##"0xffffffffffffffff"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"0xffffffffffffffff"##, &p.to_string());
+ }
+ #[test]
+ fn parse_68() {
+ let p = Trinitry::new(r##"0xabad1dea"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"0xabad1dea"##, &p.to_string());
+ }
+ #[test]
+ fn parse_69() {
+ let p = Trinitry::new(r##"123456789012345678901234567890123456789"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"123456789012345678901234567890123456789"##, &p.to_string());
+ }
+ #[test]
+ fn parse_70() {
+ let p = Trinitry::new(r##"1,000.00"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_71() {
+ let p = Trinitry::new(r##"1 000.00"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"1 000.00"##, &p.to_string());
+ }
+ #[test]
+ fn parse_72() {
+ let p = Trinitry::new(r##"1'000.00"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_73() {
+ let p = Trinitry::new(r##"1,000,000.00"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_74() {
+ let p = Trinitry::new(r##"1 000 000.00"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"1 000 000.00"##, &p.to_string());
+ }
+ #[test]
+ fn parse_75() {
+ let p = Trinitry::new(r##"1'000'000.00"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_76() {
+ let p = Trinitry::new(r##"1.000,00"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_77() {
+ let p = Trinitry::new(r##"1 000,00"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"1 000,00"##, &p.to_string());
+ }
+ #[test]
+ fn parse_78() {
+ let p = Trinitry::new(r##"1'000,00"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_79() {
+ let p = Trinitry::new(r##"1.000.000,00"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_80() {
+ let p = Trinitry::new(r##"1 000 000,00"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"1 000 000,00"##, &p.to_string());
+ }
+ #[test]
+ fn parse_81() {
+ let p = Trinitry::new(r##"1'000'000,00"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_82() {
+ let p = Trinitry::new(r##"01000"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"01000"##, &p.to_string());
+ }
+ #[test]
+ fn parse_83() {
+ let p = Trinitry::new(r##"08"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"08"##, &p.to_string());
+ }
+ #[test]
+ fn parse_84() {
+ let p = Trinitry::new(r##"09"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"09"##, &p.to_string());
+ }
+ #[test]
+ fn parse_85() {
+ let p = Trinitry::new(r##"2.2250738585072011e-308"##).unwrap_or_else(|e| {
+ panic!("{}", e);
+ });
+ assert_eq!(r##"2.2250738585072011e-308"##, &p.to_string());
+ }
+ #[test]
+ fn parse_86() {
+ let p = Trinitry::new(r##",./;'[]\-="##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_87() {
+ let p = Trinitry::new(r##"<>?:"{}|_+"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_88() {
+ let p = Trinitry::new(r##"!@#$%^&*()`~"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_89() {
+ let p = Trinitry::new(r##""##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_90() {
+ let p = Trinitry::new(r##""##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_91() {
+ let p = Trinitry::new(r##""##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_92() {
+ let p = Trinitry::new(r##""##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_93() {
+ let p = Trinitry::new(r##""##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_94() {
+ let p = Trinitry::new(r##""##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_95() {
+ let p = Trinitry::new(r##""##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_96() {
+ let p = Trinitry::new(r##""##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_97() {
+ let p = Trinitry::new(r##""##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_98() {
+ let p = Trinitry::new(r##""##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_99() {
+ let p = Trinitry::new(r##""##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_100() {
+ let p = Trinitry::new(r##""##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_101() {
+ let p = Trinitry::new(r##""##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_102() {
+ let p = Trinitry::new(r##"`"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_103() {
+ let p = Trinitry::new(r##""##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_104() {
+ let p = Trinitry::new(r##""##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_105() {
+ let p = Trinitry::new(r##""##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_106() {
+ let p = Trinitry::new(r##""##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_107() {
+ let p = Trinitry::new(r##""##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_108() {
+ let p = Trinitry::new(r##""##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_109() {
+ let p = Trinitry::new(r##""##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_110() {
+ let p = Trinitry::new(r##"'"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_111() {
+ let p = Trinitry::new(r##"""##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_112() {
+ let p = Trinitry::new(r##"''"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_113() {
+ let p = Trinitry::new(r##""""##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_114() {
+ let p = Trinitry::new(r##"'"'"##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_115() {
+ let p = Trinitry::new(r##""''''"'""##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_116() {
+ let p = Trinitry::new(r##""'"'"''''""##);
+ assert!(p.is_err());
+ }
+ #[test]
+ fn parse_117() {
+ let p = Trinitry::new(r##"