@@ -7760,14 +7760,14 @@ read_table = function(str, ...) {
77607760test(1552.1, fread(str, na.strings="#N/A"), read_table(str, na.strings="#N/A"))
77617761test(1552.2, fread(str, na.strings=c("#N/A", "-999")), read_table(str, na.strings=c("#N/A", "-999")))
77627762test(1552.3, fread(str, na.strings=c("#N/A", "-999", "+1")), read_table(str, na.strings=c("#N/A", "-999", "+1")))
7763- test(1552.4, fread(str, na.strings=c("#N/A", "-999", "+1", "1"), logical01=FALSE ), read_table(str, na.strings=c("#N/A", "-999", "+1", "1"))) # enabled by FR #2927
7763+ test(1552.4, fread(str, na.strings=c("#N/A", "-999", "+1", "1")), read_table(str, na.strings=c("#N/A", "-999", "+1", "1"))) # enabled by FR #2927
77647764test(1552.5, fread(str, na.strings=c("#N/A", "-999", "FALSE")), error="NAstring <<FALSE>>.*boolean.*not permitted")
77657765test(1552.6, fread("A\n1.0\n2\n-", na.strings=c("-")), data.table(A=c(1.0, 2.0, NA)))
77667766test(1552.7, fread(str, na.strings=c("#N/A", "-999", "+1", "1"), logical01=TRUE),
77677767 error="NAstring <<1>> and logical01=TRUE.*not permitted")
77687768str = "a,b,c\n0,1,2\n1,0,2"
7769- test(1552.8, fread(str, na.strings = "0", logical01=FALSE ), data.table(a=c(NA,1L), b=c(1L,NA), c=c(2L,2L)))
7770- test(1552.9, fread(str, na.strings = c("0","1"), logical01=FALSE ), data.table(a=c(NA,NA), b=c(NA,NA), c=c(2L,2L)))
7769+ test(1552.8, fread(str, na.strings = "0"), data.table(a=c(NA,1L), b=c(1L,NA), c=c(2L,2L)))
7770+ test(1552.9, fread(str, na.strings = c("0","1")), data.table(a=c(NA,NA), b=c(NA,NA), c=c(2L,2L)))
77717771
77727772# FR #1177: 'quote' option of 'print.data.table'
77737773DT1 <- data.table(s1=paste(" ",LETTERS[1:5],sep=""),s2=LETTERS[1:5])
@@ -10445,8 +10445,8 @@ d = tempfile("dir")
1044510445test(1703.16, fread(text=c('a,b','1,2'), tmpdir=d),
1044610446 error=base_messages$cant_open_file, warning=base_messages$missing_file)
1044710447dir.create(d)
10448- test(1703.17, fread(text=c('a,b','1,2'), tmpdir=d), data.table(a=TRUE, b=2L))
10449- test(1703.18, fread(text=c('a,b','1,2')), data.table(a=TRUE , b=2L))
10448+ test(1703.17, fread(text=c('a,b','1,2'), tmpdir=d), data.table(a=1L, b=2L))
10449+ test(1703.18, fread(text=c('a,b','1,2')), data.table(a=1L , b=2L))
1045010450unlink(d)
1045110451test(1703.19, fread(text="a b c"), data.table(a=logical(), b=logical(), c=logical())) # text= with no \n, #4689
1045210452
@@ -10904,10 +10904,10 @@ test(1743.03, fread("a,b\n1,a", colClasses=c(NA, TRUE)), error="colClasses is.*l
1090410904test(1743.04, fread("a,b\n1,a", colClasses=c("character", "factor")), data.table(a="1", b=factor("a")))
1090510905
1090610906# and the length-1 character case; #4237
10907- test(1743.041, fread("a,b\n1,a", colClasses=NA_character_), data.table(a=TRUE , b="a"))
10908- test(1743.042, fread("a,b\n1,a", colClasses=""), data.table(a=TRUE , b="a"))
10909- test(1743.043, fread("a\n1", colClasses=NA_character_), data.table(a=TRUE ))
10910- test(1743.044, fread("a\n1", colClasses=""), data.table(a=TRUE ))
10907+ test(1743.041, fread("a,b\n1,a", colClasses=NA_character_), data.table(a=1L , b="a"))
10908+ test(1743.042, fread("a,b\n1,a", colClasses=""), data.table(a=1L , b="a"))
10909+ test(1743.043, fread("a\n1", colClasses=NA_character_), data.table(a=1L ))
10910+ test(1743.044, fread("a\n1", colClasses=""), data.table(a=1L ))
1091110911
1091210912# Issue #1634: 'fread doesn't check colClasses to be valid type'
1091310913# Currently using BioGenerics, which doesn't support USE.NAMES
@@ -13255,8 +13255,8 @@ test(1957.3, fread("A,B\na,b\nc,d\n", stringsAsFactors=TRUE, verbose=TRUE), data
1325513255
1325613256# misc. coverage tests in fread
1325713257test(1958.01, fread('\U0001f64d', encoding = 'UTF-16'), error = "Argument 'encoding' must be")
13258- test(1958.02, fread('a,b\n1,2', nrows = NA_real_), data.table(a=TRUE , b= 2L))
13259- test(1958.03, fread('a,b\n1,2', nrows = -1), data.table(a=TRUE , b= 2L))
13258+ test(1958.02, fread('a,b\n1,2', nrows = NA_real_), data.table(a = 1L , b = 2L))
13259+ test(1958.03, fread('a,b\n1,2', nrows = -1), data.table(a = 1L , b = 2L))
1326013260test(1958.04, fread('a,b\n1,2', key = 1), error = 'must be a character vector naming columns')
1326113261test(1958.05, fread("A,B,C\n1,2,3\n3,4,5\n0,0,0\n", nrows=0), data.table(A=integer(), B=integer(), C=integer())) #2747
1326213262test(1958.06, fread("A,B,C\n1,2,3\n3,4,5\n0,0,100\n", nrows=0, sep=','), data.table(A=integer(), B=integer(), C=integer()))
@@ -13265,12 +13265,12 @@ test(1958.08, fread('A,B,C,D\n"a,b",4,5\n"c,d",6,7,8\n', fill=TRUE), data.table(
1326513265test(1958.09, fread("A,B,C\n1,2,3\n3,4,5\n0,0,0\n", nrows=0L), data.table(A=integer(), B=integer(), C=integer())) # nrows=0 vs 0L, 4686
1326613266test(1958.10, fread("A,B,C\n1,2,3\n3,4,5\n0,0,100\n", nrows=0L, sep=','), data.table(A=integer(), B=integer(), C=integer()))
1326713267# nrows=0 should perform a full sample to get the empty column types right as documented, #4029
13268- test(1958.11, fread('A,B,C,D\n1,CHAR,"CHAR",3.1', nrows=0L), data.table(A=logical (), B=character(), C=character(), D=numeric()))
13268+ test(1958.11, fread('A,B,C,D\n1,CHAR,"CHAR",3.1', nrows=0L), data.table(A=integer (), B=character(), C=character(), D=numeric()))
1326913269# .. one different type in the middle of under 100
1327013270txt = paste(c("A,B\n1,2\n", rep("3,4\n",48), "3,4.1\n", rep("5,6\n",48)), collapse="")
1327113271test(1958.12, fread(text=txt, nrows=0L), data.table(A=integer(), B=numeric()))
1327213272test(1958.13, fread(text=txt, nrows=0L, skip=1L), data.table(V1=integer(), V2=numeric()))
13273- test(1958.14, fread(text=txt, nrows=1L), data.table(A=TRUE , B=2L)) # B integer not numeric because sample is min(nrows,100) when nrows>=1
13273+ test(1958.14, fread(text=txt, nrows=1L), data.table(A=1L , B=2L)) # B integer not numeric because sample is min(nrows,100) when nrows>=1
1327413274test(1958.15, fread(text=txt, nrows=1L, skip=1L), data.table(V1=1L, V2=2L))
1327513275test(1958.16, fread(text=txt, nrows=2L), data.table(A=c(1L,3L), B=c(2L,4L)))
1327613276test(1958.17, fread(text=txt, nrows=2L, skip=1L), data.table(V1=c(1L,3L), V2=c(2L,4L)))
@@ -13292,10 +13292,10 @@ eols = c("\n", "\r\n", "\r", "\n\r")
1329213292for (i in 1:4) {
1329313293 eol = eols[i]
1329413294 src = paste(c("A", "B", "...", ",,,,,", "c1,c2,c3", "1,2,3"), collapse=eol)
13295- test(1959 + (i*0.1), fread(text=src, skip=4), data.table(c1=TRUE , c2=2L, c3=3L))
13295+ test(1959 + (i*0.1), fread(text=src, skip=4), data.table(c1=1L , c2=2L, c3=3L))
1329613296}
1329713297test(1959.5, fread("A\n\nB\n\nC\n1\n", skip=2), data.table(B=c("", "C", "1")))
13298- test(1959.6, fread("A,B\r\r\nX,Y\r\r\nB,C\r\r\n1,2", skip=4), data.table(B=TRUE , C=2L))
13298+ test(1959.6, fread("A,B\r\r\nX,Y\r\r\nB,C\r\r\n1,2", skip=4), data.table(B=1L , C=2L))
1329913299
1330013300# empty set with constant j, #3173
1330113301DT = data.table(
@@ -14519,9 +14519,9 @@ test(2013.3, DT[2], error="Column 2 ['b'] is length 4 but column 1 is length 3;
1451914519## new fread keepLeadingZeros parameter in v1.12.2
1452014520# leading zeros in both integer and float numbers are converted to character when keepLeadingZeros=TRUE
1452114521test_data_single <- "0, 00, 01, 00010, 002.01\n"
14522- test(2014.1, fread(test_data_single), data.table(FALSE , 0L, 1L, 10L, 2.01))
14523- test(2014.2, fread(test_data_single, keepLeadingZeros = FALSE), data.table(FALSE , 0L, 1L, 10L, 2.01))
14524- test(2014.3, fread(test_data_single, keepLeadingZeros = TRUE), data.table(FALSE , "00","01","00010","002.01"))
14522+ test(2014.1, fread(test_data_single), data.table(0L , 0L, 1L, 10L, 2.01))
14523+ test(2014.2, fread(test_data_single, keepLeadingZeros = FALSE), data.table(0L , 0L, 1L, 10L, 2.01))
14524+ test(2014.3, fread(test_data_single, keepLeadingZeros = TRUE), data.table(0L , "00","01","00010","002.01"))
1452514525# converts whole column to character when keepLeadingZeros = TRUE and at least 1 value contains a leading zero
1452614526test_data_mult <- paste0(c(sample(1:100),"0010",sample(1:100)), collapse="\n")
1452714527test(2014.4, class(fread(test_data_mult, keepLeadingZeros = TRUE)[[1]]), "character")
0 commit comments