public void Setup() { _dataFrame = new DataFrame(); _column = new PrimitiveColumn <int>("Int0", Enumerable.Range(0, 50000)); _other = _column.Clone(); _dataFrame.InsertColumn(0, _column); }
private void VerifyJoin(DataFrame join, DataFrame left, DataFrame right, JoinAlgorithm joinAlgorithm) { PrimitiveColumn <long> mapIndices = new PrimitiveColumn <long>("map", join.RowCount); for (long i = 0; i < join.RowCount; i++) { mapIndices[i] = i; } for (int i = 0; i < join.ColumnCount; i++) { BaseColumn joinColumn = join.Column(i); BaseColumn isEqual; if (joinAlgorithm == JoinAlgorithm.Left) { if (i < left.ColumnCount) { BaseColumn leftColumn = left.Column(i); isEqual = joinColumn == leftColumn; } else { int columnIndex = i - left.ColumnCount; BaseColumn rightColumn = right.Column(columnIndex); BaseColumn compareColumn = rightColumn.Length <= join.RowCount ? rightColumn.Clone(numberOfNullsToAppend: join.RowCount - rightColumn.Length) : rightColumn.Clone(mapIndices); isEqual = joinColumn == compareColumn; } } else if (joinAlgorithm == JoinAlgorithm.Right) { if (i < left.ColumnCount) { BaseColumn leftColumn = left.Column(i); BaseColumn compareColumn = leftColumn.Length <= join.RowCount ? leftColumn.Clone(numberOfNullsToAppend: join.RowCount - leftColumn.Length) : leftColumn.Clone(mapIndices); isEqual = joinColumn == compareColumn; } else { int columnIndex = i - left.ColumnCount; BaseColumn rightColumn = right.Column(columnIndex); isEqual = joinColumn == rightColumn; } } else if (joinAlgorithm == JoinAlgorithm.Inner) { if (i < left.ColumnCount) { BaseColumn leftColumn = left.Column(i); isEqual = joinColumn == leftColumn.Clone(mapIndices); } else { int columnIndex = i - left.ColumnCount; BaseColumn rightColumn = right.Column(columnIndex); isEqual = joinColumn == rightColumn.Clone(mapIndices); } } else { if (i < left.ColumnCount) { BaseColumn leftColumn = left.Column(i); isEqual = joinColumn == leftColumn.Clone(numberOfNullsToAppend: join.RowCount - leftColumn.Length); } else { int columnIndex = i - left.ColumnCount; BaseColumn rightColumn = right.Column(columnIndex); isEqual = joinColumn == rightColumn.Clone(numberOfNullsToAppend: join.RowCount - rightColumn.Length); } } for (int j = 0; j < join.RowCount; j++) { Assert.Equal(true, isEqual[j]); } } }