test_tree.py 5.9 KB

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