Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
haskell-gargantext
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Christian Merten
haskell-gargantext
Commits
9c1c0360
Commit
9c1c0360
authored
Jul 05, 2024
by
Loïc Chapron
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
more TSV testing
parent
05e98637
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
45 additions
and
1 deletion
+45
-1
TSV.hs
test/Test/Core/Text/Corpus/TSV.hs
+45
-1
No files found.
test/Test/Core/Text/Corpus/TSV.hs
View file @
9c1c0360
...
@@ -23,7 +23,9 @@ tests = testGroup "TSV Parser" [
...
@@ -23,7 +23,9 @@ tests = testGroup "TSV Parser" [
,
testProperty
"Parses 'Valid Number'"
testValidNumber
,
testProperty
"Parses 'Valid Number'"
testValidNumber
,
testProperty
"Parses 'Error Per Line On A File'"
testTestErrorPerLine
,
testProperty
"Parses 'Error Per Line On A File'"
testTestErrorPerLine
,
testProperty
"Parses 'Correct File'"
testTestCorrectFile
,
testProperty
"Parses 'Correct File'"
testTestCorrectFile
,
testProperty
"Parses 'Correct File With New Line In Last Header'"
testTestCorrectFileWithNewLine
]
,
testProperty
"Parses 'Correct File With New Line In Last Header'"
testTestCorrectFileWithNewLine
,
testProperty
"Parses 'Find Delimiter'"
testFindDelimiter
,
testProperty
"Parses 'Get Headers'"
testGetHeader
]
...
@@ -63,6 +65,11 @@ delimiterToText Tab = DT.pack "\t"
...
@@ -63,6 +65,11 @@ delimiterToText Tab = DT.pack "\t"
delimiterToText
Comma
=
DT
.
pack
","
delimiterToText
Comma
=
DT
.
pack
","
delimiterToText
Line
=
DT
.
pack
"
\n
"
delimiterToText
Line
=
DT
.
pack
"
\n
"
delimiterToString
::
Delimiter
->
Char
delimiterToString
Tab
=
'
\t
'
delimiterToString
Comma
=
','
delimiterToString
Line
=
'
\n
'
textToBL
::
Text
->
BL
.
ByteString
textToBL
::
Text
->
BL
.
ByteString
textToBL
b
=
BL
.
fromChunks
.
return
.
DT
.
encodeUtf8
$
b
textToBL
b
=
BL
.
fromChunks
.
return
.
DT
.
encodeUtf8
$
b
...
@@ -76,6 +83,12 @@ generateRandomCorpus = RandomCorpus
...
@@ -76,6 +83,12 @@ generateRandomCorpus = RandomCorpus
<*>
generateNumber
<*>
generateNumber
<*>
generateNumber
<*>
generateNumber
generateFileDelimiter
::
Gen
File
generateFileDelimiter
=
do
del
<-
elements
[
Tab
,
Comma
]
m
<-
choose
(
1
,
5
)
corp
<-
vectorOf
m
(
generateRandomCorpus
)
return
(
File
del
corp
)
generateFile
::
Gen
File
generateFile
::
Gen
File
generateFile
=
arbitrary
::
Gen
File
generateFile
=
arbitrary
::
Gen
File
...
@@ -86,6 +99,11 @@ generateString = arbitrary :: Gen Text
...
@@ -86,6 +99,11 @@ generateString = arbitrary :: Gen Text
generateNumber
::
Gen
Int
generateNumber
::
Gen
Int
generateNumber
=
arbitrary
::
Gen
Int
generateNumber
=
arbitrary
::
Gen
Int
randomHeaderList
::
Gen
[
String
]
randomHeaderList
=
frequency
[
(
1
,
return
[]
)
,
(
7
,
(
:
)
<$>
(
elements
[
"Publication Day"
,
"Publication Month"
,
"Publication Year"
,
"Authors"
,
"Title"
,
"Source"
,
"Abstract"
])
<*>
randomHeaderList
)
]
--TODO add delimiter
--TODO add delimiter
createLineFromCorpus
::
RandomCorpus
->
Delimiter
->
BL
.
ByteString
createLineFromCorpus
::
RandomCorpus
->
Delimiter
->
BL
.
ByteString
...
@@ -203,3 +221,29 @@ testTestCorrectFileWithNewLine = forAll generateFile (\file -> do
...
@@ -203,3 +221,29 @@ testTestCorrectFileWithNewLine = forAll generateFile (\file -> do
case
testErrorPerLine
splitLine
del
headers
1
of
case
testErrorPerLine
splitLine
del
headers
1
of
Right
_
->
True
Right
_
->
True
Left
_
->
validRandomCorpus
x
del
)
(
allCorpus
file
))
Left
_
->
validRandomCorpus
x
del
)
(
allCorpus
file
))
testFindDelimiter
::
Property
testFindDelimiter
=
forAll
generateFileDelimiter
(
\
file
->
do
let
tsv
=
createFile
file
case
findDelimiter
tsv
of
Right
_
->
True
Left
_
->
do
let
line
=
Prelude
.
head
$
allCorpus
file
let
del
=
delimiterToString
$
fDelimiter
file
let
delLine
=
delimiterToString
Line
del
`
DT
.
elem
`
(
abstract
line
)
||
del
`
DT
.
elem
`
(
authors
line
)
||
del
`
DT
.
elem
`
(
title
line
)
||
del
`
DT
.
elem
`
(
source
line
)
||
delLine
`
DT
.
elem
`
(
abstract
line
)
||
delLine
`
DT
.
elem
`
(
authors
line
)
||
delLine
`
DT
.
elem
`
(
title
line
)
||
delLine
`
DT
.
elem
`
(
source
line
))
testGetHeader
::
Property
testGetHeader
=
forAll
randomHeaderList
(
\
headers
->
do
let
headersLines
=
(
BL
.
intercalate
(
delimiterBS
Tab
)
$
Prelude
.
map
BLU
.
fromString
headers
)
:
[]
case
getHeaders
headersLines
Tab
of
Right
_
->
True
Left
_
|
not
(
"Publication Day"
`
Prelude
.
elem
`
headers
)
->
True
|
not
(
"Publication Month"
`
Prelude
.
elem
`
headers
)
->
True
|
not
(
"Publication Year"
`
Prelude
.
elem
`
headers
)
->
True
|
not
(
"Authors"
`
Prelude
.
elem
`
headers
)
->
True
|
not
(
"Source"
`
Prelude
.
elem
`
headers
)
->
True
|
not
(
"Title"
`
Prelude
.
elem
`
headers
)
->
True
|
not
(
"Abstract"
`
Prelude
.
elem
`
headers
)
->
True
|
otherwise
->
False
)
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment