Merge pull request #6 from antmicro/improving-sort-tags

Added delay_constant to sort-tags.xsl
diff --git a/tests/convert_and_merge_composable_tests/tag-sorting.golden.xml b/tests/convert_and_merge_composable_tests/tag-sorting.golden.xml
new file mode 100644
index 0000000..171f0c2
--- /dev/null
+++ b/tests/convert_and_merge_composable_tests/tag-sorting.golden.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<pb_type blif_model=".subckt blifmodel" name="test">
+  <input name="a" num_pins="2"/>
+  <input name="b" num_pins="2"/>
+  <input name="m" num_pins="1"/>
+  <output name="aout" num_pins="4"/>
+  <output name="bout" num_pins="4"/>
+  <delay_constant in_port="test.a" max="30e-12" out_port="test.aout"/>
+  <delay_constant in_port="test.b" max="30e-12" out_port="test.aout"/>
+  <delay_constant in_port="test.m" max="10e-12" out_port="test.aout"/>
+  <delay_constant in_port="test.a" max="30e-12" out_port="test.bout"/>
+  <delay_constant in_port="test.b" max="30e-12" out_port="test.bout"/>
+</pb_type>
diff --git a/tests/convert_and_merge_composable_tests/tag-sorting.xml b/tests/convert_and_merge_composable_tests/tag-sorting.xml
new file mode 100644
index 0000000..57d8aca
--- /dev/null
+++ b/tests/convert_and_merge_composable_tests/tag-sorting.xml
@@ -0,0 +1,13 @@
+<?xml version='1.0' encoding='utf-8'?>
+<pb_type blif_model=".subckt blifmodel" name="test">
+  <input name="b" num_pins="2"/>
+  <input name="m" num_pins="1"/>
+  <input name="a" num_pins="2"/>
+  <output name="bout" num_pins="4"/>
+  <output name="aout" num_pins="4"/>
+  <delay_constant in_port="b" max="30e-12" out_port="bout"/>
+  <delay_constant in_port="b" max="30e-12" out_port="aout"/>
+  <delay_constant in_port="a" max="30e-12" out_port="aout"/>
+  <delay_constant in_port="a" max="30e-12" out_port="bout"/>
+  <delay_constant in_port="m" max="10e-12" out_port="aout"/>
+</pb_type>
diff --git a/tox.ini b/tox.ini
index 7fcb0fc..ea11e92 100644
--- a/tox.ini
+++ b/tox.ini
@@ -22,7 +22,7 @@
     # use `python setup.py check -m -r -s` instead.
     python setup.py check -m -s
     flake8 .
-    pytest
+    pytest -vvvv
 [flake8]
 exclude = .tox,*.egg,build,data
 select = E,W,F
diff --git a/vtr_xml_utils/resources/sort-tags.xsl b/vtr_xml_utils/resources/sort-tags.xsl
index 3507bd8..76eb5a3 100644
--- a/vtr_xml_utils/resources/sort-tags.xsl
+++ b/vtr_xml_utils/resources/sort-tags.xsl
@@ -17,10 +17,13 @@
    <xsl:apply-templates select="output">
     <xsl:sort select="@name" order="ascending"/>
    </xsl:apply-templates>
+   <xsl:apply-templates select="delay_constant">
+    <xsl:sort select="concat(@out_port,@in_port)" order="ascending"/>
+   </xsl:apply-templates>
    <xsl:apply-templates select="pb_type">
     <xsl:sort select="@name" order="ascending"/>
    </xsl:apply-templates>
-   <xsl:apply-templates select="*[not(self::clock or self::input or self::output or self::pb_type)]"/>
+   <xsl:apply-templates select="*[not(self::clock or self::input or self::output or self::pb_type or self::delay_constant)]"/>
   </xsl:copy>
  </xsl:template>
  <!-- Sort <interconnect><XXX> tags by output - direct first then muxes, finally input -->