annotate test/test_parser.m @ 12688:5dedac50fef9 stable

test: Comment out failing parser tests ahead of 3.4.1 release * test_parser.m: Comment out failing parser tests, which have already been dealt with on the development branch.
author Rik <octave@nomad.inbox5.com>
date Wed, 25 May 2011 15:46:01 -0700
parents 9f926b9f83cc
children 53c0ed961de8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11523
fd0a3ac60b0e update copyright notices
John W. Eaton <jwe@octave.org>
parents: 11218
diff changeset
1 ## Copyright (C) 2010-2011 John W. Eaton
11218
0910020c5ab6 add omitted file from previous change
John W. Eaton <jwe@octave.org>
parents:
diff changeset
2 ##
0910020c5ab6 add omitted file from previous change
John W. Eaton <jwe@octave.org>
parents:
diff changeset
3 ## This file is part of Octave.
0910020c5ab6 add omitted file from previous change
John W. Eaton <jwe@octave.org>
parents:
diff changeset
4 ##
0910020c5ab6 add omitted file from previous change
John W. Eaton <jwe@octave.org>
parents:
diff changeset
5 ## Octave is free software; you can redistribute it and/or modify it
0910020c5ab6 add omitted file from previous change
John W. Eaton <jwe@octave.org>
parents:
diff changeset
6 ## under the terms of the GNU General Public License as published by
0910020c5ab6 add omitted file from previous change
John W. Eaton <jwe@octave.org>
parents:
diff changeset
7 ## the Free Software Foundation; either version 3 of the License, or (at
0910020c5ab6 add omitted file from previous change
John W. Eaton <jwe@octave.org>
parents:
diff changeset
8 ## your option) any later version.
0910020c5ab6 add omitted file from previous change
John W. Eaton <jwe@octave.org>
parents:
diff changeset
9 ##
0910020c5ab6 add omitted file from previous change
John W. Eaton <jwe@octave.org>
parents:
diff changeset
10 ## Octave is distributed in the hope that it will be useful, but
0910020c5ab6 add omitted file from previous change
John W. Eaton <jwe@octave.org>
parents:
diff changeset
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of
0910020c5ab6 add omitted file from previous change
John W. Eaton <jwe@octave.org>
parents:
diff changeset
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
0910020c5ab6 add omitted file from previous change
John W. Eaton <jwe@octave.org>
parents:
diff changeset
13 ## General Public License for more details.
0910020c5ab6 add omitted file from previous change
John W. Eaton <jwe@octave.org>
parents:
diff changeset
14 ##
0910020c5ab6 add omitted file from previous change
John W. Eaton <jwe@octave.org>
parents:
diff changeset
15 ## You should have received a copy of the GNU General Public License
0910020c5ab6 add omitted file from previous change
John W. Eaton <jwe@octave.org>
parents:
diff changeset
16 ## along with Octave; see the file COPYING. If not, see
0910020c5ab6 add omitted file from previous change
John W. Eaton <jwe@octave.org>
parents:
diff changeset
17 ## <http://www.gnu.org/licenses/>.
0910020c5ab6 add omitted file from previous change
John W. Eaton <jwe@octave.org>
parents:
diff changeset
18
0910020c5ab6 add omitted file from previous change
John W. Eaton <jwe@octave.org>
parents:
diff changeset
19 ## Tests for parser problems belong in this file. We need many more
0910020c5ab6 add omitted file from previous change
John W. Eaton <jwe@octave.org>
parents:
diff changeset
20 ## tests here!
0910020c5ab6 add omitted file from previous change
John W. Eaton <jwe@octave.org>
parents:
diff changeset
21
0910020c5ab6 add omitted file from previous change
John W. Eaton <jwe@octave.org>
parents:
diff changeset
22 %!assert ({1 2 {3 4}}, {1,2,{3,4}})
0910020c5ab6 add omitted file from previous change
John W. Eaton <jwe@octave.org>
parents:
diff changeset
23 %!assert ({1, 2 {3 4}}, {1,2,{3,4}})
0910020c5ab6 add omitted file from previous change
John W. Eaton <jwe@octave.org>
parents:
diff changeset
24 %!assert ({1 2, {3 4}}, {1,2,{3,4}})
0910020c5ab6 add omitted file from previous change
John W. Eaton <jwe@octave.org>
parents:
diff changeset
25 %!assert ({1 2 {3, 4}}, {1,2,{3,4}})
0910020c5ab6 add omitted file from previous change
John W. Eaton <jwe@octave.org>
parents:
diff changeset
26 %!assert ({1, 2, {3 4}}, {1,2,{3,4}})
0910020c5ab6 add omitted file from previous change
John W. Eaton <jwe@octave.org>
parents:
diff changeset
27 %!assert ({1 2,{3 4}}, {1,2,{3,4}})
0910020c5ab6 add omitted file from previous change
John W. Eaton <jwe@octave.org>
parents:
diff changeset
28 %!assert ({1 2,{3,4}}, {1,2,{3,4}})
0910020c5ab6 add omitted file from previous change
John W. Eaton <jwe@octave.org>
parents:
diff changeset
29 %!assert ({1,2,{3 4}}, {1,2,{3,4}})
12518
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
30
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
31 %# Tests for operator precedence as documented in section 8.8 of manual
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
32 %# There are 11 levels of precedence from "exponentiation" (highest) down to
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
33 %# "statement operators" (lowest).
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
34 %#
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
35 %# Level 11 (exponentiation) overrides all others
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
36 %!test
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
37 %! assert (-2^2, -4)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
38 %! assert (!0^0, false);
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
39 # FIXME: This test is failing. Transpose mistakenly has higher priority.
12688
5dedac50fef9 test: Comment out failing parser tests ahead of 3.4.1 release
Rik <octave@nomad.inbox5.com>
parents: 12518
diff changeset
40 %!# assert ([2 3].^2', [4; 9])
12518
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
41 %! assert (2*3^2, 18)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
42 %! assert (2+3^2, 11)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
43 %! assert ([1:10](1:2^2), [1 2 3 4])
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
44 %! assert (3 > 2^2, false)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
45 %! assert (1 & 0^0, true)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
46 %! assert (1 && 0^0, true)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
47 %! a = 3;
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
48 %! a *= 0^0;
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
49 %! assert (a, 3)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
50 %# Level 10 (unary plus, increment, not)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
51 %!test
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
52 # FIXME: No test for increment and transpose that I can think of.
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
53 %! a = 2;
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
54 %! assert (++a*3, 9)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
55 %! assert (a++-2, 1)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
56 %! assert (a, 4)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
57 %! assert ([1:10](1:++a), [1:5])
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
58 %! assert (5 == a++, true)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
59 %! assert (7 == ++a, true)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
60 %! a = 0;
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
61 %! assert (1 & a++, false)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
62 %! assert (a, 1)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
63 %! assert (1 && --a, false)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
64 %! a = 3;
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
65 %! a *= a++;
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
66 %! assert (a, 12)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
67 %# Level 9 (transpose)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
68 %!test
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
69 %! assert ([1 2]*[3 4]', 11)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
70 %! assert ([1 2]'+[3 4]', [4; 6])
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
71 %! assert (1:5', 1:5)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
72 %! assert ([1; 2] == [1 2]', [true; true])
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
73 %! assert ([1; 0] & [1 0]', [true; false])
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
74 # FIXME: No test for transpose and short-circuit operator that I can think of.
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
75 %! a = [1 2];
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
76 %! a *= [3 4]';
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
77 %! assert (a, 11)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
78 %# Level 8 (multiply, divide)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
79 %!test
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
80 %! assert (3 + 4 * 5, 23)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
81 %! assert (3 + 4 * 5, 23)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
82 %! assert (5*1:6, [5 6])
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
83 %! assert (3 > 1 * 5, false)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
84 %! assert (1 & 1 * 0, false)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
85 %! assert (1 && 1 * 0, false)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
86 %! a = 3;
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
87 %! a /= a * 2;
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
88 %! assert (a, 0.5)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
89 %# Level 7 (add, subtract)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
90 %!test
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
91 %! assert ([2 + 1:6], 3:6)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
92 %! assert (3 > 1 + 5, false)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
93 %! assert (1 & 1 - 1, false)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
94 %! assert (1 && 1 - 1, false)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
95 %! a = 3;
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
96 %! a *= 1 + 1;
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
97 %! assert (a, 6)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
98 %# Level 6 (colon)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
99 %!test
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
100 %! assert (5:-1: 3 > 4, [true false false])
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
101 %! assert (1: 3 & 1, [true true true])
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
102 %! assert (-1: 3 && 1, false)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
103 %! a = [1:3];
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
104 %! a += 3 : 5;
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
105 %! assert (a, [4 6 8])
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
106 %# Level 5 (relational)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
107 %!test
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
108 %! assert (0 == -1 & 0, false)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
109 %! assert (0 == -1 && 0, false)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
110 %! a = 2;
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
111 %! a *= 3 > 1;
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
112 %! assert (a, 2)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
113 %# Level 4 (element-wise and, or)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
114 %!test
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
115 %! assert (0 & 1 || 1, true)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
116 %! assert (0 == -1 && 0, false)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
117 %! a = 2;
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
118 %! a *= 3 & 1;
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
119 %! assert (a, 2)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
120 %# Level 3 (logical and, or)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
121 %!test
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
122 %! a = 2;
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
123 %! a *= 3 && 1;
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
124 %! assert (a, 2)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
125
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
126 %# Tests for operator precedence within each level where ordering should
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
127 %# be left to right except for exponents and assignments.
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
128 %# Level 11 (exponentiation)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
129 %!test
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
130 %# FIXME : Exponentiation seems to work left to right, despite the
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
131 %# documentation and ordinary mathematical rules of precedence.
12688
5dedac50fef9 test: Comment out failing parser tests ahead of 3.4.1 release
Rik <octave@nomad.inbox5.com>
parents: 12518
diff changeset
132 %!# assert (2^3**2, 512)
12518
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
133 %# Level 10 (unary plus, increment, not)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
134 %!test
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
135 %! assert (+-+1, -1)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
136 %! a = 0;
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
137 %# FIXME : Should we test for this corner case at all?
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
138 %# (unary minus)(auto-decrement operator)
12688
5dedac50fef9 test: Comment out failing parser tests ahead of 3.4.1 release
Rik <octave@nomad.inbox5.com>
parents: 12518
diff changeset
139 %!# assert (---a, 1);
12518
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
140 %! a = -1;
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
141 %! assert (!++a, true)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
142 %! assert (a, 0)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
143 %! assert (-~a, -1)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
144 %! assert (!~a++, false)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
145 %! assert (a, 1)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
146 %# Level 9 (transpose)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
147 %!test
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
148 %! assert (3*4i'.', 0 - 12i)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
149 %! assert (3*4i.'.', 0 + 12i)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
150 %# Level 8 (multiply, divide)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
151 %!test
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
152 %!assert (3 * 4 / 5, 2.4)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
153 %!assert (3 ./ 4 .* 5, 3.75)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
154 %# Level 7 (add, subtract)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
155 %!test
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
156 %!assert (-3 - 4 + 1 + 3 * 2, 0)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
157 %# Level 5 (relational)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
158 %!test
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
159 %! assert (0 < 1 <= 0.5 == 0 >= 0.5 > 0, true)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
160 %! assert (1 < 1 == 0 != 0, true)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
161 %! assert (1 < 1 == 0 ~= 0, true)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
162 %# Level 4 (element-wise and, or)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
163 %!test
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
164 %! assert ([ 1 0] & [0 1] | [1 0], [true false])
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
165 %# Level 2 (assignment)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
166 %!test
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
167 %! a = 2; b = 5; c = 7;
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
168 %! assert (a += b *= c += 1, 42)
9f926b9f83cc Add operator precedence tests to fixed list of parser tests.
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
169 %! assert (b == 40 && c == 8)