@@ -12,7 +12,6 @@ object DataframeUtil {
1212 actual : Array [Row ],
1313 expected : Array [Row ],
1414 fieldNames : Array [String ],
15- truncate : Int = 20 ,
1615 minColWidth : Int = 3
1716 ): String = {
1817 val sb = new StringBuilder
@@ -31,8 +30,8 @@ object DataframeUtil {
3130 .zipAll(expected, Row .empty, Row .empty)
3231 .map { case (actualRow, expectedRow) => (actualRow, expectedRow, actualRow.equals(expectedRow)) }
3332 val diff = fullJoinWithEquals.map { case (actualRow, expectedRow, rowsAreEqual) =>
34- val paddedActualRow = pad(actualRow, truncate , rowWidths)
35- val paddedExpectedRow = pad(expectedRow, truncate , rowWidths)
33+ val paddedActualRow = pad(actualRow.toSeq , rowWidths)
34+ val paddedExpectedRow = pad(expectedRow.toSeq , rowWidths)
3635 if (rowsAreEqual) {
3736 List (DarkGray (paddedActualRow.mkString(" |" )), DarkGray (paddedActualRow.mkString(" |" )))
3837 } else {
@@ -61,12 +60,12 @@ object DataframeUtil {
6160 val coloredDiff = withEquals.zipWithIndex
6261 .map {
6362 case ((actualRowField, expectedRowField, true ), i) =>
64- val paddedActualRow = padAny(actualRowField, truncate, rowWidths(i))
65- val paddedExpected = padAny(expectedRowField, truncate, rowWidths(i))
63+ val paddedActualRow = padAny(actualRowField, rowWidths(i))
64+ val paddedExpected = padAny(expectedRowField, rowWidths(i))
6665 (DarkGray (paddedActualRow), DarkGray (paddedExpected))
6766 case ((actualRowField, expectedRowField, false ), i) =>
68- val paddedActualRow = padAny(actualRowField, truncate, rowWidths(i))
69- val paddedExpected = padAny(expectedRowField, truncate, rowWidths(i))
67+ val paddedActualRow = padAny(actualRowField, rowWidths(i))
68+ val paddedExpected = padAny(expectedRowField, rowWidths(i))
7069 (Red (paddedActualRow), Green (paddedExpected))
7170 }
7271 val start = DarkGray (" " )
@@ -81,7 +80,7 @@ object DataframeUtil {
8180 }
8281 }
8382
84- val headerWithLeftPadding = pad(fieldNames, truncate, rowWidths)
83+ val headerWithLeftPadding = pad(fieldNames, rowWidths)
8584 val headerFields = List (headerWithLeftPadding.mkString(" |" ))
8685 val colWidths : Array [Int ] = getColWidths(minColWidth, diff)
8786
@@ -92,13 +91,10 @@ object DataframeUtil {
9291
9392 sb.append(separatorLine)
9493
95- headerFields.zipWithIndex
96- .map { case (cell, i) =>
97- if (truncate > 0 ) {
98- StringUtils .leftPad(cell, colWidths(i))
99- } else {
100- StringUtils .rightPad(cell, colWidths(i))
101- }
94+ headerFields
95+ .zip(colWidths)
96+ .map { case (cell, colWidth) =>
97+ StringUtils .leftPad(cell, colWidth)
10298 }
10399 .addString(sb, StringUtils .leftPad(" |" , largestIndexOffset), " |" , " |\n " )
104100 diff.zipWithIndex.map { case (actual :: expected :: Nil , i) =>
@@ -125,34 +121,14 @@ object DataframeUtil {
125121 sb.append(separatorLine).toString()
126122 }
127123
128- private def pad (row : Row , truncate : Int , colWidths : Array [Int ]): Seq [String ] =
129- pad(
130- row.toSeq.map { v =>
131- Option (v).map(_.toString).getOrElse(" null" )
132- },
133- truncate,
134- colWidths
135- )
124+ private def pad (items : Seq [Any ], colWidths : Array [Int ]): Seq [String ] =
125+ items.zip(colWidths).map { case (v, colWidth) => padAny(v, colWidth) }
136126
137- private def padAny (s : Any , truncate : Int , width : Int ) = {
127+ private def padAny (s : Any , width : Int ) = {
138128 val cell = Option (s).map(_.toString).getOrElse(" null" )
139- if (truncate > 0 ) {
140- StringUtils .leftPad(cell, width)
141- } else {
142- StringUtils .rightPad(cell, width)
143- }
129+ StringUtils .leftPad(cell, width)
144130 }
145131
146- private def pad (header : Seq [String ], truncate : Int , colWidths : Array [Int ]) =
147- header.zipWithIndex
148- .map { case (cell, i) =>
149- if (truncate > 0 ) {
150- StringUtils .leftPad(cell, colWidths(i))
151- } else {
152- StringUtils .rightPad(cell, colWidths(i))
153- }
154- }
155-
156132 private def getColWidths (minColWidth : Int , rows : Array [List [Str ]]) = {
157133 val numCols = rows.map(_.length).max
158134 // Initialise the width of each column to a minimum value
0 commit comments