Skip to content

Commit d4f5021

Browse files
committed
Even more CultureInfo.InvarantCulture for the URC inspection and its tests
1 parent 238b5e6 commit d4f5021

File tree

4 files changed

+19
-16
lines changed

4 files changed

+19
-16
lines changed

Rubberduck.CodeAnalysis/Inspections/Concrete/UnreachableCaseInspection/ExpressionFilterFactory.cs

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,55 +2,56 @@
22
using Rubberduck.Parsing.Grammar;
33
using System;
44
using System.Collections.Generic;
5+
using System.Globalization;
56
using System.Linq;
67

78
namespace Rubberduck.Inspections.Concrete.UnreachableCaseInspection{
89

910
public static class ExpressionFilterFactory
1011
{
11-
private static Dictionary<string, (long typeMin, long typeMax)> IntegralNumberExtents = new Dictionary<string, (long typeMin, long typeMax)>()
12+
private static readonly Dictionary<string, (long typeMin, long typeMax)> IntegralNumberExtents = new Dictionary<string, (long typeMin, long typeMax)>()
1213
{
1314
[Tokens.LongLong] = (long.MinValue, long.MaxValue),
14-
[Tokens.Long] = (Int32.MinValue, Int32.MaxValue),
15-
[Tokens.Integer] = (Int16.MinValue, Int16.MaxValue),
16-
[Tokens.Int] = (Int16.MinValue, Int16.MaxValue),
15+
[Tokens.Long] = (int.MinValue, int.MaxValue),
16+
[Tokens.Integer] = (short.MinValue, short.MaxValue),
17+
[Tokens.Int] = (short.MinValue, short.MaxValue),
1718
[Tokens.Byte] = (byte.MinValue, byte.MaxValue)
1819
};
1920

2021
public static IExpressionFilter Create(string valueType)
2122
{
2223
if (IntegralNumberExtents.Keys.Contains(valueType))
2324
{
24-
var integralNumberFilter = new ExpressionFilterIntegral(valueType, long.Parse);
25+
var integralNumberFilter = new ExpressionFilterIntegral(valueType, s => long.Parse(s, CultureInfo.InvariantCulture));
2526
integralNumberFilter.SetExtents(IntegralNumberExtents[valueType].typeMin, IntegralNumberExtents[valueType].typeMax);
2627
return integralNumberFilter;
2728
}
28-
else if (valueType.Equals(Tokens.Double) || valueType.Equals(Tokens.Single))
29+
if (valueType.Equals(Tokens.Double) || valueType.Equals(Tokens.Single))
2930
{
30-
var floatingPointNumberFilter = new ExpressionFilter<double>(valueType, double.Parse);
31+
var floatingPointNumberFilter = new ExpressionFilter<double>(valueType, s => double.Parse(s, CultureInfo.InvariantCulture));
3132
if (valueType.Equals(Tokens.Single))
3233
{
3334
floatingPointNumberFilter.SetExtents(float.MinValue, float.MaxValue);
3435
}
3536
return floatingPointNumberFilter;
3637
}
37-
else if (valueType.Equals(Tokens.Currency))
38+
if (valueType.Equals(Tokens.Currency))
3839
{
3940
var fixedPointNumberFilter = new ExpressionFilter<decimal>(valueType, VBACurrency.Parse);
4041
fixedPointNumberFilter.SetExtents(VBACurrency.MinValue, VBACurrency.MaxValue);
4142
return fixedPointNumberFilter;
4243
}
43-
else if (valueType.Equals(Tokens.Boolean))
44+
if (valueType.Equals(Tokens.Boolean))
4445
{
4546
return new ExpressionFilterBoolean();
4647
}
4748

48-
else if (valueType.Equals(Tokens.Date))
49+
if (valueType.Equals(Tokens.Date))
4950
{
5051
return new ExpressionFilterDate();
5152
}
5253

53-
return new ExpressionFilter<string>(valueType, (a) => { return a; });
54+
return new ExpressionFilter<string>(valueType, a => a);
5455
}
5556
}
5657
}

RubberduckTests/Inspections/UnreachableCase/ExpressionFilterUnitTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -491,7 +491,7 @@ private IParseTreeValue CreateInspValueFrom(string valAndType)
491491
{
492492
var args = RetrieveDelimitedElements(valAndType, VALUE_TYPE_DELIMITER);
493493
var value = args[0];
494-
string declaredType = args[1].Equals(string.Empty) ? null : args[1];
494+
var declaredType = args[1].Equals(string.Empty) ? null : args[1];
495495
if (declaredType is null)
496496
{
497497
return ValueFactory.Create(value);
@@ -533,12 +533,12 @@ private IEnumerable<IRangeClauseExpression> RangeClauseTokensToExpressions(IEnum
533533
var operandDelimiters = clause.Where(ch => ch.Equals('_'));
534534
if (operandDelimiters.Count() == 2)
535535
{
536-
(IParseTreeValue lhs, IParseTreeValue rhs, string symbol) = GetBinaryOpValues(clause);
536+
var (lhs, rhs, symbol) = GetBinaryOpValues(clause);
537537
expressionClause = CreateRangeClauseExpression((lhs, rhs, symbol));
538538
}
539539
else if (operandDelimiters.Count() <= 1)
540540
{
541-
(IParseTreeValue operand, string symbol) = GetUnaryOpValues(clause);
541+
var (operand, symbol) = GetUnaryOpValues(clause);
542542
if (symbol.Equals(LogicalOperators.NOT))
543543
{
544544
expressionClause = new UnaryExpression(operand, symbol);

RubberduckTests/Inspections/UnreachableCase/ParseTreeExpressionEvaluatorUnitTests.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using Rubberduck.Inspections.Concrete.UnreachableCaseInspection;
33
using Rubberduck.Parsing.Grammar;
44
using System;
5+
using System.Globalization;
56

67
namespace RubberduckTests.Inspections.UnreachableCase
78
{
@@ -942,8 +943,8 @@ private IParseTreeValue CreateInspValueFrom(string valAndType, string conformTo
942943
{
943944
var compareLength = expected.Length > 5 ? 5 : expected.Length;
944945
var accuracy = Math.Pow(10, -1.0 * compareLength);
945-
var lhs = double.Parse(result.Token.Substring(0, compareLength));
946-
var rhs = double.Parse(expected.Substring(0, compareLength));
946+
var lhs = double.Parse(result.Token.Substring(0, compareLength), CultureInfo.InvariantCulture);
947+
var rhs = double.Parse(expected.Substring(0, compareLength), CultureInfo.InvariantCulture);
947948
Assert.IsTrue(Math.Abs(lhs - rhs) <= accuracy, $"Actual={result.Token} Expected={expected}");
948949
return (result,result);
949950
}

RubberduckTests/UnitTesting/EngineTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ Public Sub TestMethod1()
4545
int refreshes = 0;
4646
engine.TestsRefreshed += (sender, args) => refreshes++;
4747
parser.Parse(new CancellationTokenSource());
48+
var status = state.Status;
4849
if (!engine.CanRun)
4950
{
5051
Assert.Inconclusive("Parser Error");

0 commit comments

Comments
 (0)