import cdb.core.manip as manip def test01(): __cdbkernel__=create_scope() ex:= A_{m n} B^{m n} + q = C_{m} D^{m}; manip.isolate(ex, $q$) exrhs=rhs(ex) tst:= C_{m} D^{m} - A_{m n} B^{m n} - @(exrhs); assert(tst==0) print("Test 01 passed") test01() def test02(): __cdbkernel__=create_scope() ex := a - b = c + d; manip.to_rhs(ex, $b$) manip.to_rhs(ex, $a$) tst:= ( 0 = c + d + b - a ) - @(ex); assert(tst==$0=0$) print("Test 02 passed") #to_lhs(ex0, $d + b$); test02() def test03(): __cdbkernel__=create_scope() ex1 := a_{\mu}a^{\mu} + b = c; manip.eq_to_subrule(ex1) manip.get_lhs(ex1) manip.get_rhs(ex1) manip.multiply_through(ex1, $k_{\alpha}$) manip.swap_sides(ex1) tst:= (k_{\alpha} c = k_{\alpha} (a_{\mu} a^{\mu} + b ) ) - @(ex1); assert(tst==$0=0$) print("Test 03 passed") test03() def test04(): # __cdbkernel__=create_scope() {f, i}::Symbol; ex := w_{f} - w_{i} > 2 \pi W_{a b}\beta^{a}\beta^{b}; manip.get_lhs(ex) manip.get_rhs(ex) manip.swap_sides(ex) manip.swap_sides(ex) manip.multiply_through(ex, $2n$) exrhs=manip.get_rhs(ex) tst:= 4n \pi W_{a b} \beta^{a} \beta^{b} - @(exrhs); assert(tst==0) print("Test 04 passed") test04() def test05(): __cdbkernel__=create_scope() ex:= a, b, c; try: manip.eq_to_subrule(ex) assert(1==0) except Exception as e: print("Test 05a passed") try: manip.get_lhs(ex) assert(1==0) except Exception as e: print("Test 05b passed") try: manip.get_rhs(ex) assert(1==0) except Exception as e: print("Test 05c passed") try: manip.swap_sides(ex) assert(1==0) except Exception as e: print("Test 05d passed") try: manip.to_rhs(ex, $a$) assert(1==0) except Exception as e: print("Test 05e passed") try: manip.to_rhs(ex, $a$) assert(1==0) except Exception as e: print("Test 05f passed") try: t::Coordinate. {i, j}::Indices(values={t}, position=fixed). ex := a_{i}; evaluate(ex, ${a_{t} = 1}$) manip.get_component(ex, $x$) manip.to_rhs(ex, $a$) assert(1==0) except Exception as e: print("Test 05g passed") test05() def test06(): __cdbkernel__=create_scope() ex:= 2a+b+j*b+k*b = c+d; manip.to_lhs(ex) tst := (2a+b+j*b+k*b-c-d = 0) - @(ex); assert(tst==$0=0$) print("Test 06 passed") test06() def test07(): __cdbkernel__=create_scope() ex:= p V = k T; ex2:= @(ex)/V; collect_factors(ex2) tst:= (p = k T / V) - @(ex2); assert(tst==$0=0$) print("Test 07a passed") try: ex1:= A = B; ex2:= C = D; ex3:= @(ex1) @(ex2); assert(1==0) except RuntimeError as e: print("Test 07b passed") ex3:= Q @(ex) R; assert( ex3 == $Q p V R = Q k T R$ ) print("Test 07c passed") test07()