test/Tools/isac/xmlsrc/mathml.sml
author Walther Neuper <wneuper@ist.tugraz.at>
Tue, 06 Oct 2015 15:56:47 +0200
changeset 59177 1ff126aa8445
parent 48761 4162c4f6f897
child 59213 80d2d4d80618
permissions -rw-r--r--
PIDE: corrected PIDE's strange handling of strings

from formulas input in isac-java,
e.g. appendFormula 1 "-4 * b ^ 2 / (a + b) + 4 * a ^ 2 / (a + b)"
PIDE multiplicated "^" to,
e.g. CalcMessage: syntax error in '-4 * b ^^^^^^^^^ 2 / (a + b) + 4 * a ^^^^^^^^^ 2 / (a + b)' -4 * b ^ 2 / (a + b) + 4 * a ^ 2 / (a + b)
akargl@42176
     1
(* Title: tests for mathml.sml
akargl@42176
     2
   Author: Walther Neuper 060311
neuper@37906
     3
   (c) isac-team 2006
neuper@37906
     4
*)
neuper@37906
     5
"-----------------------------------------------------------------";
neuper@37906
     6
"table of contents -----------------------------------------------";
neuper@37906
     7
"-----------------------------------------------------------------";
neuper@37906
     8
"within struct ---------------------------------------------------";
neuper@37906
     9
"-----------------------------------------------------------------";
neuper@37906
    10
"--------- encode ^^^ -> ^ ---------------------------------------";
neuper@37906
    11
"--------- encode < -> &lt and > -> &gt --------------------------";
wneuper@59177
    12
"--------- fun rm_doublets '-4 * b ^^^^^^^^^ 2 / (...' -----------";
wneuper@59177
    13
"--------- fun decode '-4 * b ^^^^^^^^^ 2 / (...' ----------------";
neuper@37906
    14
"-----------------------------------------------------------------";
neuper@37906
    15
"exported from struct --------------------------------------------";
neuper@37906
    16
"-----------------------------------------------------------------";
neuper@37906
    17
"--------- ... ---------------------------------------------------";
neuper@37906
    18
"-----------------------------------------------------------------";
neuper@37906
    19
neuper@37906
    20
neuper@37906
    21
neuper@37906
    22
"-----------------------------------------------------------------";
neuper@37906
    23
"within struct ---------------------------------------------------";
neuper@37906
    24
"-----------------------------------------------------------------";
neuper@37906
    25
(*==================================================================*)
neuper@37906
    26
neuper@37906
    27
"--------- encode ^^^ -> ^ ---------------------------------------";
neuper@37906
    28
"--------- encode ^^^ -> ^ ---------------------------------------";
neuper@37906
    29
"--------- encode ^^^ -> ^ ---------------------------------------";
neuper@37906
    30
val str = "a^^^2+b^^^2=c^^^2";
neuper@37906
    31
if decode str = "a^2+b^2=c^2" then ()
neuper@38031
    32
else error "mathml.sml: diff.behav. in encode ^^^ -> ^";
neuper@37906
    33
akargl@42176
    34
"--------- encode < -> &lt; and > -> &gt; --------------------------";
akargl@42176
    35
"--------- encode < -> &lt; and > -> &gt; --------------------------";
akargl@42176
    36
"--------- encode < -> &lt; and > -> &gt; --------------------------";
neuper@37906
    37
val str = "?bdv occurs_in ?b; 0 < ?n |] ==> ?a / ?b ^ ?n = ?a * ?b ^ - ?n";
akargl@42176
    38
if decode str = "?bdv occurs_in ?b; 0 &lt; ?n |] ==&gt; ?a / ?b ^ ?n = ?a * ?b ^ - ?n" then ()
akargl@42176
    39
else error "mathml.sml: diff.behav. in encode '<' and '>'";
neuper@37906
    40
akargl@42176
    41
(*========== inhibit exn AK110725 ================================================
neuper@37906
    42
"----- check 'manually' the xml-output of calling functions ------";
akargl@42176
    43
formula2xml 1 (str2term str);
neuper@37906
    44
akargl@42176
    45
(* AK110725 
akargl@42176
    46
(*str2term str; (* ERROR: Inner syntax error at "; 0 < ?n |] ==> ?a / ?b ^ ?n = ?a * ?b ^ - ?n"
akargl@42176
    47
                   Failed to parse term*)*)
akargl@42176
    48
"~~~~~ fun str2term, args:"; val (str) = (str);
akargl@42176
    49
Thy_Info.get_theory "Isac";
akargl@42176
    50
akargl@42176
    51
parse_patt;
akargl@42176
    52
parse_patt (Thy_Info.get_theory "Isac");
akargl@42176
    53
(*parse_patt (Thy_Info.get_theory "Isac") str; (* ERROR: Inner syntax error at "; 0 < ?n |] ==> ?a / ?b ^ ?n = ?a * ?b ^ - ?n"
akargl@42176
    54
Failed to parse term*)*)
akargl@42176
    55
akargl@42176
    56
"~~~~~ fun parse_patt, args:"; val (thy, str) = ((Thy_Info.get_theory "Isac"), str);
akargl@42176
    57
(thy, str) 
akargl@42176
    58
|>> thy2ctxt
neuper@48761
    59
(*|-> Proof_Context.read_term_pattern (*ERROR: Inner syntax error at "; 0 < ?n |] ==> ?a / ?b ^ ?n = ?a * ?b ^ - ?n"
akargl@42176
    60
Failed to parse term*)*)
akargl@42176
    61
neuper@48761
    62
Proof_Context.read_term_pattern;
akargl@42176
    63
(@{theory "Isac"}, str) |>> thy2ctxt;
neuper@48761
    64
"~~~~~ fun Proof_Context.read_term_pattern, args:"; val () = ();
akargl@42176
    65
(*AK110725 To be continued...*)
akargl@42176
    66
*)
neuper@37906
    67
(*==================================================================*)
neuper@37906
    68
"-----------------------------------------------------------------";
neuper@37906
    69
"exported from struct --------------------------------------------";
neuper@37906
    70
"-----------------------------------------------------------------";
akargl@42176
    71
========== inhibit exn AK110725 ================================================*)
wneuper@59177
    72
wneuper@59177
    73
"--------- fun rm_doublets '-4 * b ^^^^^^^^^ 2 / (...' -----------";
wneuper@59177
    74
"--------- fun rm_doublets '-4 * b ^^^^^^^^^ 2 / (...' -----------";
wneuper@59177
    75
"--------- fun rm_doublets '-4 * b ^^^^^^^^^ 2 / (...' -----------";
wneuper@59177
    76
val c = "^";
wneuper@59177
    77
val cs = ["^","^","^","d","e"];
wneuper@59177
    78
if rm_doublets c [] cs = Symbol.explode "^de" 
wneuper@59177
    79
then () else error "rm_doublets '^^^de' CHANGED";
wneuper@59177
    80
wneuper@59177
    81
val cs = ["a","b","^","^","^","d","e"];
wneuper@59177
    82
if rm_doublets c [] cs = Symbol.explode "ab^de" 
wneuper@59177
    83
then () else error "rm_doublets 'ab^^^de' CHANGED";
wneuper@59177
    84
wneuper@59177
    85
val cstr = 
wneuper@59177
    86
"-4 * b ^^^^^^^^^ 2 / (a + b) + 4 * a ^^^^^^^^^ 2 / (a + b) -4 * b ^ 2 / (a + b) + 4 * a ^ 2 / (a + b)";
wneuper@59177
    87
val cs = Symbol.explode cstr;
wneuper@59177
    88
if rm_doublets c [] cs = Symbol.explode 
wneuper@59177
    89
  "-4 * b ^ 2 / (a + b) + 4 * a ^ 2 / (a + b) -4 * b ^ 2 / (a + b) + 4 * a ^ 2 / (a + b)"
wneuper@59177
    90
then () else error "rm_doublets '-4 * b ^^^^^..' CHANGED";
wneuper@59177
    91
wneuper@59177
    92
"--------- fun decode '-4 * b ^^^^^^^^^ 2 / (...' ----------------";
wneuper@59177
    93
"--------- fun decode '-4 * b ^^^^^^^^^ 2 / (...' ----------------";
wneuper@59177
    94
"--------- fun decode '-4 * b ^^^^^^^^^ 2 / (...' ----------------";
wneuper@59177
    95
if encode cstr = 
wneuper@59177
    96
"-4 * b ^^^ 2 / (a + b) + 4 * a ^^^ 2 / (a + b) -4 * b ^^^ 2 / (a + b) + 4 * a ^^^ 2 / (a + b)"
wneuper@59177
    97
then () else error "encode '-4 * b ^^^^^..' CHANGED";
wneuper@59177
    98