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