| import org.jetbrains.kotlinx.dataframe.* | |
| import org.jetbrains.kotlinx.dataframe.annotations.* | |
| import org.jetbrains.kotlinx.dataframe.api.* | |
| import org.jetbrains.kotlinx.dataframe.io.* | |
| fun box(): String { | |
| val df = dataFrameOf("a" to columnOf(1, null), "b" to columnOf(null, "")) | |
| // notNull { } operation keep nullability as is, and in many cases it's redundant | |
| val df1 = df.update { b }.notNull { "empty" } | |
| val schema = df1.compileTimeSchema() | |
| require(schema.column("b").nullable) | |
| df1.compareSchemas(strict = true) | |
| // Nothing at all happens | |
| val df2 = df.fillNulls { a }.notNull { 123 } | |
| df2.compareSchemas(strict = true) | |
| val df3 = df.update { a and b }.notNull { it } | |
| df3.compareSchemas(strict = true) | |
| val df4 = df.update { b }.notNull().with { "empty" } | |
| df4.compareSchemas(strict = true) | |
| return "OK" | |
| } |