From 76d0eda1f8b4c0838b468bc3278c7de4f31017f9 Mon Sep 17 00:00:00 2001 From: Martin Larralde <martin.larralde@embl.de> Date: Thu, 29 Aug 2024 17:11:27 +0200 Subject: [PATCH] Fix issue with parsing of floating-point numbers in JASPAR parser --- lightmotif-io/src/transfac/parse.rs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/lightmotif-io/src/transfac/parse.rs b/lightmotif-io/src/transfac/parse.rs index f63b776..afb07dd 100644 --- a/lightmotif-io/src/transfac/parse.rs +++ b/lightmotif-io/src/transfac/parse.rs @@ -58,10 +58,7 @@ pub fn parse_alphabet<S: Symbol>(input: &str) -> IResult<&str, Vec<S>> { } pub fn parse_element(input: &str) -> IResult<&str, f32> { - nom::branch::alt(( - nom::combinator::map_res(nom::character::complete::digit1, f32::from_str), - nom::combinator::map(nom::number::complete::float, |x| x), - ))(input) + nom::number::complete::float(input) } pub fn parse_row(input: &str, k: usize) -> IResult<&str, Vec<f32>> { @@ -331,6 +328,14 @@ mod test { assert_eq!(res.1, vec![0., 0., 2., 0.]); } + #[test] + fn test_parse_count_float() { + let line = "01 3566.0 119.0 342.0 225.0\n"; + let res = super::parse_row(line, 4).unwrap(); + assert_eq!(res.0, ""); + assert_eq!(res.1, vec![3566., 119., 342., 225.]); + } + #[test] fn test_parse_prodoric() { let text = concat!( -- GitLab