diff --git a/examples/tests/SatSolverTests.cs b/examples/tests/SatSolverTests.cs index bbc8908960..4222cfdc1b 100644 --- a/examples/tests/SatSolverTests.cs +++ b/examples/tests/SatSolverTests.cs @@ -431,6 +431,18 @@ public class SatSolverTest Console.WriteLine(e8.ToString()); LinearExpr e9 = LinearExpr.NewBuilder().AddWeightedSum(new BoolVar[] { b1, b2 }, c2); Console.WriteLine(e9.ToString()); + LinearExpr e10 = LinearExpr.NewBuilder().Add(v1); + Console.WriteLine(e10.ToString()); + LinearExpr e11 = LinearExpr.NewBuilder().Add(b1); + Console.WriteLine(e11.ToString()); + LinearExpr e12 = LinearExpr.NewBuilder().Add(b1.Not()); + Console.WriteLine(e12.ToString()); + LinearExpr e13 = LinearExpr.NewBuilder().AddTerm(v1, -1); + Console.WriteLine(e13.ToString()); + LinearExpr e14 = LinearExpr.NewBuilder().AddTerm(b1, -1); + Console.WriteLine(e14.ToString()); + LinearExpr e15 = LinearExpr.NewBuilder().AddTerm(b1.Not(), -2); + Console.WriteLine(e15.ToString()); } [Fact] diff --git a/ortools/sat/csharp/IntegerExpressions.cs b/ortools/sat/csharp/IntegerExpressions.cs index 5aaccb58ac..a8ceaab50a 100644 --- a/ortools/sat/csharp/IntegerExpressions.cs +++ b/ortools/sat/csharp/IntegerExpressions.cs @@ -116,6 +116,18 @@ public class LinearExpr return NewBuilder().AddTerm(expr, coeff).Add(offset); } + + public static LinearExpr Affine(ILiteral literal, long coeff, long offset) + { + return NewBuilder().AddTerm(literal, coeff).Add(offset); + } + + public static LinearExpr Affine(BoolVar var, long coeff, long offset) + { + return NewBuilder().AddTerm(var, coeff).Add(offset); + } + + public static LinearExpr Constant(long value) { return NewBuilder().Add(value); @@ -543,7 +555,7 @@ public class LinearExprBuilder : LinearExpr } else { - result += String.Format(" -{0}", term.expr.ToString()); + result += String.Format("-{0}", term.expr.ToString()); } } else @@ -554,7 +566,7 @@ public class LinearExprBuilder : LinearExpr } else { - result += String.Format(" {0} * {1}", term.coefficient, term.expr.ToString()); + result += String.Format("{0} * {1}", term.coefficient, term.expr.ToString()); } } }