Permit tests to specify the refdata filename
[alexxy/gromacs.git] / src / testutils / common-referencedata.xsl
1 <?xml version="1.0"?>
2
3 <!--
4 This file is currently duplicated to each directory containing reference data
5 XML files. This is to make it compatible with more browsers.
6 To keep these files in sync, please only modify the version in
7   src/testutils/
8 and use the copy_xsl.sh script to copy it to relevant locations.
9 -->
10 <xsl:stylesheet version="1.0"
11     xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
12
13 <xsl:template match="/">
14     <html><body>
15         <xsl:apply-templates/>
16     </body></html>
17 </xsl:template>
18
19 <xsl:template match="/ReferenceData">
20     <h1>Test Reference Data</h1>
21     <xsl:apply-templates/>
22 </xsl:template>
23
24 <xsl:template match="Vector">
25     (<xsl:value-of select="*[@Name='X']"/>;
26      <xsl:value-of select="*[@Name='Y']"/>;
27      <xsl:value-of select="*[@Name='Z']"/>)
28 </xsl:template>
29
30 <xsl:template name="SequenceAsHorizontalTable">
31     <xsl:param name="root" select="."/>
32     <table border="1">
33         <tr><th>Count</th><th>Items</th></tr>
34         <tr>
35             <td><xsl:value-of select="$root/Int[@Name='Length']"/></td>
36             <td>
37                 <xsl:call-template name="SequenceAsCSV">
38                     <xsl:with-param name="root" select="$root"/>
39                 </xsl:call-template>
40             </td>
41         </tr>
42     </table>
43 </xsl:template>
44
45 <xsl:template name="SequenceAsCSV">
46     <xsl:param name="root" select="."/>
47     <xsl:for-each select="$root/*">
48         <xsl:if test="not(.[@Name])">
49             <xsl:apply-templates select="."/>
50             <xsl:if test="position() &lt; last()">, </xsl:if>
51         </xsl:if>
52     </xsl:for-each>
53 </xsl:template>
54
55 <xsl:template name="Bool">
56     <xsl:value-of select="."/>
57 </xsl:template>
58
59 <xsl:template name="String">
60     <xsl:value-of select="."/>
61 </xsl:template>
62
63 <xsl:template name="Int">
64     <xsl:value-of select="."/>
65 </xsl:template>
66
67 <xsl:template name="Real">
68     <xsl:value-of select="."/>
69 </xsl:template>
70
71 <xsl:template match="OutputFiles">
72     <xsl:if test="*/*">
73         <h2>Output Files</h2>
74         <xsl:apply-templates />
75     </xsl:if>
76 </xsl:template>
77
78 <xsl:template match="OutputFiles/File">
79     <xsl:if test="*">
80         <h3><xsl:value-of select="@Name"/></h3>
81         <xsl:apply-templates />
82     </xsl:if>
83 </xsl:template>
84
85 <xsl:template match="OutputFiles/File/String[@Name='Contents']">
86     <pre>
87         <xsl:value-of select="substring(.,2)"/>
88     </pre>
89 </xsl:template>
90
91 <xsl:template match="OutputFiles/File/XvgLegend/String[@Name='XvgLegend']">
92     <pre>
93         <xsl:value-of select="substring(.,2)"/>
94     </pre>
95 </xsl:template>
96
97 <xsl:template match="OutputFiles/File/XvgData">
98     <xsl:choose>
99         <xsl:when test="*">
100             <table>
101                 <xsl:apply-templates />
102             </table>
103         </xsl:when>
104         <xsl:otherwise>Data omitted</xsl:otherwise>
105     </xsl:choose>
106 </xsl:template>
107
108 <xsl:template match="OutputFiles/File/XvgData/Sequence">
109     <tr>
110         <xsl:apply-templates select="Real"/>
111     </tr>
112 </xsl:template>
113
114 <xsl:template match="OutputFiles/File/XvgData/Sequence/Real">
115     <td><xsl:value-of select="."/></td>
116 </xsl:template>
117
118 <xsl:template match="InteractiveSession">
119     <pre>
120         <xsl:for-each select="*">
121             <xsl:choose>
122                 <xsl:when test="starts-with(@Name, 'Output')">
123                     <xsl:value-of select="substring(.,2)"/>
124                 </xsl:when>
125                 <xsl:when test="string-length(.)=1">
126                     <xsl:text>&#x25ba;</xsl:text>
127                     <xsl:text>&#xb6;</xsl:text>
128                 </xsl:when>
129                 <xsl:when test="contains(substring(.,2), '&#10;')">
130                     <xsl:text>&#x25ba;</xsl:text>
131                     <xsl:value-of select="translate(substring(.,2), '&#10;', '&#x23ce;')"/>
132                     <xsl:text>&#10;</xsl:text>
133                 </xsl:when>
134                 <xsl:otherwise>
135                     <xsl:text>&#x25ba;</xsl:text>
136                     <xsl:value-of select="substring(.,2)"/>
137                     <xsl:text>&#xb6;</xsl:text>
138                 </xsl:otherwise>
139             </xsl:choose>
140         </xsl:for-each>
141         <xsl:text>[EOF]</xsl:text>
142     </pre>
143 </xsl:template>
144
145 </xsl:stylesheet>