UNPKG

3.22 kBtext/coffeescriptView Raw
1test_transpose = ->
2 run_test [
3
4 "transpose(0)",
5 "0",
6
7 "transpose([[1,2,3,4]])",
8 "[[1],[2],[3],[4]]",
9
10 "transpose([[1],[2],[3],[4]])",
11 "[[1,2,3,4]]",
12
13 "transpose(0.0)",
14 "0.0",
15
16 "transpose([[a,b],[c,d]])",
17 "[[a,c],[b,d]]",
18
19 "transpose([[a,b],[c,d]],1,2)",
20 "[[a,c],[b,d]]",
21
22 "transpose([[a,b,c],[d,e,f]],1,2)",
23 "[[a,d],[b,e],[c,f]]",
24
25 "transpose([[a,d],[b,e],[c,f]],1,2)",
26 "[[a,b,c],[d,e,f]]",
27
28 # not how one-dimensional vectors
29 # don't have a transposition.
30 "transpose([a,b,c])",
31 "[a,b,c]",
32
33
34 "transpose(a)",
35 "transpose(a)",
36
37 "transpose(a,1,2)",
38 "transpose(a)",
39
40 "transpose(a,2,1)",
41 "transpose(a)",
42
43 "transpose(1+10)",
44 "11",
45
46 "transpose(1+10,2,3)",
47 "11",
48
49 "transpose(a*b)",
50 "transpose(a)*transpose(b)",
51
52 "transpose(a*b,3,4)",
53 "transpose(a,3,4)*transpose(b,3,4)",
54
55 "transpose(b*2*a)",
56 "2*transpose(a)*transpose(b)",
57
58 "transpose(b*2*a,3,4)",
59 "2*transpose(a,3,4)*transpose(b,3,4)",
60
61 "transpose(b+a)",
62 "transpose(a)+transpose(b)",
63
64 "transpose(b+a,3,4)",
65 "transpose(a,3,4)+transpose(b,3,4)",
66
67 "transpose(inner(a,b))",
68 "inner(transpose(b),transpose(a))",
69
70 "transpose(inner(a,b),3,4)",
71 "inner(transpose(b,3,4),transpose(a,3,4))",
72
73 "transpose(transpose(a))",
74 "a",
75
76 "transpose(transpose(transpose(a)))",
77 "transpose(a)",
78
79 "transpose(transpose(transpose(transpose(a))))",
80 "a",
81
82 "transpose(transpose(a),3,4)",
83 "transpose(transpose(a),3,4)",
84
85 "transpose(transpose(transpose(a),3,4))",
86 "transpose(transpose(transpose(a),3,4))",
87
88 "transpose(transpose(transpose(a),3,4))",
89 "transpose(transpose(transpose(a),3,4))",
90
91 "transpose(transpose(transpose(a),1,2))",
92 "transpose(a)",
93
94 "transpose(transpose(transpose(a),2,1))",
95 "transpose(a)",
96
97 "transpose(transpose(a,3,4),4,3)",
98 "a",
99
100 "transpose(transpose(a,3,4),5,6)",
101 "transpose(transpose(a,3,4),5,6)",
102
103 "transpose(a) - transpose(a)",
104 "0",
105
106 "transpose(a,1,2) - transpose(a,1,2)",
107 "0",
108
109 "transpose(a,3,4) - transpose(a,3,4)",
110 "0",
111
112 "aᵀ^b",
113 "transpose(a)^b",
114
115 "a^ᵀb",
116 "a^ᵀ ? b\nStop: syntax error",
117
118 "aᵀ^2^3",
119 "transpose(a)^8",
120
121 "aᵀ",
122 "transpose(a)",
123
124 "aᵀᵀ",
125 "a",
126
127 "aᵀᵀᵀ",
128 "transpose(a)",
129
130 "aᵀᵀᵀᵀ",
131 "a",
132
133 "aᵀ+b",
134 "b+transpose(a)",
135
136 "aᵀ*b",
137 "b*transpose(a)",
138
139 # this output could be written out more
140 # cleanly without extra parens
141 "aᵀ^bᵀ",
142 "transpose(a)^(transpose(b))",
143
144 "aᵀ*bᵀ",
145 "transpose(a)*transpose(b)",
146
147 "a^bᵀ",
148 "a^(transpose(b))",
149
150 "(a^b)ᵀ",
151 "transpose(a^b)",
152
153 "(a*b)ᵀ",
154 "transpose(a)*transpose(b)",
155
156 "inner(a,b)ᵀ",
157 "inner(transpose(b),transpose(a))",
158
159 "dot(a,b)ᵀ",
160 "inner(transpose(b),transpose(a))",
161
162 "(a·b·c)ᵀ",
163 "inner(transpose(c),inner(transpose(b),transpose(a)))",
164
165 "Iᵀᵀᵀ",
166 "I",
167
168 # Note that we are using the
169 # standard commutative multiplication here,
170 # not the dot product.
171 # So, one of the two arguments should
172 # be a scalar, but we don't know
173 # which one, so we have to transpose
174 # both. Note that we
175 # don't invert the order because
176 # we know it's a normal
177 # multiplication.
178 "transpose(A)*transpose(x)",
179 "transpose(A)*transpose(x)",
180
181 ]