Skip to content

Commit 13d4fe1

Browse files
committed
added tests for empty delimStr, csv and tsv
1 parent d60b5de commit 13d4fe1

File tree

1 file changed

+35
-0
lines changed
  • core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/io

1 file changed

+35
-0
lines changed

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

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import org.jetbrains.kotlinx.dataframe.api.dataFrameOf
1313
import org.jetbrains.kotlinx.dataframe.api.group
1414
import org.jetbrains.kotlinx.dataframe.api.groupBy
1515
import org.jetbrains.kotlinx.dataframe.api.into
16+
import org.jetbrains.kotlinx.dataframe.api.isEmpty
1617
import org.jetbrains.kotlinx.dataframe.api.schema
1718
import org.jetbrains.kotlinx.dataframe.api.toStr
1819
import org.jetbrains.kotlinx.dataframe.ncol
@@ -282,6 +283,40 @@ class CsvTests {
282283
df.columnNames() shouldBe listOf("Column1", "Column2")
283284
}
284285

286+
@Test
287+
fun `read empty delimStr or CSV`() {
288+
val emptyDelimStr = DataFrame.readDelimStr("")
289+
emptyDelimStr shouldBe DataFrame.empty()
290+
291+
val emptyDelimFile = DataFrame.readDelim(File.createTempFile("empty", "csv").reader())
292+
emptyDelimFile shouldBe DataFrame.empty()
293+
294+
val emptyCsvFile = DataFrame.readCSV(File.createTempFile("empty", "csv"))
295+
emptyCsvFile shouldBe DataFrame.empty()
296+
297+
val emptyCsvFileManualHeader = DataFrame.readCSV(
298+
file = File.createTempFile("empty", "csv"),
299+
header = listOf("a", "b", "c"),
300+
)
301+
emptyCsvFileManualHeader.apply {
302+
isEmpty() shouldBe true
303+
columnNames() shouldBe listOf("a", "b", "c")
304+
columnTypes() shouldBe listOf(typeOf<String>(), typeOf<String>(), typeOf<String>())
305+
}
306+
307+
val emptyCsvFileWithHeader = DataFrame.readCSV(
308+
file = File.createTempFile("empty", "csv").also { it.writeText("a,b,c") },
309+
)
310+
emptyCsvFileWithHeader.apply {
311+
isEmpty() shouldBe true
312+
columnNames() shouldBe listOf("a", "b", "c")
313+
columnTypes() shouldBe listOf(typeOf<String>(), typeOf<String>(), typeOf<String>())
314+
}
315+
316+
val emptyTsvStr = DataFrame.readTSV(File.createTempFile("empty", "tsv"))
317+
emptyTsvStr shouldBe DataFrame.empty()
318+
}
319+
285320
companion object {
286321
private val simpleCsv = testCsv("testCSV")
287322
private val csvWithFrenchLocale = testCsv("testCSVwithFrenchLocale")

0 commit comments

Comments
 (0)