Skip to content

Commit 720085a

Browse files
committed
testBigMixedColumn
1 parent bf53ec1 commit 720085a

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

dataframe-arrow/src/test/kotlin/org/jetbrains/kotlinx/dataframe/io/ArrowKtTest.kt

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -498,6 +498,28 @@ internal class ArrowKtTest {
498498
DataFrame.readArrowFeather(data) shouldBe dataFrame
499499
}
500500

501+
@Test
502+
fun testBigMixedColumn() {
503+
val dataFrame = dataFrameOf(bigMixedColumn)
504+
val warnings = ArrayList<ConvertingMismatch>()
505+
val writer = dataFrame.arrowWriter(
506+
targetSchema = Schema(listOf(
507+
Field("bigMixedColumn", FieldType.nullable(ArrowType.Int(64, true)), emptyList())
508+
)),
509+
mode = ArrowWriter.Mode.LOYAL
510+
) {
511+
warnings.add(it)
512+
}
513+
val stream = ByteArrayOutputStream()
514+
writer.writeArrowFeather(stream)
515+
val data = stream.toByteArray()
516+
517+
assert(warnings.filterIsInstance<ConvertingMismatch.TypeConversionFail.ConversionFailIgnored>().size == 1)
518+
assert(warnings.filterIsInstance<ConvertingMismatch.SavedAsString>().size == 1)
519+
520+
DataFrame.readArrowFeather(data)["bigMixedColumn"] shouldBe dataFrame[bigMixedColumn].map { it.toString()}
521+
}
522+
501523
@Test
502524
fun testTimeStamp() {
503525
val dates = listOf(

dataframe-arrow/src/test/kotlin/org/jetbrains/kotlinx/dataframe/io/examplesToWrite.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,3 +192,15 @@ val bigStringColumn = run {
192192
}
193193
DataColumn.createValueColumn("bigStringColumn", list)
194194
}
195+
196+
val bigMixedColumn = run {
197+
val list = ArrayList<Any>()
198+
for (i in 0 .. 32768) {
199+
list.add(i * i)
200+
}
201+
list.add("Dirty data")
202+
for (i in 32768 downTo 0) {
203+
list.add(i * i)
204+
}
205+
DataColumn.createValueColumn("bigMixedColumn", list)
206+
}

0 commit comments

Comments
 (0)