This is an automated email from the ASF dual-hosted git repository.

mbeckerle pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-daffodil.git


The following commit(s) were added to refs/heads/master by this push:
     new c79df54  Tests for textNumberPattern and padding unexpected behaviors.
c79df54 is described below

commit c79df5405d4ec5cc6bc994d764f8097fb2e2e746
Author: Michael Beckerle <[email protected]>
AuthorDate: Thu Jul 30 13:20:56 2020 -0400

    Tests for textNumberPattern and padding unexpected behaviors.
    
    Came up in DFDL workgroup email discussions.
    
    The behavior was determined to be working as designed, and conforming to 
the spec.
    
    This is just adding the tests for good measure here.
    
    Ticket was closed as "not a bug".
    
    DAFFODIL-2378
---
 .../daffodil/usertests/UserSubmittedTests.tdml     | 51 ++++++++++++++++++++++
 .../usertests/TestUserSubmittedTests.scala         |  6 +++
 2 files changed, 57 insertions(+)

diff --git 
a/daffodil-test/src/test/resources/org/apache/daffodil/usertests/UserSubmittedTests.tdml
 
b/daffodil-test/src/test/resources/org/apache/daffodil/usertests/UserSubmittedTests.tdml
index 54608ea..9e92844 100644
--- 
a/daffodil-test/src/test/resources/org/apache/daffodil/usertests/UserSubmittedTests.tdml
+++ 
b/daffodil-test/src/test/resources/org/apache/daffodil/usertests/UserSubmittedTests.tdml
@@ -132,4 +132,55 @@
     </tdml:infoset>
   </tdml:parserTestCase>
 
+       <tdml:defineSchema name="dfdlwg1" elementFormDefault="unqualified">
+               <xs:include 
schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd"/>
+
+               <dfdl:format ref="ex:GeneralFormat" lengthKind="delimited"/>
+
+               <!-- wrong way to get zero-extended 9-digit numbers -->
+               <xs:element name="r" dfdl:textNumberPattern="#0" 
type="ex:numeric9_custom1"/>
+
+               <!-- right way to get zero-extended 9-digit numbers -->
+               <xs:element name="r2" dfdl:textNumberPattern="#00000000" 
type="ex:numeric9_custom1"/>
+
+               <xs:simpleType name="numeric9_custom1"
+                 dfdl:textOutputMinLength="9"
+                       dfdl:textPadKind="padChar"
+                       dfdl:textTrimKind="padChar"
+                       dfdl:textNumberPadCharacter="0">
+                       <xs:restriction base="xsd:decimal">
+                               <xs:totalDigits value="9"/><!-- note 
totalDigits for an integer does NOT include any sign. -->
+                       </xs:restriction>
+               </xs:simpleType>
+
+       </tdml:defineSchema>
+
+       <tdml:unparserTestCase name="textNumberPattern1" model="dfdlwg1"
+         description="illustrates that text number padding on left
+         (right justified numbers) does not go between the sign and the
+         value digits but before the entire number representation. This is
+    the right behavior per the DFDL spec.">
+               <tdml:document><![CDATA[0000000-1]]></tdml:document>
+               <tdml:infoset><tdml:dfdlInfoset>
+                       <ex:r>-1</ex:r>
+               </tdml:dfdlInfoset></tdml:infoset>
+       </tdml:unparserTestCase>
+
+       <tdml:unparserTestCase name="textNumberPattern2" model="dfdlwg1"
+       description="illustrates the proper technique for getting the sign to 
appear
+       before the digits of a right-justified number. Negative sign case.">
+               <tdml:document><![CDATA[-00000001]]></tdml:document>
+               <tdml:infoset><tdml:dfdlInfoset>
+                       <ex:r2>-1</ex:r2>
+               </tdml:dfdlInfoset></tdml:infoset>
+       </tdml:unparserTestCase>
+
+       <tdml:unparserTestCase name="textNumberPattern3" model="dfdlwg1"
+         description="illustrates the proper technique for getting the sign to 
appear
+       before the digits of a right-justified number. Positive (without sign) 
case.">
+               <tdml:document><![CDATA[000000001]]></tdml:document>
+               <tdml:infoset><tdml:dfdlInfoset>
+                       <ex:r2>1</ex:r2>
+               </tdml:dfdlInfoset></tdml:infoset>
+       </tdml:unparserTestCase>
 </tdml:testSuite>
diff --git 
a/daffodil-test/src/test/scala/org/apache/daffodil/usertests/TestUserSubmittedTests.scala
 
b/daffodil-test/src/test/scala/org/apache/daffodil/usertests/TestUserSubmittedTests.scala
index 2da0add..dd2a3e7 100644
--- 
a/daffodil-test/src/test/scala/org/apache/daffodil/usertests/TestUserSubmittedTests.scala
+++ 
b/daffodil-test/src/test/scala/org/apache/daffodil/usertests/TestUserSubmittedTests.scala
@@ -42,6 +42,12 @@ class TestUserSubmittedTests {
   }
   @Test def test_DFDL_2262(): Unit = { runner.runOneTest("test_DFDL_2262") }
 
+  // DAFFODIL-2378 (decided as not a bug. These tests characterize that 
behavior.)
+  @Test def testTextNumberPattern1(): Unit = { 
runner.runOneTest("textNumberPattern1") }
+  @Test def testTextNumberPattern2(): Unit = { 
runner.runOneTest("textNumberPattern2") }
+  @Test def testTextNumberPattern3(): Unit = { 
runner.runOneTest("textNumberPattern3") }
+
+
   @Test def test_nameDOB_test2_pass(): Unit = { 
runner2.runOneTest("nameDOB_test2_pass") }
   @Test def test_nameDOB_test2_fail(): Unit = { 
runner2.runOneTest("nameDOB_test2_fail") }
 

Reply via email to