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() -}