diff --git a/core/build.gradle.kts b/core/build.gradle.kts
index dfae4bfe66..3c841629d9 100644
--- a/core/build.gradle.kts
+++ b/core/build.gradle.kts
@@ -6,9 +6,11 @@ plugins {
kotlin("plugin.serialization")
kotlin("jupyter.api") version libs.versions.kotlinJupyter
+ id("io.github.devcrocod.korro") version libs.versions.korro
id("org.jetbrains.dataframe.generator")
id("org.jetbrains.kotlinx.kover")
id("org.jmailen.kotlinter")
+ id("org.jetbrains.kotlinx.dataframe")
}
group = "org.jetbrains.kotlinx"
@@ -42,14 +44,64 @@ dependencies {
testImplementation(libs.jsoup)
}
+kotlin.sourceSets {
+ main {
+ kotlin.srcDir("build/generated/ksp/main/kotlin/")
+ }
+ test {
+ kotlin.srcDir("build/generated/ksp/test/kotlin/")
+ }
+}
+
tasks.lintKotlinMain {
exclude("**/*keywords*/**")
+ exclude {
+ it.name.endsWith(".Generated.kt")
+ }
+ exclude {
+ it.name.endsWith("\$Extensions.kt")
+ }
}
tasks.lintKotlinTest {
+ exclude {
+ it.name.endsWith(".Generated.kt")
+ }
+ exclude {
+ it.name.endsWith("\$Extensions.kt")
+ }
enabled = true
}
+korro {
+ docs = fileTree(rootProject.rootDir) {
+ include("docs/StardustDocs/topics/*.md")
+ }
+
+ samples = fileTree(project.projectDir) {
+ include("src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/*.kt")
+ include("src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/*.kt")
+ }
+
+ groupSamples {
+
+ beforeSample.set("\n")
+ afterSample.set("\n")
+
+ funSuffix("_properties") {
+ replaceText("NAME", "Properties")
+ }
+ funSuffix("_accessors") {
+ replaceText("NAME", "Accessors")
+ }
+ funSuffix("_strings") {
+ replaceText("NAME", "Strings")
+ }
+ beforeGroup.set("\n")
+ afterGroup.set("")
+ }
+}
+
kotlinter {
ignoreFailures = false
reporters = arrayOf("checkstyle", "plain")
@@ -61,7 +113,8 @@ kotlinter {
"experimental:argument-list-wrapping",
"experimental:annotation",
"max-line-length",
- "filename"
+ "filename",
+ "comment-spacing"
)
}
@@ -114,3 +167,12 @@ artifacts {
builtBy(tasks.jar)
}
}
+
+dataframes {
+ schema {
+ sourceSet = "test"
+ visibility = org.jetbrains.dataframe.gradle.DataSchemaVisibility.IMPLICIT_PUBLIC
+ data = "https://raw.githubusercontent.com/Kotlin/dataframe/master/data/jetbrains_repositories.csv"
+ name = "org.jetbrains.kotlinx.dataframe.samples.api.Repository"
+ }
+}
diff --git a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/DataRowApi.kt b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/DataRowApi.kt
index bb80ec64e0..2ba52d49b6 100644
--- a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/DataRowApi.kt
+++ b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/DataRowApi.kt
@@ -28,11 +28,6 @@ public inline fun AnyRow.valuesOf(): List = values().filterIsInst
@DataSchema
public data class NameValuePair(val name: String, val value: V)
-public val ColumnsContainer>.name: DataColumn @JvmName("NameValuePair_name") get() = this["name"] as DataColumn
-public val DataRow>.name: String @JvmName("NameValuePair_name") get() = this["name"] as String
-public val ColumnsContainer>.value: DataColumn @JvmName("NameValuePair_value") get() = this["value"] as DataColumn
-public val DataRow>.value: V @JvmName("NameValuePair_value") get() = this["value"] as V
-
// Without these overloads row.transpose().name or row.map { name } won't resolve
public val ColumnsContainer>.name: DataColumn @JvmName("NameValuePairAny_name") get() = this["name"] as DataColumn
public val DataRow>.name: String @JvmName("NameValuePairAny_name") get() = this["name"] as String
diff --git a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/describe.kt b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/describe.kt
index f42fbe6cbb..9c236c02dd 100644
--- a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/describe.kt
+++ b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/describe.kt
@@ -1,10 +1,8 @@
package org.jetbrains.kotlinx.dataframe.api
-import org.jetbrains.kotlinx.dataframe.ColumnsContainer
import org.jetbrains.kotlinx.dataframe.ColumnsSelector
import org.jetbrains.kotlinx.dataframe.DataColumn
import org.jetbrains.kotlinx.dataframe.DataFrame
-import org.jetbrains.kotlinx.dataframe.DataRow
import org.jetbrains.kotlinx.dataframe.annotations.DataSchema
import org.jetbrains.kotlinx.dataframe.columns.ColumnPath
import org.jetbrains.kotlinx.dataframe.columns.ColumnReference
@@ -31,33 +29,6 @@ public interface ColumnDescription {
public val max: Any
}
-public val ColumnsContainer.count: DataColumn @JvmName("ColumnDescription_count") get() = this["count"] as DataColumn
-public val DataRow.count: Int @JvmName("ColumnDescription_count") get() = this["count"] as Int
-public val ColumnsContainer.freq: DataColumn @JvmName("ColumnDescription_freq") get() = this["freq"] as DataColumn
-public val DataRow.freq: Int @JvmName("ColumnDescription_freq") get() = this["freq"] as Int
-public val ColumnsContainer.max: DataColumn @JvmName("ColumnDescription_max") get() = this["max"] as DataColumn
-public val DataRow.max: Any @JvmName("ColumnDescription_max") get() = this["max"] as Any
-public val ColumnsContainer.mean: DataColumn @JvmName("ColumnDescription_mean") get() = this["mean"] as DataColumn
-public val DataRow.mean: Double @JvmName("ColumnDescription_mean") get() = this["mean"] as Double
-public val ColumnsContainer.median: DataColumn @JvmName("ColumnDescription_median") get() = this["median"] as DataColumn
-public val DataRow.median: Any @JvmName("ColumnDescription_median") get() = this["median"] as Any
-public val ColumnsContainer.min: DataColumn @JvmName("ColumnDescription_min") get() = this["min"] as DataColumn
-public val DataRow.min: Any @JvmName("ColumnDescription_min") get() = this["min"] as Any
-public val ColumnsContainer.name: DataColumn @JvmName("ColumnDescription_name") get() = this["name"] as DataColumn
-public val DataRow.name: String @JvmName("ColumnDescription_name") get() = this["name"] as String
-public val ColumnsContainer.nulls: DataColumn @JvmName("ColumnDescription_nulls") get() = this["nulls"] as DataColumn
-public val DataRow.nulls: Int @JvmName("ColumnDescription_nulls") get() = this["nulls"] as Int
-public val ColumnsContainer.path: DataColumn @JvmName("ColumnDescription_path") get() = this["path"] as DataColumn
-public val DataRow.path: ColumnPath @JvmName("ColumnDescription_path") get() = this["path"] as ColumnPath
-public val ColumnsContainer.std: DataColumn @JvmName("ColumnDescription_std") get() = this["std"] as DataColumn
-public val DataRow.std: Double @JvmName("ColumnDescription_std") get() = this["std"] as Double
-public val ColumnsContainer.top: DataColumn @JvmName("ColumnDescription_top") get() = this["top"] as DataColumn
-public val DataRow.top: Any @JvmName("ColumnDescription_top") get() = this["top"] as Any
-public val ColumnsContainer.type: DataColumn @JvmName("ColumnDescription_type") get() = this["type"] as DataColumn
-public val DataRow.type: KType @JvmName("ColumnDescription_type") get() = this["type"] as KType
-public val ColumnsContainer.unique: DataColumn @JvmName("ColumnDescription_unique") get() = this["unique"] as DataColumn
-public val DataRow.unique: Int @JvmName("ColumnDescription_unique") get() = this["unique"] as Int
-
// endregion
// region DataColumn
diff --git a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/valueCounts.kt b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/valueCounts.kt
index 1b52d5de6f..7de0675a89 100644
--- a/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/valueCounts.kt
+++ b/core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/valueCounts.kt
@@ -1,11 +1,9 @@
package org.jetbrains.kotlinx.dataframe.api
import org.jetbrains.kotlinx.dataframe.Column
-import org.jetbrains.kotlinx.dataframe.ColumnsContainer
import org.jetbrains.kotlinx.dataframe.ColumnsSelector
import org.jetbrains.kotlinx.dataframe.DataColumn
import org.jetbrains.kotlinx.dataframe.DataFrame
-import org.jetbrains.kotlinx.dataframe.DataRow
import org.jetbrains.kotlinx.dataframe.annotations.DataSchema
import org.jetbrains.kotlinx.dataframe.impl.columns.toColumns
import org.jetbrains.kotlinx.dataframe.impl.nameGenerator
@@ -20,9 +18,6 @@ public interface ValueCount {
public val count: Int
}
-public val ColumnsContainer.count: DataColumn @JvmName("ValueCount_count") get() = this["count"] as DataColumn
-public val DataRow.count: Int @JvmName("ValueCount_count") get() = this["count"] as Int
-
// endregion
// region DataColumn
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/add.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/add.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/add.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/add.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/cast.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/cast.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/cast.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/cast.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/chunked.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/chunked.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/chunked.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/chunked.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/concat.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/concat.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/concat.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/concat.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/contains.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/contains.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/contains.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/contains.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/convert.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/convert.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/convert.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/convert.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/convertTo.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/convertTo.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/convertTo.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/convertTo.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/corr.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/corr.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/corr.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/corr.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/describe.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/describe.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/describe.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/describe.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/explode.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/explode.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/explode.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/explode.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/flatten.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/flatten.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/flatten.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/flatten.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/gather.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/gather.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/gather.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/gather.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/get.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/get.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/get.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/get.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/groupBy.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/groupBy.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/groupBy.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/groupBy.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/implode.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/implode.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/implode.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/implode.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/inferType.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/inferType.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/inferType.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/inferType.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/map.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/map.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/map.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/map.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/parse.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/parse.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/parse.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/parse.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/pivot.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/pivot.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/pivot.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/pivot.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/reorder.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/reorder.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/reorder.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/reorder.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/replace.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/replace.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/replace.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/replace.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/reverse.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/reverse.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/reverse.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/reverse.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/split.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/split.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/split.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/split.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/toDataFrame.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/toDataFrame.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/toDataFrame.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/toDataFrame.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/toList.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/toList.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/toList.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/api/toList.kt
diff --git a/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/codeGen/CodeGenerationTests.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/codeGen/CodeGenerationTests.kt
index fb810b95dd..9ac471f27f 100644
--- a/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/codeGen/CodeGenerationTests.kt
+++ b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/codeGen/CodeGenerationTests.kt
@@ -6,8 +6,6 @@ import org.jetbrains.kotlinx.dataframe.AnyRow
import org.jetbrains.kotlinx.dataframe.ColumnsContainer
import org.jetbrains.kotlinx.dataframe.DataColumn
import org.jetbrains.kotlinx.dataframe.DataRow
-import org.jetbrains.kotlinx.dataframe.api.ColumnDescription
-import org.jetbrains.kotlinx.dataframe.api.ValueCount
import org.jetbrains.kotlinx.dataframe.api.dataFrameOf
import org.jetbrains.kotlinx.dataframe.api.dropNulls
import org.jetbrains.kotlinx.dataframe.api.move
@@ -256,16 +254,6 @@ class CodeGenerationTests : BaseTest() {
}
}
- @Test
- fun generateApi() {
- val generator = CodeGenerator.create()
- val valueCount = generator.generate(InterfaceGenerationMode.None, extensionProperties = true)
- println(valueCount.declarations)
- println()
- val describe = generator.generate(InterfaceGenerationMode.None, extensionProperties = true)
- println(describe.declarations)
- }
-
@Test
fun patterns() {
"""^[\d]""".toRegex().matches("3fds")
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/io/PlaylistJsonTest.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/io/PlaylistJsonTest.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/io/PlaylistJsonTest.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/io/PlaylistJsonTest.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/io/json.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/io/json.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/io/json.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/io/json.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/Access.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/Access.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/Access.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/Access.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/Analyze.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/Analyze.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/Analyze.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/Analyze.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/ApiLevels.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/ApiLevels.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/ApiLevels.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/ApiLevels.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/Collections.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/Collections.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/Collections.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/Collections.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/Create.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/Create.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/Create.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/Create.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/DataRowApi.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/DataRowApi.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/DataRowApi.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/DataRowApi.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/Join.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/Join.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/Join.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/Join.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/Modify.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/Modify.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/Modify.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/Modify.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/Schemas.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/Schemas.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/Schemas.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/Schemas.kt
diff --git a/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/TestBase.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/TestBase.kt
new file mode 100644
index 0000000000..4a78c8e668
--- /dev/null
+++ b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/TestBase.kt
@@ -0,0 +1,39 @@
+package org.jetbrains.kotlinx.dataframe.samples.api
+
+import io.kotest.matchers.shouldBe
+import org.jetbrains.kotlinx.dataframe.DataRow
+import org.jetbrains.kotlinx.dataframe.annotations.DataSchema
+import org.jetbrains.kotlinx.dataframe.api.cast
+import org.jetbrains.kotlinx.dataframe.api.dataFrameOf
+import org.jetbrains.kotlinx.dataframe.api.group
+import org.jetbrains.kotlinx.dataframe.api.into
+
+public open class TestBase {
+
+ val df = dataFrameOf("firstName", "lastName", "age", "city", "weight", "isHappy")(
+ "Alice", "Cooper", 15, "London", 54, true,
+ "Bob", "Dylan", 45, "Dubai", 87, true,
+ "Charlie", "Daniels", 20, "Moscow", null, false,
+ "Charlie", "Chaplin", 40, "Milan", null, true,
+ "Bob", "Marley", 30, "Tokyo", 68, true,
+ "Alice", "Wolf", 20, null, 55, false,
+ "Charlie", "Byrd", 30, "Moscow", 90, true
+ ).group("firstName", "lastName").into("name").cast()
+
+ @DataSchema
+ interface Name {
+ val firstName: String
+ val lastName: String
+ }
+
+ @DataSchema
+ interface Person {
+ val age: Int
+ val city: String?
+ val name: DataRow
+ val weight: Int?
+ val isHappy: Boolean
+ }
+
+ infix fun T.willBe(expected: U?) = shouldBe(expected)
+}
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/animals/AnimalsTests.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/animals/AnimalsTests.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/animals/AnimalsTests.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/animals/AnimalsTests.kt
diff --git a/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/person/BaseTest.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/person/BaseTest.kt
index 1f71df824c..88a7439c3b 100644
--- a/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/person/BaseTest.kt
+++ b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/person/BaseTest.kt
@@ -1,9 +1,6 @@
package org.jetbrains.kotlinx.dataframe.testSets.person
-import org.jetbrains.kotlinx.dataframe.ColumnsContainer
-import org.jetbrains.kotlinx.dataframe.DataColumn
import org.jetbrains.kotlinx.dataframe.DataFrame
-import org.jetbrains.kotlinx.dataframe.DataRow
import org.jetbrains.kotlinx.dataframe.annotations.DataSchema
import org.jetbrains.kotlinx.dataframe.api.cast
import org.jetbrains.kotlinx.dataframe.api.column
@@ -18,15 +15,6 @@ interface Person {
val weight: Int?
}
-val DataRow.name: String get() = this["name"] as String
-val DataRow.age: Int get() = this["age"] as Int
-val DataRow.city: String? get() = this["city"] as String?
-val DataRow.weight: Int? get() = this["weight"] as Int?
-val ColumnsContainer.name: DataColumn get() = this["name"] as DataColumn
-val ColumnsContainer.age: DataColumn get() = this["age"] as DataColumn
-val ColumnsContainer.city: DataColumn get() = this["city"] as DataColumn
-val ColumnsContainer.weight: DataColumn get() = this["weight"] as DataColumn
-
open class BaseTest {
// Data set
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/person/DataFrameTreeTests.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/person/DataFrameTreeTests.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/person/DataFrameTreeTests.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/person/DataFrameTreeTests.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/person/JoinTests.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/person/JoinTests.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/person/JoinTests.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/person/JoinTests.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/person/PivotTests.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/person/PivotTests.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/person/PivotTests.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/person/PivotTests.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/person2/Base.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/person2/Base.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/person2/Base.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/person2/Base.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/person2/merge.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/person2/merge.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/person2/merge.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/person2/merge.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/person2/replace.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/person2/replace.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/person2/replace.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/person2/replace.kt
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/weather/SeriesTests.kt b/core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/weather/SeriesTests.kt
similarity index 100%
rename from tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/weather/SeriesTests.kt
rename to core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/weather/SeriesTests.kt
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index bf65b5a99d..f1ac3356d9 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -5,7 +5,7 @@ ktlint = "3.4.5"
kotlin = "1.7.20-RC"
dokka = "1.5.31"
libsPublisher = "0.0.60-dev-30"
-dataframe = "0.9.0-dev-1114"
+dataframe = "0.9.0-dev-1117"
korro = "0.1.1-dev-29"
kover = "0.6.0-Beta"
diff --git a/tests/build.gradle.kts b/tests/build.gradle.kts
index d5cc074cac..72ccbde329 100644
--- a/tests/build.gradle.kts
+++ b/tests/build.gradle.kts
@@ -37,7 +37,8 @@ kotlin.sourceSets {
korro {
docs = fileTree(rootProject.rootDir) {
- include("docs/StardustDocs/topics/*.md")
+ include("docs/StardustDocs/topics/read.md")
+ include("docs/StardustDocs/topics/write.md")
}
samples = fileTree(project.projectDir) {
@@ -98,12 +99,3 @@ kotlinter {
"filename"
)
}
-
-dataframes {
- schema {
- sourceSet = "test"
- visibility = DataSchemaVisibility.IMPLICIT_PUBLIC
- data = "https://raw.githubusercontent.com/Kotlin/dataframe/master/data/jetbrains_repositories.csv"
- name = "org.jetbrains.kotlinx.dataframe.samples.api.Repository"
- }
-}
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/Read.kt b/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/Read.kt
index 2f90850bdc..5ba2b33ed2 100644
--- a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/Read.kt
+++ b/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/samples/api/Read.kt
@@ -19,7 +19,7 @@ import org.jetbrains.kotlinx.dataframe.testJson
import org.junit.Test
import kotlin.reflect.typeOf
-class Read : TestBase() {
+class Read {
@Test
fun readCsvCustom() {
val file = testCsv("syntheticSample")
diff --git a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/person/BaseTest.kt b/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/person/BaseTest.kt
deleted file mode 100644
index 88a7439c3b..0000000000
--- a/tests/src/test/kotlin/org/jetbrains/kotlinx/dataframe/testSets/person/BaseTest.kt
+++ /dev/null
@@ -1,40 +0,0 @@
-package org.jetbrains.kotlinx.dataframe.testSets.person
-
-import org.jetbrains.kotlinx.dataframe.DataFrame
-import org.jetbrains.kotlinx.dataframe.annotations.DataSchema
-import org.jetbrains.kotlinx.dataframe.api.cast
-import org.jetbrains.kotlinx.dataframe.api.column
-import org.jetbrains.kotlinx.dataframe.api.dataFrameOf
-import org.jetbrains.kotlinx.dataframe.api.toColumnAccessor
-
-@DataSchema
-interface Person {
- val name: String
- val age: Int
- val city: String?
- val weight: Int?
-}
-
-open class BaseTest {
-
-// Data set
-
- val df = dataFrameOf("name", "age", "city", "weight")(
- "Alice", 15, "London", 54,
- "Bob", 45, "Dubai", 87,
- "Charlie", 20, "Moscow", null,
- "Charlie", 40, "Milan", null,
- "Bob", 30, "Tokyo", 68,
- "Alice", 20, null, 55,
- "Charlie", 30, "Moscow", 90
- )
-
- val typed: DataFrame = df.cast()
-
-// Manual Column Definitions
-
- val name by column()
- val age = column() named "age"
- val city = Person::city.toColumnAccessor()
- val weight by column()
-}