tame/test/symtable/symbols.xspec

152 lines
4.6 KiB
XML

<?xml version="1.0"?>
<!--
Tests semantic analysis for symbol generation
Copyright (C) 2014-2023 Ryan Specialty, LLC.
This file is part of TAME.
TAME is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see
<http://www.gnu.org/licenses/>.
-->
<description xmlns="http://www.jenitennison.com/xslt/xspec"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:x="http://www.jenitennison.com/xslt/xspec"
xmlns:lv="http://www.lovullo.com/rater"
xmlns:preproc="http://www.lovullo.com/rater/preproc"
xmlns:foo="http://www.lovullo.com/_junk"
stylesheet="../../src/symtable/symbols.xsl">
<scenario label="lv:param">
<context mode="preproc:symtable">
<lv:param name="foo_bar"
type="footype"
desc="Vector param"
set="vector" />
<lv:param name="tex_param"
type="tex"
desc="Matrix param with TeX"
set="matrix"
sym="\tex" />
<lv:param name="scalar_param"
type="bar"
desc="Scalar param (implicit)" />
<lv:param name="scalar_param_explicit"
type="bar"
set="scalar"
desc="Scalar param (explicit)" />
<lv:param name="unknown_dim"
type="wtf"
set="calabi-yau"
desc="Unknown dimension" />
</context>
<expect label="derives symbol data from param">
<preproc:sym type="param"
name="foo_bar"
dim="1"
desc="Vector param"
dtype="footype"
need-resolve-dtype="true"
default=""
tex="" />
<preproc:sym type="param"
name="tex_param"
dim="2"
desc="Matrix param with TeX"
dtype="tex"
need-resolve-dtype="true"
default=""
tex="\tex" />
<preproc:sym type="param"
name="scalar_param"
dim="0"
desc="Scalar param (implicit)"
dtype="bar"
need-resolve-dtype="true"
default=""
tex="" />
<preproc:sym type="param"
name="scalar_param_explicit"
dim="0"
desc="Scalar param (explicit)"
dtype="bar"
need-resolve-dtype="true"
default=""
tex="" />
<preproc:sym type="param"
name="unknown_dim"
dim="-1"
desc="Unknown dimension"
dtype="wtf"
need-resolve-dtype="true"
default=""
tex="" />
</expect>
</scenario>
<scenario label="lv:template">
<context mode="preproc:symtable">
<lv:template name="_foo_"
desc="Test template">
<foo:ignored-content />
</lv:template>
</context>
<expect label="derives symbol data from template">
<preproc:sym type="tpl"
name="_foo_"
dim="0"
desc="Test template" />
</expect>
</scenario>
<scenario label="lv:meta">
<context mode="preproc:symtable">
<lv:meta>
<lv:prop name="prop1">
<lv:const value="ignore" />
</lv:prop>
<lv:prop name="prop2">
<lv:const value="ignore" />
</lv:prop>
</lv:meta>
</context>
<expect label="derives symbols from properties">
<preproc:sym type="meta"
name=":meta:prop1"
desc="Metavalue prop1"
pollute="true"
no-deps="true" />
<preproc:sym type="meta"
name=":meta:prop2"
desc="Metavalue prop2"
pollute="true"
no-deps="true" />
</expect>
</scenario>
</description>