blob: 6e407b110ba80b89d14ff7c1e3bfdab7fc70f46e [file]
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 A(val str: String, val i: Int)
data class Person(val firstName: String, val lastName: String, val age: Int, val city: String?)
data class Group(val id: String, val participants: List<Person>)
fun box(): String {
val df = dataFrameOf(
"col" to listOf(A("123", 321))
)
val res = df.unfold { col }
val str: String = res.col.str[0]
val i: Int = res.col.i[0]
val df1 = dataFrameOf(
"col" to listOf(
Group("1", listOf(
Person("Alice", "Cooper", 15, "London"),
Person("Bob", "Dylan", 45, "Dubai")
)),
Group("2", listOf(
Person("Charlie", "Daniels", 20, "Moscow"),
Person("Charlie", "Chaplin", 40, "Milan"),
)),
)
)
val res1: DataColumn<List<Person>> = df1.unfold { col }.col.participants
val res2: DataColumn<DataFrame<*>> = df1.unfold(maxDepth = 2) { col }.col.participants
val res3: DataColumn<String> = df1.unfold(maxDepth = 2) { col }.col.participants[0].firstName
val df2 = dataFrameOf(
"int" to listOf(1, 2, 3, 4)
)
val res4: DataColumn<Int> = df2.unfold { int }.int
return "OK"
}