Skip to content

Commit e0dfae9

Browse files
Automated commit of generated code
1 parent da34aaa commit e0dfae9

File tree

3 files changed

+24
-0
lines changed
  • core/generated-sources/src

3 files changed

+24
-0
lines changed

core/generated-sources/src/main/kotlin/org/jetbrains/kotlinx/dataframe/impl/io/readJson.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,7 @@ internal fun fromJsonListAnyColumns(
215215
v.longOrNull != null -> collector.add(v.long)
216216
v.doubleOrNull != null -> collector.add(v.double)
217217
v.floatOrNull != null -> collector.add(v.float)
218+
else -> error("Malformed JSON element ${v::class}: $v")
218219
}
219220
}
220221

@@ -527,6 +528,7 @@ internal fun fromJsonListArrayAndValueColumns(
527528
v.longOrNull != null -> collector.add(v.long)
528529
v.doubleOrNull != null -> collector.add(v.double)
529530
v.floatOrNull != null -> collector.add(v.float)
531+
else -> error("Malformed JSON element ${v::class}: $v")
530532
}
531533
}
532534

core/generated-sources/src/test/kotlin/org/jetbrains/kotlinx/dataframe/io/CsvTests.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import org.jetbrains.kotlinx.dataframe.testResource
2222
import org.junit.Test
2323
import java.io.File
2424
import java.io.StringWriter
25+
import java.net.URL
2526
import java.util.Locale
2627
import kotlin.reflect.KClass
2728
import kotlin.reflect.typeOf
@@ -249,6 +250,14 @@ class CsvTests {
249250
producedFile.delete()
250251
}
251252

253+
@Test
254+
fun `check integrity of example data`() {
255+
val df = DataFrame.readCSV("../data/jetbrains_repositories.csv")
256+
df.columnNames() shouldBe listOf("full_name", "html_url", "stargazers_count", "topics", "watchers")
257+
df.columnTypes() shouldBe listOf(typeOf<String>(), typeOf<URL>(), typeOf<Int>(), typeOf<String>(), typeOf<Int>())
258+
df shouldBe DataFrame.readCSV("../data/jetbrains repositories.csv")
259+
}
260+
252261
companion object {
253262
private val simpleCsv = testCsv("testCSV")
254263
private val csvWithFrenchLocale = testCsv("testCSVwithFrenchLocale")

core/generated-sources/src/test/kotlin/org/jetbrains/kotlinx/dataframe/io/json.kt

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

33
import io.kotest.assertions.throwables.shouldNotThrowAny
4+
import io.kotest.assertions.throwables.shouldThrow
45
import io.kotest.matchers.collections.shouldBeIn
56
import io.kotest.matchers.shouldBe
67
import io.kotest.matchers.string.shouldContain
78
import io.kotest.matchers.string.shouldNotContain
89
import io.kotest.matchers.types.instanceOf
910
import io.kotest.matchers.types.shouldBeInstanceOf
11+
import kotlinx.serialization.json.Json
12+
import kotlinx.serialization.json.JsonElement
1013
import kotlinx.serialization.json.boolean
1114
import kotlinx.serialization.json.int
1215
import kotlinx.serialization.json.jsonArray
@@ -42,6 +45,7 @@ import org.jetbrains.kotlinx.dataframe.impl.io.SerializationKeys.METADATA
4245
import org.jetbrains.kotlinx.dataframe.impl.io.SerializationKeys.NCOL
4346
import org.jetbrains.kotlinx.dataframe.impl.io.SerializationKeys.NROW
4447
import org.jetbrains.kotlinx.dataframe.impl.io.SerializationKeys.VERSION
48+
import org.jetbrains.kotlinx.dataframe.impl.io.readJson
4549
import org.jetbrains.kotlinx.dataframe.impl.nothingType
4650
import org.jetbrains.kotlinx.dataframe.io.JSON.TypeClashTactic.ANY_COLUMNS
4751
import org.jetbrains.kotlinx.dataframe.io.JSON.TypeClashTactic.ARRAY_AND_VALUE_COLUMNS
@@ -1077,4 +1081,13 @@ class JsonTests {
10771081
val json = df.toJson()
10781082
DataFrame.readJsonStr(json) shouldBe df
10791083
}
1084+
1085+
@Test
1086+
fun `parse invalid literal`() {
1087+
// https://github.com/Kotlin/kotlinx.serialization/issues/2511
1088+
val json = Json.decodeFromString<JsonElement>("""[jetbrains, jetbrains-youtrack, youtrack, youtrack-api]""")
1089+
shouldThrow<IllegalStateException> {
1090+
readJson(json, emptyList())
1091+
}
1092+
}
10801093
}

0 commit comments

Comments
 (0)