Skip to content

Commit 815f9ec

Browse files
committed
Add documentation for replaceAll
1 parent 7f8f8e0 commit 815f9ec

File tree

6 files changed

+749
-0
lines changed

6 files changed

+749
-0
lines changed

core/generated-sources/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/generated-sources/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
*/

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

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

0 commit comments

Comments
 (0)