From c4f32ca8342b19c2d71d340fcacf68b4210961d1 Mon Sep 17 00:00:00 2001 From: mikejiang Date: Mon, 30 Nov 2015 14:40:26 -0800 Subject: [PATCH] add functional test for reading diverse-bitwidths file. #46 --- inst/tests/IO-testSuite.R | 6 ++++++ inst/tests/expectResults.rds | Bin 10627 -> 10672 bytes 2 files changed, 6 insertions(+) diff --git a/inst/tests/IO-testSuite.R b/inst/tests/IO-testSuite.R index cb157e47..dc03b097 100644 --- a/inst/tests/IO-testSuite.R +++ b/inst/tests/IO-testSuite.R @@ -177,4 +177,10 @@ test_that("test integer overflow issue", { fr <- read.FCS(file.path(dataPath,"/Beckman_Coulter/MoFlo Astrios EQ 9C bis all.fcs")) keyword(fr)[["FILENAME"]] <- "setToDummy" expect_equal(expectRes[["read.FCS"]][["MoFlo EQ 9C"]], digest(fr)) + }) + +test_that("test diverse Bitwidths", { + fr <- read.FCS(file.path(dataPath, "diverseBitwidths.fcs")) + keyword(fr)[["FILENAME"]] <- "setToDummy" + expect_equal(expectRes[["read.FCS"]][["diverseBitwidths"]], digest(fr)) }) \ No newline at end of file diff --git a/inst/tests/expectResults.rds b/inst/tests/expectResults.rds index 10a5f25626b218b78640f42ebe4875bbb616f655..f23590c00b69eee54ada7d069805bc77dc79a82e 100644 GIT binary patch delta 8680 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�%YKZqRUee)9i(0QF=0$9mxqsQGYwT;*_}c*o1ew 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 E0HD*Yh5!Hn delta 8638 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 K8W4K-&i?_`y}