| import org.jetbrains.kotlinx.dataframe.* | |
| import org.jetbrains.kotlinx.dataframe.annotations.* | |
| import org.jetbrains.kotlinx.dataframe.api.* | |
| import org.jetbrains.kotlinx.dataframe.io.* | |
| data class Nested(val i: Double?) | |
| data class Record(val a: String?, val b: Int?, val nested: Nested) | |
| fun box(): String { | |
| val df = listOf(Record("112", 42, Nested(3.0))).toDataFrame(maxDepth = 1) | |
| df.dropNulls { a and b }.let { res -> | |
| val col1: DataColumn<String> = res.a | |
| val col2: DataColumn<Int> = res.b | |
| } | |
| // dropNulls whereAllNull = true sometimes doesn't have any effect on nullability of columns | |
| val df1 = dataFrameOf("a" to columnOf(null, 1), "b" to columnOf("str", null)) | |
| df1.dropNulls(whereAllNull = true) { a and b }.let { res -> | |
| val schema = res.compileTimeSchema() | |
| assert(schema.column("a").nullable) | |
| assert(schema.column("b").nullable) | |
| res.compareSchemas(strict = true) | |
| } | |
| df1.dropNulls(whereAllNull = true).let { res -> | |
| val schema = res.compileTimeSchema() | |
| assert(schema.column("a").nullable) | |
| assert(schema.column("b").nullable) | |
| res.compareSchemas(strict = true) | |
| } | |
| return "OK" | |
| } |