@@ -21695,15 +21695,20 @@ test(2341.01, fread('a,b
21695216951,2
2169621696#another comment
21697216973,4', comment.char='#'), data.table(a=c(1L,3L), b=c(2L,4L)))
21698+
2169821699test(2341.02, fread('a,b #line-trailing comment
21699217001,2', comment.char='#'), data.table(a=1L, b=2L))
21701+
2170021702test(2341.03, fread('a,b#line-trailing comment and no whitespace
21701217031,2', comment.char='#'), data.table(a=1L, b=2L))
21704+
2170221705test(2341.04, fread('a,b
21703217061,2 #trailing after numeric', comment.char='#'), data.table(a=1L, b=2L))
21707+
2170421708# comment char inside quotes
2170521709test(2341.05, fread('a
2170621710"#quotes#"', comment.char="#"), data.table(a="#quotes#"))
21711+
2170721712# multi line comments
2170821713test(2341.06, fread('# multi line
2170921714# comment
@@ -21712,16 +21717,19 @@ test(2341.06, fread('# multi line
2171221717# comment
21713217183,4
2171421719# trailing comment', comment.char='#'), data.table(V1=c(1L,3L), V2=c(2L,4L)))
21720+
2171521721test(2341.07, fread('id;value
21716217221;2,5! trailing comment
21717217232;NA
2171821724!final comment', sep=';', dec=',', na.strings='NA', comment.char='!'), data.table(id=1:2, value=c(2.5, NA_real_)))
21725+
2171921726# skip
2172021727test(2341.08, fread('meta line
2172121728DATA STARTS
2172221729x,y
2172321730# skip this
21724217311,2', skip="DATA", header=TRUE, comment.char='#'), data.table(x=1L, y=2L))
21732+
2172521733# weird comment chars like space or quote
2172621734test(2341.09, fread('a
2172721735 inline comment
@@ -21730,52 +21738,65 @@ test(2341.10, fread('a,b
21730217381,2" trailing"
2173121739"comment line"
21732217403,4', comment.char='"', quote=""), data.table(a=c(1L,3L), b=c(2L,4L)))
21741+
2173321742# invalid comment chars
2173421743test(2341.11, fread('a,b
2173521744## multichar commentchar
21736217451,2', comment.char = '##'), error = "comment.char= must be a single non-NA character")
21746+
2173721747test(2341.12, fread('a,b
2173821748NA,NA
21739217491,2', comment.char = NA), error = "comment.char= must be a single non-NA character")
21750+
2174021751# CLRF
2174121752test(2341.13, fread('a,b\r\n# cmt\r\n1,2\r\n3,4\r\n', comment.char='#'), data.table(a=c(1L,3L), b=c(2L,4L)))
21753+
2174221754# header comment
2174321755test(2341.14, fread('# hdr cmt
2174421756x,y
21745217571,2', header=TRUE, comment.char='#'), data.table(x=1L, y=2L))
21758+
2174621759# nrow not counting comments
2174721760test(2341.15, fread('a,b
21748217611,2
2174921762# cmt
21750217633,4
21751217645,6', nrows=2, comment.char='#'), data.table(a=c(1L,3L), b=c(2L,4L)))
21765+
2175221766# sep and comment char same
2175321767test(2341.16, fread('a#b
21754217681#2
2175521769# only comment', sep="#", comment.char="#"), data.table(a=1L))
21770+
2175621771# na.strings
2175721772test(2341.17, fread('v
2175821773#NA
21759217741
2176021775# comment', na.strings="#NA", comment.char='#'), data.table(v=1L))
21776+
2176121777test(2341.18, fread('a,b
2176221778"p#q",2 # tail
2176321779"r#s",3', comment.char='#'), data.table(a=c("p#q","r#s"), b=c(2L,3L)))
21780+
2176421781test(2341.19, fread(' # lead comment with padding
2176521782\t# and tab
2176621783a,b
21767217841,2', comment.char='#'), data.table(a=1L, b=2L))
21785+
2176821786test(2341.20, fread('a,b # header cmt with padding # second cmt
21769217871,2
21770217883,4', comment.char='#'), data.table(a=c(1L,3L), b=c(2L,4L)))
21789+
2177121790test(2341.21, fread('# meta1 # meta2
2177221791a,b
21773217921,2', comment.char = '#'), data.table(a=1L, b=2L))
2177421793test(2341.22, fread('a,b # inline header comment\r\n1,2\r\n', comment.char = '#'), data.table(a=1L, b=2L))
21794+
2177521795# control skipping white space before comments with strip.white
2177621796test(2341.23, fread('a
2177721797b # trailing cmnt
2177821798', comment.char = '#', strip.white = FALSE, sep = ","), data.table(a="b "))
21799+
2177921800test(2341.24, fread('a
2178021801 # leading cmnt
2178121802b
0 commit comments