public void ProgramState_Constraint() { var ps = new ProgramState(); var sv = new SymbolicValue(); var symbol = GetSymbol(); var constraint = new FakeConstraint(); ps = ps.SetSymbolicValue(symbol, sv); ps = sv.SetConstraint(constraint, ps); Assert.IsTrue(symbol.HasConstraint(constraint, ps)); Assert.IsFalse(symbol.HasConstraint(new FakeConstraint(), ps)); }
public void ProgramState_Constraint() { var ps = new ProgramState(); var sv = new SymbolicValue(); var symbol = GetSymbol(); var constraint = new FakeConstraint(); ps = ps.StoreSymbolicValue(symbol, sv); ps = ps.SetConstraint(sv, constraint); symbol.HasConstraint(constraint, ps).Should().BeTrue(); symbol.HasConstraint(new FakeConstraint(), ps).Should().BeFalse(); }
public void ProgramState_Equivalence() { var ps1 = new ProgramState(); var ps2 = new ProgramState(); var sv = new SymbolicValue(); var constraint = new FakeConstraint(); var symbol = GetSymbol(); ps1 = ps1.SetSymbolicValue(symbol, sv); ps1 = sv.SetConstraint(constraint, ps1); ps2 = ps2.SetSymbolicValue(symbol, sv); ps2 = sv.SetConstraint(constraint, ps2); Assert.AreEqual(ps1, ps2); Assert.AreEqual(ps1.GetHashCode(), ps2.GetHashCode()); }
public void ProgramState_Equivalence() { var ps1 = new ProgramState(); var ps2 = new ProgramState(); var sv = new SymbolicValue(); var constraint = new FakeConstraint(); var symbol = GetSymbol(); ps1 = ps1.StoreSymbolicValue(symbol, sv); ps1 = ps1.SetConstraint(sv, constraint); ps2 = ps2.StoreSymbolicValue(symbol, sv); ps2 = ps2.SetConstraint(sv, constraint); ps2.Should().Be(ps1); ps2.GetHashCode().Should().Be(ps1.GetHashCode()); }