code: def test_matrix_interface():
      # Demonstrates linear_symbolic()
      A = asarray([[3.0, 4.0, 5.0], [1.0, 6.0, -9.0]])
      b = asarray([0.0, 0.0])
      G = [1.0, 0.0, 0.0]
      h = [5.0]
      # print("equality constraints")
      # print("G: %s" % G)
      # print("h: %s" % h)
      # print("inequality constraints")
      # print("A:\n%s" % A)
      # print("b: %s" % b)
      constraints_string = linear_symbolic(A=A, b=b, G=G, h=h)
      cs = constraints_string.split("\n")
      assert cs[0] == "1.0*x0 + 0.0*x1 + 0.0*x2 <= 5.0"
      assert cs[1] == "3.0*x0 + 4.0*x1 + 5.0*x2 = 0.0"
      assert cs[2] == "1.0*x0 + 6.0*x1 + -9.0*x2 = 0.0"
      # print("symbolic string:\n%s" % constraints_string.rstrip())
      pf = generate_penalty(generate_conditions(constraints_string))
      cn = as_constraint(pf)
  
      x0 = [1.0, 1.0, 1.0]
      assert almostEqual(pf(cn(x0)), 0.0, tol=2e-2)
  
file_path: mystic/mystic/tests/test_symbolic_basic.py
imports: from numpy import asarray
  from mystic.constraints import issolution, as_constraint, solve
  from mystic.coupler import inner
  from mystic.symbolic import *
  from mystic.tools import random_seed
  from mystic.math import almostEqual
label_desc: Use image node_id 4 for calling a global function with example usage: test_matrix_interface() without return types