diff options
author | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2015-04-03 22:25:55 +0200 |
---|---|---|
committer | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2016-04-25 22:19:31 +0200 |
commit | e784f89f1b35e6d87c2027a881fa786b9e0238cf (patch) | |
tree | b27953ef820cc76c879b4bc27a5e05063d4deb22 /testdata/integration | |
parent | 3899cd3c8fb3eccb73a43208e90d88cfcc64c41c (diff) |
Test underscore token
* Move test math environment to integration folder
* Add math_limits integration test
Diffstat (limited to 'testdata/integration')
3 files changed, 257 insertions, 0 deletions
diff --git a/testdata/integration/user_defined_syntax/math.osml b/testdata/integration/user_defined_syntax/math.osml new file mode 100644 index 0000000..2f53366 --- /dev/null +++ b/testdata/integration/user_defined_syntax/math.osml @@ -0,0 +1,224 @@ +\ontology#math{ + %{ + Top level math commands -- block math (equivalent to LaTeX AMS "array") + and inline math. + }% + \struct#math[root=true] + \syntax + \open{$$} + \close{$$} + \field + \childRef[ref=equation] + + \struct#inlineMath + \syntax + \open{$} + \close{$} + \field + \childRef[ref=primitive] + + %{ + Commands for block math -- these are used to define equations, seperable + by the "&" field separator. + }% + \struct#equation[transparent=true, cardinality={>0}] + \syntax + \close{\\\\} + \field + \childRef[ref=field] + \struct#field[transparent=true] + \syntax + \close{&} + \field + \childRef[ref=primitive] + + %{ + All classes derived from "primitive" can be used inside all equations + }% + \struct#primitive + + %{ + Variables and functions + }% + \struct#var[isa=primitive] + \primitive#name[type=string] + \struct#fun[isa=primitive] + \primitive#name[subtree=true,type=string,optional=false] + \field#arguments[subtree=true,optional=true] + \childRef[ref=primitive] + + %{ + Basic mathematical commands, sum, product, fraction, square root + }% + \struct#sum[isa=primitive] + \field + \childRef[ref=limits] + \struct#prod[isa=primitive] + \field + \childRef[ref=limits] + \struct#int[isa=primitive] + \field + \childRef[ref=limits] + \struct#iint[isa=primitive] + \field + \childRef[ref=limits] + \struct#frac[isa=primitive] + \field#denominator[subtree=true,optional=false] + \childRef[ref=primitive] + \field#nominator[subtree=true,optional=false] + \childRef[ref=primitive] + \struct#sqrt[isa=primitive] + \attributes + \attribute#base[type=int,default=2] + \field + \childRef[ref=primitive] + \struct#root[isa=primitive] + \field#base[subtree=true,optional=true] + \childRef[ref=primitive] + \field + \childRef[ref=primitive] + + % TODO: Differentiate between lower and upper index vs. power operator? + \struct#power[isa=primitive] + \syntax + \short{^} + \field + \childRef[ref=primitive] + \struct#index[isa=primitive] + \syntax + \short{_} + \field + \childRef[ref=primitive] + + %{ + Separators + }% + + \struct#comma[isa=primitive] + \syntax + \short{,} + \struct#colon[isa=primitive] + \syntax + \short{:} + \struct#semicolon[isa=primitive] + \syntax + \short{;} + + %{ + Operators and Relations + }% + \struct#plus[isa=primitive] + \syntax + \short{+} + \struct#minus[isa=primitive] + \syntax + \short{-} + \struct#multiplication[isa=primitive] + \syntax + \short{*} + \struct#division[isa=primitive] + \syntax + \short{/} + \struct#equals[isa=primitive] + \syntax + \short{=} + \struct#equiv[isa=primitive] + \syntax + \short{==} + \struct#smaller[isa=primitive] + \syntax + \short{<} + \struct#larger[isa=primitive] + \syntax + \short{>} + \struct#smallerEq[isa=primitive] + \syntax + \short{<=} + \struct#largerEq[isa=primitive] + \syntax + \short{>=} + \struct#times[isa=primitive] + \struct#circ[isa=primitive] + \struct#cdot[isa=primitive] + \struct#bullet[isa=primitive] + \struct#cup[isa=primitive] + \struct#cap[isa=primitive] + \struct#subset[isa=primitive] + \struct#subseteq[isa=primitive] + \struct#sqcup[isa=primitive] + \struct#sqcap[isa=primitive] + \struct#sim[isa=primitive] + \struct#vee[isa=primitive] + \struct#wedge[isa=primitive] + \struct#pm[isa=primitive] + \struct#mp[isa=primitive] + \struct#infty[isa=primitive] + + %{ + Arrows + }% + \struct#to[isa=primitive] + \syntax + \short{->} + \struct#mapsto[isa=primitive] + \syntax + \short{|->} + + \struct#leftarrow[isa=primitive] + \syntax + \short{<--} + \struct#Leftarrow[isa=primitive] + \syntax + \short{<==} + \struct#rightarrow[isa=primitive] + \syntax + \short{-->} + \struct#Leftrightarrow[isa=primitive] + \syntax + \short{<=>} + \struct#leftrightarrow[isa=primitive] + \syntax + \short{<->} + \struct#uparrow[isa=primitive] + \struct#Uparrow[isa=primitive] + \struct#downarrow[isa=primitive] + \struct#Downarrow[isa=primitive] + \struct#updownarrow[isa=primitive] + \struct#Updownarrow[isa=primitive] + + \struct#longleftarrow[isa=primitive] + \syntax + \short{<---} + \struct#Longleftarrow[isa=primitive] + \syntax + \short{<===} + \struct#longrightarrow[isa=primitive] + \syntax + \short{--->} + \struct#longleftrightarrow[isa=primitive] + \syntax + \short{<==>} + \struct#Longleftrightarrow[isa=primitive] + \syntax + \short{<-->} + + \struct#number[isa=primitive,transparent=true] + \primitive[type=int] + \struct#text[isa=primitive,transparent=true] + \primitive[type=string] + \struct#limits[transparent=true] + \field + \childRef[ref=lowerLimits] + \childRef[ref=upperLimits] + \struct#lowerLimits[cardinality={0,1}] + \syntax + \short{_} + \field + \childRef[ref=primitive] + \struct#upperLimits[cardinality={0,1}] + \syntax + \short{^} + \field + \childRef[ref=primitive] + +} diff --git a/testdata/integration/user_defined_syntax/math_limits.in.osml b/testdata/integration/user_defined_syntax/math_limits.in.osml new file mode 100644 index 0000000..dbb21aa --- /dev/null +++ b/testdata/integration/user_defined_syntax/math_limits.in.osml @@ -0,0 +1,5 @@ +\document +\import[ontology]{./math} +\begin{math} + \sum_{i=3}^{5} i_{M}^{2} +\end{math} diff --git a/testdata/integration/user_defined_syntax/math_limits.out.osxml b/testdata/integration/user_defined_syntax/math_limits.out.osxml new file mode 100644 index 0000000..d39c34a --- /dev/null +++ b/testdata/integration/user_defined_syntax/math_limits.out.osxml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<document xmlns:math="math"> + <math:math> + <math:equation> + <math:field> + <math:sum> + <math:limits> + <math:lowerLimits> + <math:text>i</math:text> + <math:equals/> + <math:number>3</math:number> + </math:lowerLimits> + <math:upperLimits> + <math:number>5</math:number> + </math:upperLimits> + </math:limits> + </math:sum> + <math:text>i</math:text> + <math:index> + <math:text>M</math:text> + </math:index> + <math:power> + <math:number>2</math:number> + </math:power> + </math:field> + </math:equation> + </math:math> +</document> |