Skip to content

subs raises assertion when substituting with constant #118

Open
@jgoeders

Description

@jgoeders
>>> eq = boolean.BooleanAlgebra().parse("A OR (A & ~B)")
>>> eq
OR(Symbol('A'), AND(Symbol('A'), NOT(Symbol('B'))))
>>> eq.subs({boolean.Symbol("B"):True})
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/jgoeders/bfasst/.venv/lib/python3.10/site-packages/boolean/boolean.py", line 743, in subs
    expr = self._subs(substitutions, default, simplify)
  File "/home/jgoeders/bfasst/.venv/lib/python3.10/site-packages/boolean/boolean.py", line 781, in _subs
    new_arg = arg._subs(substitutions, default, simplify)
  File "/home/jgoeders/bfasst/.venv/lib/python3.10/site-packages/boolean/boolean.py", line 781, in _subs
    new_arg = arg._subs(substitutions, default, simplify)
  File "/home/jgoeders/bfasst/.venv/lib/python3.10/site-packages/boolean/boolean.py", line 796, in _subs
    newexpr = self.__class__(*new_arguments)
  File "/home/jgoeders/bfasst/.venv/lib/python3.10/site-packages/boolean/boolean.py", line 1138, in __init__
    super(NOT, self).__init__(arg1)
  File "/home/jgoeders/bfasst/.venv/lib/python3.10/site-packages/boolean/boolean.py", line 1042, in __init__
    assert all(
AssertionError: Bad arguments: all arguments must be an Expression: (True,)

>>> eq = eq.simplify()
>>> eq
Symbol('A')
>>> eq.subs({boolean.Symbol("B"):True})
Symbol('A')

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions