diff --git a/src/main/java/io/datanapis/xbrl/utils/IxtTransform.java b/src/main/java/io/datanapis/xbrl/utils/IxtTransform.java index cd45f60..873dde6 100644 --- a/src/main/java/io/datanapis/xbrl/utils/IxtTransform.java +++ b/src/main/java/io/datanapis/xbrl/utils/IxtTransform.java @@ -48,7 +48,7 @@ public class IxtTransform { Pattern.compile("^[ \\t\\n\\r]*([-]|\u002D|\u058A|\u05BE|\u2010|\u2011|\u2012|\u2013|\u2014|\u2015|\uFE58|\uFE63|\uFF0D)[ \\t\\n\\r]*$"); private static final Pattern NUM_DOT_DECIMAL = - Pattern.compile("^[ \\t\\n\\r]*[0-9]{1,3}([, \u00A0]?[0-9]{3})*(\\.[0-9]+)?[ \\t\\n\\r]*$"); + Pattern.compile("^[ \\t\\n\\r]*[0-9]{1,3}([, \u00A0]?[0-9]{3})*(\\.[0-9]+)?[ \\t\\n\\r]*$|^[ \\t\\n\\r]*(\\.[0-9]+)[ \\t\\n\\r]*$"); private static final Pattern NUM_DOT_DECIMAL_IN = Pattern.compile("^(([0-9]{1,2}[, \u00A0])?([0-9]{2}[, \u00A0])*[0-9]{3})([.][0-9]+)?$|^([0-9]+)([.][0-9]+)?$"); diff --git a/src/test/java/io/datanapis/test/IxtTransformTest.java b/src/test/java/io/datanapis/test/IxtTransformTest.java index 1875238..3fb7fd4 100644 --- a/src/test/java/io/datanapis/test/IxtTransformTest.java +++ b/src/test/java/io/datanapis/test/IxtTransformTest.java @@ -16,13 +16,41 @@ package io.datanapis.test; import io.datanapis.xbrl.utils.IxtTransform; +import org.junit.Assert; import org.junit.Test; public class IxtTransformTest { + public static final String NUMBER_WITH_SPACE_AND_DECIMALS = "1 123.23"; + public static final String NUMBER_WITH_COMMA_AND_DECIMALS = "1,123.23"; + public static final String NUMBER_AND_DECIMALS = "1,123.23"; + public static final String DECIMALS_ONLY = ".23"; + public static final String NUM_DOT_DECIMAL_FORMAT = "num-dot-decimal"; + @Test public void testTransform() { String value = IxtTransform.parseDate("October 2026", "datemonthyearen"); System.out.println(value); } + + @Test + public void testTransformNumberWithDecimals() { + final String expectedNumberAndDecimal = "1123.23"; + Assert.assertEquals(expectedNumberAndDecimal, + IxtTransform.transformWithFormat(NUM_DOT_DECIMAL_FORMAT, NUMBER_WITH_SPACE_AND_DECIMALS)); + + Assert.assertEquals(expectedNumberAndDecimal, + IxtTransform.transformWithFormat(NUM_DOT_DECIMAL_FORMAT, NUMBER_WITH_COMMA_AND_DECIMALS)); + + Assert.assertEquals(expectedNumberAndDecimal, + IxtTransform.transformWithFormat(NUM_DOT_DECIMAL_FORMAT, NUMBER_AND_DECIMALS)); + + } + + @Test + public void testTransformDecimalsOnly() { + final String expectedNumberAndDecimal = ".23"; + Assert.assertEquals(expectedNumberAndDecimal, + IxtTransform.transformWithFormat(NUM_DOT_DECIMAL_FORMAT, DECIMALS_ONLY)); + } }