multMin2 "110" "111" == "11010" multMin2 "10" "111" == "1110" expEqual (expCreate "(((2+4)*3)-b)") (Sub (Mul (Add (Opdi 2) (Opdi 4)) (Opdi 3)) (Opdc 'b')) == True expEqual (expCreate "(((4+2)*3)/c)") (Div (Add (Opdc 'a') (Opdi 2)) (Mul (Mul (Opdi 3) (Opdi 4)) (Opdc 'b'))) == False isSubExpr (Mul (Opdi 3) (Opdi 4)) (Div (Add (Opdc 'a') (Opdi 2)) (Mul (Mul (Opdi 3) (Opdi 4)) (Opdc 'b'))) == True isSubExpr (Add (Opdi 3) (Opdi 4)) (Div (Add (Opdc 'a') (Opdi 2)) (Mul (Mul (Opdi 3) (Opdi 4)) (Opdc 'b'))) == False expEqual (expEval (expCreate "(((2+4)*3)-b)")) (Sub (Opdi 18) (Opdc 'b')) == True expEqual (expEval (expCreate "((a+2)/((3*4)*b))")) (Div (Add (Opdc 'a') (Opdi 2)) (Mul (Opdi 12) (Opdc 'b'))) == True canonicalMarkup "[Dies] [ist]{ sehr} {wichtig}!" == "Dies ist {sehr wichtig}!" canonicalMarkup "[Dies] {[ist] sehr} {wichtig}!" == "Dies ist {sehr wichtig}!" canonicalMarkup "{[{fett } vor normal]}" == "{fett} vor normal"