Skip to content

Commit 2df4ca2

Browse files
committed
Add documentation for replaceAll
1 parent 7f8f8e0 commit 2df4ca2

File tree

6 files changed

+753
-0
lines changed

6 files changed

+753
-0
lines changed

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

+14
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ import org.jetbrains.kotlinx.dataframe.api.remove
7373
import org.jetbrains.kotlinx.dataframe.api.rename
7474
import org.jetbrains.kotlinx.dataframe.api.reorder
7575
import org.jetbrains.kotlinx.dataframe.api.replace
76+
import org.jetbrains.kotlinx.dataframe.api.replaceAll
7677
import org.jetbrains.kotlinx.dataframe.api.reverse
7778
import org.jetbrains.kotlinx.dataframe.api.schema
7879
import org.jetbrains.kotlinx.dataframe.api.select
@@ -174,6 +175,19 @@ class Modify : TestBase() {
174175
// SampleEnd
175176
}
176177

178+
@Test
179+
@TransformDataFrameExpressions
180+
fun replaceAll() {
181+
// SampleStart
182+
functions.replaceAll(
183+
"AnyFrame" to "DataFrame",
184+
"DataFrame<*>" to "DataFrame",
185+
"DataRow<*>" to "DataRow",
186+
"DataColumn<T>" to "DataColumn"
187+
) { receiverType and returnType }
188+
// SampleEnd
189+
}
190+
177191
@Test
178192
@TransformDataFrameExpressions
179193
fun convert() {

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

+114
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package org.jetbrains.kotlinx.dataframe.samples.api
33
import io.kotest.matchers.should
44
import io.kotest.matchers.shouldBe
55
import io.kotest.matchers.shouldNotBe
6+
import org.jetbrains.kotlinx.dataframe.DataFrame
67
import org.jetbrains.kotlinx.dataframe.DataRow
78
import org.jetbrains.kotlinx.dataframe.annotations.DataSchema
89
import org.jetbrains.kotlinx.dataframe.api.asColumnGroup
@@ -18,6 +19,7 @@ import org.jetbrains.kotlinx.dataframe.api.to
1819
import org.jetbrains.kotlinx.dataframe.columns.ColumnWithPath
1920
import org.jetbrains.kotlinx.dataframe.explainer.PluginCallbackProxy
2021
import org.jetbrains.kotlinx.dataframe.impl.columns.asValueColumn
22+
import org.jetbrains.kotlinx.dataframe.io.readJsonStr
2123
import org.junit.After
2224
import org.junit.Before
2325

@@ -108,6 +110,118 @@ public open class TestBase {
108110

109111
infix fun <T, U : T> T.willBe(expected: U?) = shouldBe(expected)
110112

113+
@DataSchema
114+
interface Functions {
115+
val receiverType: String
116+
val name: String
117+
val parameters: List<String>
118+
val returnType: String
119+
}
120+
121+
val functions = DataFrame.readJsonStr("""
122+
[{
123+
"receiverType": "DataRow<*>",
124+
"name": "rowStd",
125+
"parameters": ["skipNA: Boolean = skipNA_default", "ddof: Int = ddof_default"],
126+
"returnType": "Double"
127+
}, {
128+
"receiverType": "DataRow<*>",
129+
"name": "rowStdOf",
130+
"parameters": ["ddof: Int = ddof_default"],
131+
"returnType": "Double"
132+
}, {
133+
"receiverType": "DataFrame",
134+
"name": "stdFor",
135+
"parameters": ["skipNA: Boolean = skipNA_default", "ddof: Int = ddof_default", "columns: ColumnsForAggregateSelector<T, Number?>"],
136+
"returnType": "DataRow"
137+
}, {
138+
"receiverType": "DataFrame",
139+
"name": "replace",
140+
"parameters": ["columns: ColumnsSelector<T, C>"],
141+
"returnType": "ReplaceClause"
142+
}, {
143+
"receiverType": "DataFrame",
144+
"name": "replaceAll",
145+
"parameters": ["vararg valuePairs: Pair<Any?, Any?>", "columns: ColumnsSelector<T, *> = { colsAtAnyDepth { !it.isColumnGroup() } }"],
146+
"returnType": "DataFrame"
147+
}, {
148+
"receiverType": "DataFrame",
149+
"name": "dropWhile",
150+
"parameters": ["predicate: RowFilter<T>"],
151+
"returnType": "DataFrame"
152+
}, {
153+
"receiverType": "DataFrame",
154+
"name": "copy",
155+
"parameters": [],
156+
"returnType": "DataFrame"
157+
}, {
158+
"receiverType": "DataFrame",
159+
"name": "tail",
160+
"parameters": ["numRows: Int = 5"],
161+
"returnType": "DataFrame"
162+
}, {
163+
"receiverType": "DataFrame",
164+
"name": "mapToFrame",
165+
"parameters": ["body: AddDsl<T>.() -> Unit"],
166+
"returnType": "AnyFrame"
167+
}, {
168+
"receiverType": "DataFrame<*>",
169+
"name": "toMap",
170+
"parameters": [],
171+
"returnType": "Map<String, List<Any?>>"
172+
}, {
173+
"receiverType": "DataFrame",
174+
"name": "asGroupBy",
175+
"parameters": ["groupedColumnName: String"],
176+
"returnType": "GroupBy"
177+
}, {
178+
"receiverType": "DataFrame",
179+
"name": "select",
180+
"parameters": ["columns: ColumnsSelector<T, *>"],
181+
"returnType": "DataFrame"
182+
}, {
183+
"receiverType": "DataFrame",
184+
"name": "split",
185+
"parameters": ["columns: ColumnsSelector<T, C?>"],
186+
"returnType": "Split"
187+
}, {
188+
"receiverType": "DataRow<*>",
189+
"name": "allNA",
190+
"parameters": [],
191+
"returnType": "Boolean"
192+
}, {
193+
"receiverType": "DataRow<*>",
194+
"name": "rowMean",
195+
"parameters": ["skipNA: Boolean = skipNA_default"],
196+
"returnType": "Double"
197+
}, {
198+
"receiverType": "DataRow<*>",
199+
"name": "rowMeanOf",
200+
"parameters": [],
201+
"returnType": "Double"
202+
}, {
203+
"receiverType": "DataFrame",
204+
"name": "meanFor",
205+
"parameters": ["skipNA: Boolean = skipNA_default", "columns: ColumnsForAggregateSelector<T, C?>"],
206+
"returnType": "DataRow"
207+
}, {
208+
"receiverType": "DataFrame",
209+
"name": "fillNulls",
210+
"parameters": ["columns: ColumnsSelector<T, C?>"],
211+
"returnType": "Update"
212+
}, {
213+
"receiverType": "DataFrame",
214+
"name": "fillNaNs",
215+
"parameters": ["columns: ColumnsSelector<T, C>"],
216+
"returnType": "Update"
217+
}, {
218+
"receiverType": "DataFrame",
219+
"name": "fillNA",
220+
"parameters": ["columns: ColumnsSelector<T, C?>"],
221+
"returnType": "Update"
222+
}]
223+
""".trimIndent()).cast<Functions>(verify = true)
224+
111225
/**
112226
* Asserts that all elements of the iterable are equal to each other
113227
*/

core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/Modify.kt

+13
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ import org.jetbrains.kotlinx.dataframe.api.remove
7373
import org.jetbrains.kotlinx.dataframe.api.rename
7474
import org.jetbrains.kotlinx.dataframe.api.reorder
7575
import org.jetbrains.kotlinx.dataframe.api.replace
76+
import org.jetbrains.kotlinx.dataframe.api.replaceAll
7677
import org.jetbrains.kotlinx.dataframe.api.reverse
7778
import org.jetbrains.kotlinx.dataframe.api.schema
7879
import org.jetbrains.kotlinx.dataframe.api.select
@@ -174,6 +175,18 @@ class Modify : TestBase() {
174175
// SampleEnd
175176
}
176177

178+
@Test
179+
@TransformDataFrameExpressions
180+
fun replaceAll() {
181+
// SampleStart
182+
functions.replaceAll(
183+
"DataFrame<*>" to "DataFrame",
184+
"DataRow<*>" to "DataRow",
185+
"AnyRow" to "DataRow",
186+
) { receiverType and returnType }
187+
// SampleEnd
188+
}
189+
177190
@Test
178191
@TransformDataFrameExpressions
179192
fun convert() {

core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/TestBase.kt

+109
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package org.jetbrains.kotlinx.dataframe.samples.api
33
import io.kotest.matchers.should
44
import io.kotest.matchers.shouldBe
55
import io.kotest.matchers.shouldNotBe
6+
import org.jetbrains.kotlinx.dataframe.DataFrame
67
import org.jetbrains.kotlinx.dataframe.DataRow
78
import org.jetbrains.kotlinx.dataframe.annotations.DataSchema
89
import org.jetbrains.kotlinx.dataframe.api.asColumnGroup
@@ -18,6 +19,7 @@ import org.jetbrains.kotlinx.dataframe.api.to
1819
import org.jetbrains.kotlinx.dataframe.columns.ColumnWithPath
1920
import org.jetbrains.kotlinx.dataframe.explainer.PluginCallbackProxy
2021
import org.jetbrains.kotlinx.dataframe.impl.columns.asValueColumn
22+
import org.jetbrains.kotlinx.dataframe.io.readJsonStr
2123
import org.junit.After
2224
import org.junit.Before
2325

@@ -108,6 +110,113 @@ public open class TestBase {
108110

109111
infix fun <T, U : T> T.willBe(expected: U?) = shouldBe(expected)
110112

113+
@DataSchema
114+
interface Functions {
115+
val receiverType: String
116+
val name: String
117+
val parameters: List<String>
118+
val returnType: String
119+
}
120+
121+
val functions = DataFrame.readJsonStr("""
122+
[{
123+
"receiverType": "DataRow<*>",
124+
"name": "rowStd",
125+
"parameters": ["skipNA: Boolean = skipNA_default", "ddof: Int = ddof_default"],
126+
"returnType": "Double"
127+
}, {
128+
"receiverType": "DataRow<*>",
129+
"name": "rowStdOf",
130+
"parameters": ["ddof: Int = ddof_default"],
131+
"returnType": "Double"
132+
}, {
133+
"receiverType": "DataFrame",
134+
"name": "stdFor",
135+
"parameters": ["skipNA: Boolean = skipNA_default", "ddof: Int = ddof_default", "columns: ColumnsForAggregateSelector<T, Number?>"],
136+
"returnType": "DataRow"
137+
}, {
138+
"receiverType": "DataFrame",
139+
"name": "replace",
140+
"parameters": ["columns: ColumnsSelector<T, C>"],
141+
"returnType": "ReplaceClause"
142+
}, {
143+
"receiverType": "DataFrame",
144+
"name": "copy",
145+
"parameters": [],
146+
"returnType": "DataFrame"
147+
},{
148+
"receiverType": "AnyRow",
149+
"name": "transposeTo",
150+
"parameters": [],
151+
"returnType": "DataFrame"
152+
}, {
153+
"receiverType": "DataFrame",
154+
"name": "tail",
155+
"parameters": ["numRows: Int = 5"],
156+
"returnType": "DataFrame"
157+
}, {
158+
"receiverType": "DataFrame",
159+
"name": "mapToFrame",
160+
"parameters": ["body: AddDsl<T>.() -> Unit"],
161+
"returnType": "AnyFrame"
162+
}, {
163+
"receiverType": "DataFrame",
164+
"name": "asGroupBy",
165+
"parameters": ["groupedColumnName: String"],
166+
"returnType": "GroupBy"
167+
}, {
168+
"receiverType": "DataFrame",
169+
"name": "select",
170+
"parameters": ["columns: ColumnsSelector<T, *>"],
171+
"returnType": "DataFrame"
172+
}, {
173+
"receiverType": "DataFrame",
174+
"name": "split",
175+
"parameters": ["columns: ColumnsSelector<T, C?>"],
176+
"returnType": "Split"
177+
}, {
178+
"receiverType": "DataRow<*>",
179+
"name": "allNA",
180+
"parameters": [],
181+
"returnType": "Boolean"
182+
}, {
183+
"receiverType": "DataRow<*>",
184+
"name": "rowMean",
185+
"parameters": ["skipNA: Boolean = skipNA_default"],
186+
"returnType": "Double"
187+
}, {
188+
"receiverType": "DataRow<*>",
189+
"name": "rowMeanOf",
190+
"parameters": [],
191+
"returnType": "Double"
192+
}, {
193+
"receiverType": "DataFrame",
194+
"name": "meanFor",
195+
"parameters": ["skipNA: Boolean = skipNA_default", "columns: ColumnsForAggregateSelector<T, C?>"],
196+
"returnType": "DataRow"
197+
}, {
198+
"receiverType": "DataFrame",
199+
"name": "fillNulls",
200+
"parameters": ["columns: ColumnsSelector<T, C?>"],
201+
"returnType": "Update"
202+
}, {
203+
"receiverType": "DataFrame",
204+
"name": "fillNaNs",
205+
"parameters": ["columns: ColumnsSelector<T, C>"],
206+
"returnType": "Update"
207+
}, {
208+
"receiverType": "DataFrame",
209+
"name": "fillNA",
210+
"parameters": ["columns: ColumnsSelector<T, C?>"],
211+
"returnType": "Update"
212+
}, {
213+
"receiverType": "DataFrame<*>",
214+
"name": "toListOf",
215+
"parameters": [],
216+
"returnType": "List<T>"
217+
}]
218+
""".trimIndent()).cast<Functions>(verify = true)
219+
111220
/**
112221
* Asserts that all elements of the iterable are equal to each other
113222
*/

0 commit comments

Comments
 (0)