autodist/webbuild/html/scripts/codemirror/mode/stex/test.html

265 lines
6.0 KiB
HTML
Raw Normal View History

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>CodeMirror: sTeX mode</title>
<link rel="stylesheet" href="../../lib/codemirror.css">
<script src="../../lib/codemirror.js"></script>
<script src="stex.js"></script>
<link rel="stylesheet" href="../../test/mode_test.css">
<script src="../../test/mode_test.js"></script>
<link rel="stylesheet" href="../../doc/docs.css">
</head>
<body>
<h1>Tests for the sTeX Mode</h1>
<h2>Basics</h2>
<script language="javascript">
MT = ModeTest;
MT.test('foo',
null, 'foo');
MT.test('foo bar',
null, 'foo',
null, ' bar');
</script>
<h2>Tags</h2>
<script language="javascript">
MT.test('\\begin{document}\n\\end{document}',
'tag', '\\begin',
'bracket', '{',
'atom', 'document',
'bracket', '}',
'tag', '\\end',
'bracket', '{',
'atom', 'document',
'bracket', '}');
MT.test('\\begin{equation}\n E=mc^2\n\\end{equation}',
'tag', '\\begin',
'bracket', '{',
'atom', 'equation',
'bracket', '}',
null, ' ',
null, ' ',
null, 'E',
null, '=mc',
null, '^2',
'tag', '\\end',
'bracket', '{',
'atom', 'equation',
'bracket', '}');
MT.test('\\begin{module}[]',
'tag', '\\begin',
'bracket', '{',
'atom', 'module',
'bracket', '}',
'bracket', '[',
'bracket', ']');
MT.test('\\begin{module}[id=bbt-size]',
'tag', '\\begin',
'bracket', '{',
'atom', 'module',
'bracket', '}',
'bracket', '[',
null, 'id',
null, '=bbt-size',
'bracket', ']');
MT.test('\\importmodule[b-b-t]{b-b-t}',
'tag', '\\importmodule',
'bracket', '[',
'string', 'b-b-t',
'bracket', ']',
'bracket', '{',
'builtin', 'b-b-t',
'bracket', '}');
MT.test('\\importmodule[\\KWARCslides{dmath/en/cardinality}]{card}',
'tag', '\\importmodule',
'bracket', '[',
'tag', '\\KWARCslides',
'bracket', '{',
'string', 'dmath',
'string', '/en',
'string', '/cardinality',
'bracket', '}',
'bracket', ']',
'bracket', '{',
'builtin', 'card',
'bracket', '}');
MT.test('\\PSforPDF[1]{#1}', // could treat #1 specially
'tag', '\\PSforPDF',
'bracket', '[',
'atom', '1',
'bracket', ']',
'bracket', '{',
null, '#1',
'bracket', '}');
</script>
<h2>Comments</h2>
<script language="javascript">
MT.test('% foo',
'comment', '%',
'comment', ' foo');
MT.test('\\item% bar',
'tag', '\\item',
'comment', '%',
'comment', ' bar');
MT.test(' % \\item',
null, ' ',
'comment', '%',
'comment', ' \\item');
MT.test('%\nfoo',
'comment', '%',
null, 'foo');
</script>
<h2>Errors</h2>
<script language="javascript">
MT.test('\\begin}{',
'tag', '\\begin',
'error', '}',
'bracket', '{');
MT.test('\\item]{',
'tag', '\\item',
'error', ']',
'bracket', '{');
MT.test('% }',
'comment', '%',
'comment', ' }');
</script>
<h2>Character Escapes</h2>
<script language="javascript">
MT.test('the \\# key',
null, 'the',
null, ' ',
'tag', '\\#',
null, ' key');
MT.test('a \\$5 stetson',
null, 'a',
null, ' ',
'tag', '\\$',
'atom', 5,
null, ' stetson');
MT.test('100\\% beef',
'atom', '100',
'tag', '\\%',
null, ' beef');
MT.test('L \\& N',
null, 'L',
null, ' ',
'tag', '\\&',
null, ' N');
MT.test('foo\\_bar',
null, 'foo',
'tag', '\\_',
null, 'bar');
MT.test('\\emph{\\{}',
'tag', '\\emph',
'bracket','{',
'tag', '\\{',
'bracket','}');
MT.test('\\emph{\\}}',
'tag', '\\emph',
'bracket','{',
'tag', '\\}',
'bracket','}');
MT.test('section \\S1',
null, 'section',
null, ' ',
'tag', '\\S',
'atom', '1');
MT.test('para \\P2',
null, 'para',
null, ' ',
'tag', '\\P',
'atom', '2');
</script>
<h2>Spacing control</h2>
<script language="javascript">
MT.test('x\\,y', // thinspace
null, 'x',
'tag', '\\,',
null, 'y');
MT.test('x\\;y', // thickspace
null, 'x',
'tag', '\\;',
null, 'y');
MT.test('x\\!y', // negative thinspace
null, 'x',
'tag', '\\!',
null, 'y');
MT.test('J.\\ L.\\ is', // period not ending a sentence
null, 'J',
null, '.',
null, '\\',
null, ' L',
null, '.',
null, '\\',
null, ' is'); // maybe could be better
MT.test('X\\@. The', // period ending a sentence
null, 'X',
'tag', '\\@',
null, '.',
null, ' The');
MT.test('{\\em If\\/} I', // italic correction
'bracket', '{',
'tag', '\\em',
null, ' ',
null, 'If',
'tag', '\\/',
'bracket', '}',
null, ' ',
null, 'I');
</script>
<h2>New Commands</h2>
Should be able to define a new command that happens to be a method on Array
(e.g. <tt>pop</tt>):
<script language="javascript">
MT.test('\\newcommand{\\pop}',
'tag', '\\newcommand',
'bracket', '{',
'tag', '\\pop',
'bracket', '}');
</script>
<h2>Summary</h2>
<script language="javascript">
MT.printSummary();
</script>
</body>
</html>