// file: crates/ksp-raw-transaction-lib/unit_tests/signature.rs // version: 1 #[test] fn pre_002_signature_parser_accepts_exact_sixty_four_zero_bytes() { let text = "1".repeat(crate::MIN_RAW_TRANSACTION_SIGNATURE_TEXT_BYTES); let signature = crate::parse_raw_transaction_signature(text.as_str()); assert!(signature.is_ok()); if let std::result::Result::Ok(signature) = signature { assert_eq!(signature.as_bytes(), &[0_u8; 64]); } return; } #[test] fn pre_002_signature_parser_rejects_text_bounds_invalid_base58_and_noncanonical_lengths() { for text in [ "1".repeat(crate::MIN_RAW_TRANSACTION_SIGNATURE_TEXT_BYTES - 1), "1".repeat(crate::MAX_RAW_TRANSACTION_SIGNATURE_TEXT_BYTES + 1), format!("{}0", "1".repeat(crate::MIN_RAW_TRANSACTION_SIGNATURE_TEXT_BYTES - 1)), "1".repeat(65), "z".repeat(crate::MAX_RAW_TRANSACTION_SIGNATURE_TEXT_BYTES), ] { let result = crate::parse_raw_transaction_signature(text.as_str()); assert!(result.is_err()); if let std::result::Result::Err(error) = result { assert_eq!(error.code(), crate::ERROR_CODE_RAW_TRANSACTION_SIGNATURE_INVALID); let debug = std::format!("{error:?}"); assert!(!debug.contains(text.as_str())); } } return; }