1from sympy.printing.tree import tree 2from sympy.testing.pytest import XFAIL 3 4 5# Remove this flag after making _assumptions cache deterministic. 6@XFAIL 7def test_print_tree_MatAdd(): 8 from sympy.matrices.expressions import MatrixSymbol 9 A = MatrixSymbol('A', 3, 3) 10 B = MatrixSymbol('B', 3, 3) 11 12 test_str = [ 13 'MatAdd: A + B\n', 14 'algebraic: False\n', 15 'commutative: False\n', 16 'complex: False\n', 17 'composite: False\n', 18 'even: False\n', 19 'extended_negative: False\n', 20 'extended_nonnegative: False\n', 21 'extended_nonpositive: False\n', 22 'extended_nonzero: False\n', 23 'extended_positive: False\n', 24 'extended_real: False\n', 25 'imaginary: False\n', 26 'integer: False\n', 27 'irrational: False\n', 28 'negative: False\n', 29 'noninteger: False\n', 30 'nonnegative: False\n', 31 'nonpositive: False\n', 32 'nonzero: False\n', 33 'odd: False\n', 34 'positive: False\n', 35 'prime: False\n', 36 'rational: False\n', 37 'real: False\n', 38 'transcendental: False\n', 39 'zero: False\n', 40 '+-MatrixSymbol: A\n', 41 '| algebraic: False\n', 42 '| commutative: False\n', 43 '| complex: False\n', 44 '| composite: False\n', 45 '| even: False\n', 46 '| extended_negative: False\n', 47 '| extended_nonnegative: False\n', 48 '| extended_nonpositive: False\n', 49 '| extended_nonzero: False\n', 50 '| extended_positive: False\n', 51 '| extended_real: False\n', 52 '| imaginary: False\n', 53 '| integer: False\n', 54 '| irrational: False\n', 55 '| negative: False\n', 56 '| noninteger: False\n', 57 '| nonnegative: False\n', 58 '| nonpositive: False\n', 59 '| nonzero: False\n', 60 '| odd: False\n', 61 '| positive: False\n', 62 '| prime: False\n', 63 '| rational: False\n', 64 '| real: False\n', 65 '| transcendental: False\n', 66 '| zero: False\n', 67 '| +-Symbol: A\n', 68 '| | commutative: True\n', 69 '| +-Integer: 3\n', 70 '| | algebraic: True\n', 71 '| | commutative: True\n', 72 '| | complex: True\n', 73 '| | extended_negative: False\n', 74 '| | extended_nonnegative: True\n', 75 '| | extended_real: True\n', 76 '| | finite: True\n', 77 '| | hermitian: True\n', 78 '| | imaginary: False\n', 79 '| | infinite: False\n', 80 '| | integer: True\n', 81 '| | irrational: False\n', 82 '| | negative: False\n', 83 '| | noninteger: False\n', 84 '| | nonnegative: True\n', 85 '| | rational: True\n', 86 '| | real: True\n', 87 '| | transcendental: False\n', 88 '| +-Integer: 3\n', 89 '| algebraic: True\n', 90 '| commutative: True\n', 91 '| complex: True\n', 92 '| extended_negative: False\n', 93 '| extended_nonnegative: True\n', 94 '| extended_real: True\n', 95 '| finite: True\n', 96 '| hermitian: True\n', 97 '| imaginary: False\n', 98 '| infinite: False\n', 99 '| integer: True\n', 100 '| irrational: False\n', 101 '| negative: False\n', 102 '| noninteger: False\n', 103 '| nonnegative: True\n', 104 '| rational: True\n', 105 '| real: True\n', 106 '| transcendental: False\n', 107 '+-MatrixSymbol: B\n', 108 ' algebraic: False\n', 109 ' commutative: False\n', 110 ' complex: False\n', 111 ' composite: False\n', 112 ' even: False\n', 113 ' extended_negative: False\n', 114 ' extended_nonnegative: False\n', 115 ' extended_nonpositive: False\n', 116 ' extended_nonzero: False\n', 117 ' extended_positive: False\n', 118 ' extended_real: False\n', 119 ' imaginary: False\n', 120 ' integer: False\n', 121 ' irrational: False\n', 122 ' negative: False\n', 123 ' noninteger: False\n', 124 ' nonnegative: False\n', 125 ' nonpositive: False\n', 126 ' nonzero: False\n', 127 ' odd: False\n', 128 ' positive: False\n', 129 ' prime: False\n', 130 ' rational: False\n', 131 ' real: False\n', 132 ' transcendental: False\n', 133 ' zero: False\n', 134 ' +-Symbol: B\n', 135 ' | commutative: True\n', 136 ' +-Integer: 3\n', 137 ' | algebraic: True\n', 138 ' | commutative: True\n', 139 ' | complex: True\n', 140 ' | extended_negative: False\n', 141 ' | extended_nonnegative: True\n', 142 ' | extended_real: True\n', 143 ' | finite: True\n', 144 ' | hermitian: True\n', 145 ' | imaginary: False\n', 146 ' | infinite: False\n', 147 ' | integer: True\n', 148 ' | irrational: False\n', 149 ' | negative: False\n', 150 ' | noninteger: False\n', 151 ' | nonnegative: True\n', 152 ' | rational: True\n', 153 ' | real: True\n', 154 ' | transcendental: False\n', 155 ' +-Integer: 3\n', 156 ' algebraic: True\n', 157 ' commutative: True\n', 158 ' complex: True\n', 159 ' extended_negative: False\n', 160 ' extended_nonnegative: True\n', 161 ' extended_real: True\n', 162 ' finite: True\n', 163 ' hermitian: True\n', 164 ' imaginary: False\n', 165 ' infinite: False\n', 166 ' integer: True\n', 167 ' irrational: False\n', 168 ' negative: False\n', 169 ' noninteger: False\n', 170 ' nonnegative: True\n', 171 ' rational: True\n', 172 ' real: True\n', 173 ' transcendental: False\n' 174 ] 175 176 assert tree(A + B) == "".join(test_str) 177 178 179def test_print_tree_MatAdd_noassumptions(): 180 from sympy.matrices.expressions import MatrixSymbol 181 A = MatrixSymbol('A', 3, 3) 182 B = MatrixSymbol('B', 3, 3) 183 184 test_str = \ 185"""MatAdd: A + B 186+-MatrixSymbol: A 187| +-Str: A 188| +-Integer: 3 189| +-Integer: 3 190+-MatrixSymbol: B 191 +-Str: B 192 +-Integer: 3 193 +-Integer: 3 194""" 195 196 assert tree(A + B, assumptions=False) == test_str 197