Handle strings on boolean operators.
This commit is contained in:
@@ -300,6 +300,22 @@ namespace VAR.ExpressionEvaluator.Tests
|
||||
Assert.AreEqual(false, result);
|
||||
}
|
||||
|
||||
[TestMethod()]
|
||||
public void Relations_StringEmptyGreatherThan1_EqualsFalse()
|
||||
{
|
||||
string expression = "\"\">1";
|
||||
object result = Parser.EvaluateString(expression);
|
||||
Assert.AreEqual(false, result);
|
||||
}
|
||||
|
||||
[TestMethod()]
|
||||
public void Relations_1GreatherThanStringEmpty_EqualsFalse()
|
||||
{
|
||||
string expression = "1>\"\"";
|
||||
object result = Parser.EvaluateString(expression);
|
||||
Assert.AreEqual(false, result);
|
||||
}
|
||||
|
||||
[TestMethod()]
|
||||
public void Relations_1Equals1_EqualsTrue()
|
||||
{
|
||||
@@ -308,6 +324,22 @@ namespace VAR.ExpressionEvaluator.Tests
|
||||
Assert.AreEqual(true, result);
|
||||
}
|
||||
|
||||
[TestMethod()]
|
||||
public void Relations_StringEmptyEquals1_EqualsFalse()
|
||||
{
|
||||
string expression = "\"\"=1";
|
||||
object result = Parser.EvaluateString(expression);
|
||||
Assert.AreEqual(false, result);
|
||||
}
|
||||
|
||||
[TestMethod()]
|
||||
public void Relations_1EqualsStringEmpty_EqualsFalse()
|
||||
{
|
||||
string expression = "1=\"\"";
|
||||
object result = Parser.EvaluateString(expression);
|
||||
Assert.AreEqual(false, result);
|
||||
}
|
||||
|
||||
[TestMethod()]
|
||||
public void Relations_10NotEquals1_EqualsTrue()
|
||||
{
|
||||
@@ -316,6 +348,22 @@ namespace VAR.ExpressionEvaluator.Tests
|
||||
Assert.AreEqual(true, result);
|
||||
}
|
||||
|
||||
[TestMethod()]
|
||||
public void Relations_StringEmptyNotEquals1_EqualsTrue()
|
||||
{
|
||||
string expression = "\"\"!=1";
|
||||
object result = Parser.EvaluateString(expression);
|
||||
Assert.AreEqual(true, result);
|
||||
}
|
||||
|
||||
[TestMethod()]
|
||||
public void Relations_1NotEqualsStringEmpty_EqualsTrue()
|
||||
{
|
||||
string expression = "1!=\"\"";
|
||||
object result = Parser.EvaluateString(expression);
|
||||
Assert.AreEqual(true, result);
|
||||
}
|
||||
|
||||
[TestMethod()]
|
||||
public void Relations_10Different1_EqualsTrue()
|
||||
{
|
||||
@@ -324,6 +372,22 @@ namespace VAR.ExpressionEvaluator.Tests
|
||||
Assert.AreEqual(true, result);
|
||||
}
|
||||
|
||||
[TestMethod()]
|
||||
public void Relations_StringEmptyDifferent1_EqualsTrue()
|
||||
{
|
||||
string expression = "\"\"<>1";
|
||||
object result = Parser.EvaluateString(expression);
|
||||
Assert.AreEqual(true, result);
|
||||
}
|
||||
|
||||
[TestMethod()]
|
||||
public void Relations_1DifferentStringEmpty_EqualsTrue()
|
||||
{
|
||||
string expression = "1<>\"\"";
|
||||
object result = Parser.EvaluateString(expression);
|
||||
Assert.AreEqual(true, result);
|
||||
}
|
||||
|
||||
[TestMethod()]
|
||||
public void Relations_10LessThan1_EqualsFalse()
|
||||
{
|
||||
@@ -332,6 +396,22 @@ namespace VAR.ExpressionEvaluator.Tests
|
||||
Assert.AreEqual(false, result);
|
||||
}
|
||||
|
||||
[TestMethod()]
|
||||
public void Relations_StringEmptyLessThan1_EqualsFalse()
|
||||
{
|
||||
string expression = "\"\"<1";
|
||||
object result = Parser.EvaluateString(expression);
|
||||
Assert.AreEqual(false, result);
|
||||
}
|
||||
|
||||
[TestMethod()]
|
||||
public void Relations_1LessThanStringEmpty_EqualsFalse()
|
||||
{
|
||||
string expression = "1<\"\"";
|
||||
object result = Parser.EvaluateString(expression);
|
||||
Assert.AreEqual(false, result);
|
||||
}
|
||||
|
||||
[TestMethod()]
|
||||
public void Relations_1GreaterOrEqualThan1_EqualsTrue()
|
||||
{
|
||||
@@ -340,6 +420,22 @@ namespace VAR.ExpressionEvaluator.Tests
|
||||
Assert.AreEqual(true, result);
|
||||
}
|
||||
|
||||
[TestMethod()]
|
||||
public void Relations_StringEmptyGreaterOrEqualThan1_EqualsFalse()
|
||||
{
|
||||
string expression = "\"\">=1";
|
||||
object result = Parser.EvaluateString(expression);
|
||||
Assert.AreEqual(false, result);
|
||||
}
|
||||
|
||||
[TestMethod()]
|
||||
public void Relations_1GreaterOrEqualThanStringEmpty_EqualsFalse()
|
||||
{
|
||||
string expression = "1>=\"\"";
|
||||
object result = Parser.EvaluateString(expression);
|
||||
Assert.AreEqual(false, result);
|
||||
}
|
||||
|
||||
[TestMethod()]
|
||||
public void Relations_1LessOrEqualThan1_EqualsTrue()
|
||||
{
|
||||
@@ -364,6 +460,22 @@ namespace VAR.ExpressionEvaluator.Tests
|
||||
Assert.AreEqual(false, result);
|
||||
}
|
||||
|
||||
[TestMethod()]
|
||||
public void Relations_StringEmptyLessOrEqualThan1_EqualsFalse()
|
||||
{
|
||||
string expression = "\"\"<=1";
|
||||
object result = Parser.EvaluateString(expression);
|
||||
Assert.AreEqual(false, result);
|
||||
}
|
||||
|
||||
[TestMethod()]
|
||||
public void Relations_1LessOrEqualThanStringEmpty_EqualsFalse()
|
||||
{
|
||||
string expression = "1<=\"\"";
|
||||
object result = Parser.EvaluateString(expression);
|
||||
Assert.AreEqual(false, result);
|
||||
}
|
||||
|
||||
#endregion Relations
|
||||
|
||||
#region BooleanOps
|
||||
|
||||
@@ -11,21 +11,18 @@ namespace VAR.ExpressionEvaluator
|
||||
|
||||
private static object EqualsOp(object leftValue, object rightValue)
|
||||
{
|
||||
if (leftValue == null && rightValue == null)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (leftValue == null || rightValue == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (leftValue is string && rightValue is string)
|
||||
{
|
||||
return string.Compare((string)leftValue, (string)rightValue) == 0;
|
||||
}
|
||||
|
||||
if (leftValue is string)
|
||||
{
|
||||
if (string.IsNullOrEmpty((string)leftValue))
|
||||
{
|
||||
leftValue = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (decimal.TryParse((string)leftValue, out decimal dec) == false)
|
||||
{
|
||||
@@ -33,7 +30,14 @@ namespace VAR.ExpressionEvaluator
|
||||
}
|
||||
leftValue = dec;
|
||||
}
|
||||
}
|
||||
if (rightValue is string)
|
||||
{
|
||||
if (string.IsNullOrEmpty((string)rightValue))
|
||||
{
|
||||
leftValue = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (decimal.TryParse((string)rightValue, out decimal dec) == false)
|
||||
{
|
||||
@@ -41,6 +45,16 @@ namespace VAR.ExpressionEvaluator
|
||||
}
|
||||
rightValue = dec;
|
||||
}
|
||||
}
|
||||
|
||||
if (leftValue == null && rightValue == null)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (leftValue == null || rightValue == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if ((leftValue is decimal) == false || (rightValue is decimal) == false)
|
||||
{
|
||||
|
||||
@@ -11,17 +11,18 @@ namespace VAR.ExpressionEvaluator
|
||||
|
||||
private static object GreaterOrEqualThanOp(object leftValue, object rightValue)
|
||||
{
|
||||
if (leftValue == null || rightValue == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (leftValue is string && rightValue is string)
|
||||
{
|
||||
return string.Compare((string)leftValue, (string)rightValue) >= 0;
|
||||
}
|
||||
|
||||
if (leftValue is string)
|
||||
{
|
||||
if (string.IsNullOrEmpty((string)leftValue))
|
||||
{
|
||||
leftValue = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (decimal.TryParse((string)leftValue, out decimal dec) == false)
|
||||
{
|
||||
@@ -29,7 +30,14 @@ namespace VAR.ExpressionEvaluator
|
||||
}
|
||||
leftValue = dec;
|
||||
}
|
||||
}
|
||||
if (rightValue is string)
|
||||
{
|
||||
if (string.IsNullOrEmpty((string)rightValue))
|
||||
{
|
||||
leftValue = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (decimal.TryParse((string)rightValue, out decimal dec) == false)
|
||||
{
|
||||
@@ -37,6 +45,12 @@ namespace VAR.ExpressionEvaluator
|
||||
}
|
||||
rightValue = dec;
|
||||
}
|
||||
}
|
||||
|
||||
if (leftValue == null || rightValue == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if ((leftValue is decimal) == false || (rightValue is decimal) == false)
|
||||
{
|
||||
|
||||
@@ -11,17 +11,18 @@ namespace VAR.ExpressionEvaluator
|
||||
|
||||
private static object GreaterThanOp(object leftValue, object rightValue)
|
||||
{
|
||||
if (leftValue == null || rightValue == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (leftValue is string && rightValue is string)
|
||||
{
|
||||
return string.Compare((string)leftValue, (string)rightValue) > 0;
|
||||
}
|
||||
|
||||
if (leftValue is string)
|
||||
{
|
||||
if (string.IsNullOrEmpty((string)leftValue))
|
||||
{
|
||||
leftValue = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (decimal.TryParse((string)leftValue, out decimal dec) == false)
|
||||
{
|
||||
@@ -29,7 +30,14 @@ namespace VAR.ExpressionEvaluator
|
||||
}
|
||||
leftValue = dec;
|
||||
}
|
||||
}
|
||||
if (rightValue is string)
|
||||
{
|
||||
if (string.IsNullOrEmpty((string)rightValue))
|
||||
{
|
||||
leftValue = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (decimal.TryParse((string)rightValue, out decimal dec) == false)
|
||||
{
|
||||
@@ -37,6 +45,12 @@ namespace VAR.ExpressionEvaluator
|
||||
}
|
||||
rightValue = dec;
|
||||
}
|
||||
}
|
||||
|
||||
if (leftValue == null || rightValue == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if ((leftValue is decimal) == false || (rightValue is decimal) == false)
|
||||
{
|
||||
|
||||
@@ -11,17 +11,18 @@ namespace VAR.ExpressionEvaluator
|
||||
|
||||
private static object LessOrEqualThanOp(object leftValue, object rightValue)
|
||||
{
|
||||
if (leftValue == null || rightValue == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (leftValue is string && rightValue is string)
|
||||
{
|
||||
return string.Compare((string)leftValue, (string)rightValue) <= 0;
|
||||
}
|
||||
|
||||
if (leftValue is string)
|
||||
{
|
||||
if (string.IsNullOrEmpty((string)leftValue))
|
||||
{
|
||||
leftValue = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (decimal.TryParse((string)leftValue, out decimal dec) == false)
|
||||
{
|
||||
@@ -29,7 +30,14 @@ namespace VAR.ExpressionEvaluator
|
||||
}
|
||||
leftValue = dec;
|
||||
}
|
||||
}
|
||||
if (rightValue is string)
|
||||
{
|
||||
if (string.IsNullOrEmpty((string)rightValue))
|
||||
{
|
||||
leftValue = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (decimal.TryParse((string)rightValue, out decimal dec) == false)
|
||||
{
|
||||
@@ -37,6 +45,12 @@ namespace VAR.ExpressionEvaluator
|
||||
}
|
||||
rightValue = dec;
|
||||
}
|
||||
}
|
||||
|
||||
if (leftValue == null || rightValue == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if ((leftValue is decimal) == false || (rightValue is decimal) == false)
|
||||
{
|
||||
|
||||
@@ -11,17 +11,18 @@ namespace VAR.ExpressionEvaluator
|
||||
|
||||
private static object LessThanOp(object leftValue, object rightValue)
|
||||
{
|
||||
if (leftValue == null || rightValue == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (leftValue is string && rightValue is string)
|
||||
{
|
||||
return string.Compare((string)leftValue, (string)rightValue) < 0;
|
||||
}
|
||||
|
||||
if (leftValue is string)
|
||||
{
|
||||
if (string.IsNullOrEmpty((string)leftValue))
|
||||
{
|
||||
leftValue = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (decimal.TryParse((string)leftValue, out decimal dec) == false)
|
||||
{
|
||||
@@ -29,7 +30,14 @@ namespace VAR.ExpressionEvaluator
|
||||
}
|
||||
leftValue = dec;
|
||||
}
|
||||
}
|
||||
if (rightValue is string)
|
||||
{
|
||||
if (string.IsNullOrEmpty((string)rightValue))
|
||||
{
|
||||
leftValue = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (decimal.TryParse((string)rightValue, out decimal dec) == false)
|
||||
{
|
||||
@@ -37,6 +45,12 @@ namespace VAR.ExpressionEvaluator
|
||||
}
|
||||
rightValue = dec;
|
||||
}
|
||||
}
|
||||
|
||||
if (leftValue == null || rightValue == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if ((leftValue is decimal) == false || (rightValue is decimal) == false)
|
||||
{
|
||||
|
||||
@@ -11,21 +11,18 @@ namespace VAR.ExpressionEvaluator
|
||||
|
||||
private static object NotEqualsOp(object leftValue, object rightValue)
|
||||
{
|
||||
if (leftValue == null && rightValue == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (leftValue == null || rightValue == null)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (leftValue is string && rightValue is string)
|
||||
{
|
||||
return string.Compare((string)leftValue, (string)rightValue) != 0;
|
||||
}
|
||||
|
||||
if (leftValue is string)
|
||||
{
|
||||
if (string.IsNullOrEmpty((string)leftValue))
|
||||
{
|
||||
leftValue = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (decimal.TryParse((string)leftValue, out decimal dec) == false)
|
||||
{
|
||||
@@ -33,7 +30,14 @@ namespace VAR.ExpressionEvaluator
|
||||
}
|
||||
leftValue = dec;
|
||||
}
|
||||
}
|
||||
if (rightValue is string)
|
||||
{
|
||||
if (string.IsNullOrEmpty((string)rightValue))
|
||||
{
|
||||
leftValue = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (decimal.TryParse((string)rightValue, out decimal dec) == false)
|
||||
{
|
||||
@@ -41,6 +45,16 @@ namespace VAR.ExpressionEvaluator
|
||||
}
|
||||
rightValue = dec;
|
||||
}
|
||||
}
|
||||
|
||||
if (leftValue == null && rightValue == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (leftValue == null || rightValue == null)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if ((leftValue is decimal) == false || (rightValue is decimal) == false)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user