Skip to content

Commit 55e2473

Browse files
Automated commit of generated code
1 parent 89db8e6 commit 55e2473

File tree

3 files changed

+64
-4
lines changed
  • core/generated-sources/src

3 files changed

+64
-4
lines changed

core/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/sort.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ public fun <T, C> DataFrame<T>.sortBy(columns: SortColumnsSelector<T, C>): DataF
155155
UnresolvedColumnsPolicy.Fail, columns
156156
)
157157

158-
public fun <T> DataFrame<T>.sortBy(vararg cols: ColumnReference<Comparable<*>?>): DataFrame<T> =
158+
public fun <T> DataFrame<T>.sortBy(vararg cols: ColumnReference<*>): DataFrame<T> =
159159
sortBy { cols.toColumnSet() }
160160

161161
public fun <T> DataFrame<T>.sortBy(vararg cols: String): DataFrame<T> = sortBy { cols.toColumnSet() }
@@ -180,7 +180,7 @@ public fun <T, C> DataFrame<T>.sortByDesc(vararg columns: KProperty<Comparable<C
180180

181181
public fun <T> DataFrame<T>.sortByDesc(vararg columns: String): DataFrame<T> = sortByDesc { columns.toColumnSet() }
182182

183-
public fun <T, C> DataFrame<T>.sortByDesc(vararg columns: ColumnReference<Comparable<C>?>): DataFrame<T> =
183+
public fun <T> DataFrame<T>.sortByDesc(vararg columns: ColumnReference<*>): DataFrame<T> =
184184
sortByDesc { columns.toColumnSet() }
185185

186186
// endregion
@@ -189,7 +189,7 @@ public fun <T, C> DataFrame<T>.sortByDesc(vararg columns: ColumnReference<Compar
189189

190190
public fun <T, G> GroupBy<T, G>.sortBy(vararg cols: String): GroupBy<T, G> = sortBy { cols.toColumnSet() }
191191

192-
public fun <T, G> GroupBy<T, G>.sortBy(vararg cols: ColumnReference<Comparable<*>?>): GroupBy<T, G> =
192+
public fun <T, G> GroupBy<T, G>.sortBy(vararg cols: ColumnReference<*>): GroupBy<T, G> =
193193
sortBy { cols.toColumnSet() }
194194

195195
public fun <T, G> GroupBy<T, G>.sortBy(vararg cols: KProperty<Comparable<*>?>): GroupBy<T, G> =
@@ -199,7 +199,7 @@ public fun <T, G, C> GroupBy<T, G>.sortBy(selector: SortColumnsSelector<G, C>):
199199

200200
public fun <T, G> GroupBy<T, G>.sortByDesc(vararg cols: String): GroupBy<T, G> = sortByDesc { cols.toColumnSet() }
201201

202-
public fun <T, G> GroupBy<T, G>.sortByDesc(vararg cols: ColumnReference<Comparable<*>?>): GroupBy<T, G> =
202+
public fun <T, G> GroupBy<T, G>.sortByDesc(vararg cols: ColumnReference<*>): GroupBy<T, G> =
203203
sortByDesc { cols.toColumnSet() }
204204

205205
public fun <T, G> GroupBy<T, G>.sortByDesc(vararg cols: KProperty<Comparable<*>?>): GroupBy<T, G> =

core/generated-sources/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/sort.kt

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
package org.jetbrains.kotlinx.dataframe.api
22

3+
import io.kotest.assertions.throwables.shouldThrowMessage
34
import io.kotest.matchers.shouldBe
45
import org.jetbrains.kotlinx.dataframe.DataColumn
6+
import org.jetbrains.kotlinx.dataframe.io.readDataFrame
57
import org.jetbrains.kotlinx.dataframe.nrow
8+
import org.jetbrains.kotlinx.dataframe.testResource
9+
import org.jetbrains.kotlinx.dataframe.testSets.*
10+
import org.jetbrains.kotlinx.dataframe.testSets.DsSalaries
611
import org.junit.Test
712

813
class SortDataColumn {
@@ -67,4 +72,27 @@ class SortDataColumn {
6772
col.sortWith { df1, df2 -> df1[a] - df2[a] } shouldBe sortedCol
6873
col.sortWith(compareBy { it[a] }) shouldBe sortedCol
6974
}
75+
76+
@Test
77+
fun `sort by nested column`() {
78+
val df = testResource("ds_salaries.csv").readDataFrame().cast<DsSalaries>()
79+
val aggregate = df.pivot(false) { companySize }.groupBy { companyLocation }.aggregate {
80+
maxOf { salaryInUsd } into "salary"
81+
maxBy { salaryInUsd } into "extra"
82+
}
83+
aggregate.sortBy(pathOf("L", "salary"))[0][pathOf("L", "salary")] shouldBe null
84+
aggregate.sortByDesc(pathOf("L", "salary"))[0][pathOf("L", "salary")] shouldBe 600_000
85+
}
86+
87+
@Test
88+
fun `sort by invalid nested column`() {
89+
val df = testResource("ds_salaries.csv").readDataFrame().cast<DsSalaries>()
90+
val aggregate = df.pivot(false) { companySize }.groupBy { companyLocation }.aggregate {
91+
maxOf { salaryInUsd } into "salary"
92+
maxBy { salaryInUsd } into "extra"
93+
}
94+
shouldThrowMessage("Can not use ColumnGroup as sort column") {
95+
aggregate.sortBy(pathOf("L", "extra"))
96+
}
97+
}
7098
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package org.jetbrains.kotlinx.dataframe.testSets
2+
3+
import org.jetbrains.kotlinx.dataframe.annotations.ColumnName
4+
import org.jetbrains.kotlinx.dataframe.annotations.DataSchema
5+
6+
// Dataset from https://www.kaggle.com/datasets/ruchi798/data-science-job-salaries
7+
@Suppress("unused")
8+
@DataSchema
9+
interface DsSalaries {
10+
@ColumnName("company_location")
11+
val companyLocation: String
12+
@ColumnName("company_size")
13+
val companySize: String
14+
@ColumnName("employee_residence")
15+
val employeeResidence: String
16+
@ColumnName("employment_type")
17+
val employmentType: String
18+
@ColumnName("experience_level")
19+
val experienceLevel: String
20+
@ColumnName("job_title")
21+
val jobTitle: String
22+
@ColumnName("remote_ratio")
23+
val remoteRatio: Int
24+
val salary: Int
25+
@ColumnName("salary_currency")
26+
val salaryCurrency: String
27+
@ColumnName("salary_in_usd")
28+
val salaryInUsd: Int
29+
val untitled: Int
30+
@ColumnName("work_year")
31+
val workYear: Int
32+
}

0 commit comments

Comments
 (0)