Dev zelenyy 2 #29

Closed
Zelenyy wants to merge 8 commits from dev-zelenyy-2 into dev
2 changed files with 91 additions and 6 deletions

View File

@ -4,6 +4,7 @@ import hep.dataforge.context.Global
import java.nio.file.Files
import kotlin.test.Test
import kotlin.test.assertEquals
import kotlin.test.assertTrue
class FileBinaryTest {
val envelope = Envelope {
@ -53,4 +54,30 @@ class FileBinaryTest {
assertEquals(binary.size.toInt(), binary.toBytes().size)
}
@Test
fun testMultyPartFileData() {
val envelopeList = (0..5).map {
val dataFile = Files.createTempFile("dataforge_test_bin_$it", ".bin")
dataFile.toFile().writeText(DoubleArray(80000) { it.toDouble() }.joinToString())
val envelopeFromFile = Envelope {
meta {
"a" put "AAA"
"b" put 22.2
}
dataType = "hep.dataforge.satellite"
dataID = "cellDepositTest$it" // добавил только что
data = dataFile.asBinary()
}
envelopeFromFile
}
val envelope = Envelope {
multipart(TaggedEnvelopeFormat, envelopeList)
}
println(envelopeList.map { it.data?.size }.joinToString(" "))
println(envelope.data?.size)
assertTrue { envelope.data!!.size > envelopeList.map { it.data!!.size }.sum() }
}
}

View File

@ -1,9 +1,13 @@
package hep.dataforge.io
import hep.dataforge.context.Global
import java.nio.ByteBuffer
import java.nio.file.Files
import java.util.*
import kotlin.test.Test
import kotlin.test.assertEquals
import kotlin.test.assertTrue
import kotlin.test.fail
class FileEnvelopeTest {
@ -31,14 +35,68 @@ class FileEnvelopeTest {
}
}
@Test
fun testFileWriteTagged() {
val tmpPath = Files.createTempFile("dataforge_test", ".df")
Global.io.writeEnvelopeFile(tmpPath, envelope)
assertTrue { tmpPath.toFile().length() > 0 }
}
@Test
fun testFileWriteReadTagged() {
val tmpPath = Files.createTempFile("dataforge_test", ".df")
Global.io.writeEnvelopeFile(tmpPath, envelope)
println(tmpPath.toUri())
val restored: Envelope = Global.io.readEnvelopeFile(tmpPath)!!
assertTrue { envelope.contentEquals(restored) }
}
@Test
fun testFileWriteTagless() {
val tmpPath = Files.createTempFile("dataforge_test", ".df")
Global.io.writeEnvelopeFile(tmpPath, envelope, envelopeFormat = TaglessEnvelopeFormat)
assertTrue { tmpPath.toFile().length() > 0 }
}
@Test
fun testFileWriteReadTagless() {
Global.io.run {
val tmpPath = Files.createTempFile("dataforge_test_tagless", ".df")
writeEnvelopeFile(tmpPath, envelope, envelopeFormat = TaglessEnvelopeFormat)
println(tmpPath.toUri())
val restored: Envelope = readEnvelopeFile(tmpPath)!!
assertTrue { envelope.contentEquals(restored) }
val tmpPath = Files.createTempFile("dataforge_test", ".df")
Global.io.writeEnvelopeFile(tmpPath, envelope, envelopeFormat = TaglessEnvelopeFormat)
println(tmpPath.toUri())
val restored: Envelope = Global.io.readEnvelopeFile(tmpPath)!!
assertTrue { envelope.contentEquals(restored) }
}
@Test
fun testDataSize() {
val tmpPath = Files.createTempFile("dataforge_test", ".df")
Global.io.writeEnvelopeFile(tmpPath, envelope)
println(tmpPath.toUri())
val scan = Scanner(tmpPath.toFile().inputStream()).useDelimiter("\n").nextLine()
println(scan)
val format = scan.slice(2..5)
when (format) {
"DF03" -> {
val buff = ByteBuffer.allocate(4)
buff.put(scan.slice(12..19).toByteArray())
buff.flip()
val size = buff.long
println(size)
assertEquals(8, size)
}
"DF02" -> {
val buff = ByteBuffer.allocate(4)
buff.put(scan.slice(12..15).toByteArray())
buff.flip()
val size = buff.int
println(size)
assertEquals(8, size)
}
else -> {
fail("Format $format don't have test")
}
}
}
}