Skip to content

Commit 0740a4f

Browse files
committed
More unit tests for merged table references
1 parent 12669c2 commit 0740a4f

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

src/XLParser.Tests/FormulaAnalysisTest.cs

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -451,6 +451,48 @@ public void StructuredTableReferenceMultipleHeaders()
451451
CollectionAssert.AreEqual(new[] {"Jan", "Mar"}, references[0].TableColumns);
452452
}
453453

454+
[TestMethod]
455+
public void StructuredTableReferenceIntersectColumns()
456+
{
457+
List<ParserReference> references = new FormulaAnalyzer("=SUM(Sales_2[Jan]:Sales_2[Feb])").ParserReferences().ToList();
458+
459+
Assert.AreEqual(1, references.Count);
460+
Assert.AreEqual(ReferenceType.Table, references.First().ReferenceType);
461+
Assert.AreEqual("Sales_2", references.First().Name);
462+
CollectionAssert.AreEqual(new string[] {}, references.First().TableSpecifiers);
463+
CollectionAssert.AreEqual(new[] {"Jan", "Feb"}, references.First().TableColumns);
464+
}
465+
466+
[TestMethod]
467+
public void StructuredTableReferenceIntersectDifferentSpecifiers()
468+
{
469+
List<ParserReference> references = new FormulaAnalyzer("=COUNTA(Sales_2[[#Headers],[Jan]]:Sales_2[[#Data],[Feb]])").ParserReferences().ToList();
470+
471+
Assert.AreEqual(1, references.Count);
472+
Assert.AreEqual(ReferenceType.Table, references.First().ReferenceType);
473+
Assert.AreEqual("Sales_2", references.First().Name);
474+
CollectionAssert.AreEqual(new string[] {}, references.First().TableSpecifiers);
475+
CollectionAssert.AreEqual(new[] {"Jan", "Feb"}, references.First().TableColumns);
476+
}
477+
478+
[TestMethod]
479+
public void StructuredTableReferenceIntersectDifferentTables()
480+
{
481+
List<ParserReference> references = new FormulaAnalyzer("=COUNTA(Sales_2[Jan]:Sales_4[Feb])").ParserReferences().ToList();
482+
483+
Assert.AreEqual(2, references.Count);
484+
485+
Assert.AreEqual(ReferenceType.Table, references[0].ReferenceType);
486+
Assert.AreEqual("Sales_2", references[0].Name);
487+
CollectionAssert.AreEqual(new string[] {}, references[0].TableSpecifiers);
488+
CollectionAssert.AreEqual(new[] {"Jan"}, references[0].TableColumns);
489+
490+
Assert.AreEqual(ReferenceType.Table, references[1].ReferenceType);
491+
Assert.AreEqual("Sales_4", references[1].Name);
492+
CollectionAssert.AreEqual(new string[] {}, references[1].TableSpecifiers);
493+
CollectionAssert.AreEqual(new[] {"Feb"}, references[1].TableColumns);
494+
}
495+
454496
[TestMethod]
455497
public void SheetWithUnderscore()
456498
{

0 commit comments

Comments
 (0)