| import org.jetbrains.kotlinx.dataframe.* |
| import org.jetbrains.kotlinx.dataframe.annotations.* |
| import org.jetbrains.kotlinx.dataframe.api.* |
| import org.jetbrains.kotlinx.dataframe.api.toDataFrame |
| import org.jetbrains.kotlinx.dataframe.io.* |
| |
| data class Name(val firstName: String, val lastName: String) |
| |
| data class Score(val subject: String, val value: Int) |
| |
| data class Student(val name: Name, val age: Int, val scores: List<Score>) |
| |
| fun box(): String { |
| val students = listOf( |
| Student(Name("Alice", "Cooper"), 15, listOf(Score("math", 4), Score("biology", 3))), |
| Student(Name("Bob", "Marley"), 20, listOf(Score("music", 5))), |
| ) |
| |
| val df = students.toDataFrame().groupBy { expr { name.firstName} } |
| .aggregate { |
| remove { age } into "a" |
| } |
| |
| df.compareSchemas(strict = true) |
| return "OK" |
| } |