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
163
Issues
163
List
Board
Labels
Milestones
Merge Requests
9
Merge Requests
9
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
gargantext
haskell-gargantext
Commits
55dae112
Verified
Commit
55dae112
authored
Dec 07, 2023
by
Przemyslaw Kaminski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[test] fixes to decodeUtf8 and ne_nre rewrite
parent
3e8de491
Pipeline
#5442
canceled with stages
in 59 seconds
Changes
4
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
89 additions
and
57 deletions
+89
-57
Types.hs
src/Gargantext/API/Ngrams/Types.hs
+27
-2
UpdateList.hs
test/Test/API/UpdateList.hs
+7
-4
Query.hs
test/Test/Ngrams/Query.hs
+3
-1
PaginationCorpus.hs
test/Test/Ngrams/Query/PaginationCorpus.hs
+52
-50
No files found.
src/Gargantext/API/Ngrams/Types.hs
View file @
55dae112
...
...
@@ -22,6 +22,7 @@ import Control.Category ((>>>))
import
Control.Lens
(
makeLenses
,
makePrisms
,
Iso
'
,
iso
,
from
,
(
.~
),
(
.=
),
(
?=
),
(
#
),
to
,
folded
,
{-withIndex, ifolded,-}
view
,
use
,
(
^.
),
(
^?
),
(
%~
),
(
.~
),
(
%=
),
at
,
_Just
,
Each
(
..
),
itraverse_
,
both
,
forOf_
,
(
?~
),
over
)
import
Control.Monad.State
import
Data.Aeson
hiding
((
.=
))
import
Data.Aeson
qualified
as
Aeson
import
Data.Aeson.TH
(
deriveJSON
)
import
Data.Foldable
import
Data.HashMap.Strict.InsOrd
qualified
as
InsOrdHashMap
...
...
@@ -175,10 +176,34 @@ data NgramsElement =
,
_ne_nre
::
NgramsRepoElement
}
deriving
(
Ord
,
Eq
,
Show
,
Generic
)
deriveJSON
(
unPrefix
"_ne_"
)
''
N
gramsElement
--
deriveJSON (unPrefix "_ne_") ''NgramsElement
makeLenses
''
N
gramsElement
instance
ToJSON
NgramsElement
where
toJSON
ne
=
object
[
"ngrams"
Aeson
..=
toJSON
(
ne
^.
ne_ngrams
)
,
"occurrences"
Aeson
..=
toJSON
(
ne
^.
ne_occurrences
)
,
"size"
Aeson
..=
toJSON
(
ne
^.
ne_nre
.
nre_size
)
,
"list"
Aeson
..=
toJSON
(
ne
^.
ne_nre
.
nre_list
)
,
"root"
Aeson
..=
toJSON
(
ne
^.
ne_nre
.
nre_root
)
,
"parent"
Aeson
..=
toJSON
(
ne
^.
ne_nre
.
nre_parent
)
,
"children"
Aeson
..=
toJSON
(
ne
^.
ne_nre
.
nre_children
)
]
instance
FromJSON
NgramsElement
where
parseJSON
=
withObject
"NgramsElement"
$
\
ne
->
do
_ne_ngrams
<-
ne
.:
"ngrams"
_ne_occurrences
<-
ne
.:
"occurrences"
_nre_size
<-
ne
.:
"size"
_nre_list
<-
ne
.:
"list"
_nre_root
<-
ne
.:?
"root"
_nre_parent
<-
ne
.:?
"parent"
_nre_children
<-
ne
.:
"children"
let
_ne_nre
=
NgramsRepoElement
{
..
}
pure
NgramsElement
{
..
}
mkNgramsElement
::
NgramsTerm
->
ListType
->
Maybe
RootParent
...
...
test/Test/API/UpdateList.hs
View file @
55dae112
...
...
@@ -83,7 +83,7 @@ pollUntilFinished :: HasCallStack
pollUntilFinished
tkn
port
mkUrlPiece
=
go
60
where
go
::
Int
->
JobPollHandle
->
WaiSession
()
JobPollHandle
go
0
h
=
panicTrace
$
"pollUntilFinished exhausted attempts. Last found JobPollHandle: "
<>
decodeUtf8
(
JSON
.
encode
h
)
go
0
h
=
panicTrace
$
"pollUntilFinished exhausted attempts. Last found JobPollHandle: "
<>
(
T
.
decodeUtf8
$
BL
.
toStrict
$
JSON
.
encode
h
)
go
n
h
=
case
_jph_status
h
==
"IsPending"
||
_jph_status
h
==
"IsRunning"
of
True
->
do
liftIO
$
threadDelay
1
_000_000
...
...
@@ -91,7 +91,7 @@ pollUntilFinished tkn port mkUrlPiece = go 60
go
(
n
-
1
)
h'
False
|
_jph_status
h
==
"IsFailure"
->
panicTrace
$
"JobPollHandle contains a failure: "
<>
decodeUtf8
(
JSON
.
encode
h
)
->
panicTrace
$
"JobPollHandle contains a failure: "
<>
T
.
decodeUtf8
(
BL
.
toStrict
$
JSON
.
encode
h
)
|
otherwise
->
pure
h
...
...
@@ -132,7 +132,8 @@ tests = sequential $ aroundAll withTestDBAndPort $ do
"size": 2,
"list": "MapTerm",
"occurrences": [],
"children": []
"children": [],
"root": null
}
]
}
|]
...
...
@@ -173,7 +174,9 @@ tests = sequential $ aroundAll withTestDBAndPort $ do
{"ngrams":"abelian group"
,"size":1
,"list":"MapTerm"
,"occurrences":[],"children":[]}
,"occurrences":[]
,"children":[]
,"root": null}
]
}
|]
let
getStopUrl
=
"/node/"
+|
listId
|+
"/ngrams?ngramsType=Terms&listType=StopTerm&list="
+|
listId
|+
"&limit=50"
...
...
test/Test/Ngrams/Query.hs
View file @
55dae112
...
...
@@ -2,6 +2,7 @@
{-# LANGUAGE TypeApplications #-}
module
Test.Ngrams.Query
(
tests
)
where
import
Control.Lens
import
Control.Monad
import
Data.Coerce
import
Data.Map.Strict
qualified
as
Map
...
...
@@ -269,7 +270,8 @@ test_paginationQuantum = do
let
elems
=
coerce
@
NgramsTable
@
[
NgramsElement
]
$
_vc_data
res
length
elems
@?=
10
forM_
elems
$
\
term
->
assertBool
(
"found "
<>
show
(
_ne_list
term
)
<>
" in: "
<>
show
elems
)
(
_ne_list
term
==
MapTerm
)
assertBool
(
"found "
<>
show
(
term
^.
ne_nre
.
nre_list
)
<>
" in: "
<>
show
elems
)
(
term
^.
ne_nre
.
nre_list
==
MapTerm
)
where
searchQuery
=
NgramsSearchQuery
{
_nsq_limit
=
Limit
10
...
...
test/Test/Ngrams/Query/PaginationCorpus.hs
View file @
55dae112
...
...
@@ -20,111 +20,113 @@ import Paths_gargantext
implementationElem
::
NgramsElement
implementationElem
=
NgramsElement
{
_ne_ngrams
=
"implementation"
,
_ne_size
=
1
,
_ne_list
=
MapTerm
,
_ne_occurrences
=
Set
.
fromList
$
map
UnsafeMkContextId
[
1
,
2
,
3
,
4
,
5
]
,
_ne_root
=
Nothing
,
_ne_parent
=
Nothing
,
_ne_children
=
mSetFromList
[
"code"
,
"functions"
,
"language"
,
"programs"
]
,
_ne_nre
=
NgramsRepoElement
{
_nre_size
=
1
,
_nre_list
=
MapTerm
,
_nre_root
=
Nothing
,
_nre_parent
=
Nothing
,
_nre_children
=
mSetFromList
[
"code"
,
"functions"
,
"language"
,
"programs"
]
}
}
languagesElem
::
NgramsElement
languagesElem
=
NgramsElement
{
_ne_ngrams
=
NgramsTerm
{
unNgramsTerm
=
"languages"
}
,
_ne_size
=
1
,
_ne_list
=
MapTerm
,
_ne_occurrences
=
Set
.
fromList
$
map
UnsafeMkContextId
[
1
,
2
,
3
,
4
]
,
_ne_root
=
Nothing
,
_ne_parent
=
Nothing
,
_ne_children
=
mSetFromList
[
"approach"
,
"use"
]
,
_ne_nre
=
NgramsRepoElement
{
_nre_size
=
1
,
_nre_list
=
MapTerm
,
_nre_root
=
Nothing
,
_nre_parent
=
Nothing
,
_nre_children
=
mSetFromList
[
"approach"
,
"use"
]
}
}
termsElem
::
NgramsElement
termsElem
=
NgramsElement
{
_ne_ngrams
=
NgramsTerm
{
unNgramsTerm
=
"terms"
}
,
_ne_size
=
1
,
_ne_list
=
MapTerm
,
_ne_occurrences
=
Set
.
fromList
$
map
UnsafeMkContextId
[
1
,
2
,
3
]
,
_ne_root
=
Nothing
,
_ne_parent
=
Nothing
,
_ne_children
=
mSetFromList
[
"algorithm"
,
"evaluation"
,
"monad"
,
"programmers"
]
,
_ne_nre
=
NgramsRepoElement
{
_nre_size
=
1
,
_nre_list
=
MapTerm
,
_nre_root
=
Nothing
,
_nre_parent
=
Nothing
,
_nre_children
=
mSetFromList
[
"algorithm"
,
"evaluation"
,
"monad"
,
"programmers"
]
}
}
proofElem
::
NgramsElement
proofElem
=
NgramsElement
{
_ne_ngrams
=
NgramsTerm
{
unNgramsTerm
=
"proof"
}
,
_ne_size
=
1
,
_ne_list
=
MapTerm
,
_ne_occurrences
=
Set
.
fromList
$
map
UnsafeMkContextId
[
1
,
2
]
,
_ne_root
=
Nothing
,
_ne_parent
=
Nothing
,
_ne_children
=
mSetFromList
[
"proofs"
]
,
_ne_nre
=
NgramsRepoElement
{
_nre_size
=
1
,
_nre_list
=
MapTerm
,
_nre_root
=
Nothing
,
_nre_parent
=
Nothing
,
_nre_children
=
mSetFromList
[
"proofs"
]
}
}
sideEffectsElem
::
NgramsElement
sideEffectsElem
=
NgramsElement
{
_ne_ngrams
=
NgramsTerm
{
unNgramsTerm
=
"side effects"
}
,
_ne_size
=
1
,
_ne_list
=
StopTerm
,
_ne_occurrences
=
Set
.
fromList
$
map
UnsafeMkContextId
[
1
,
2
,
3
,
4
,
5
,
6
]
,
_ne_root
=
Nothing
,
_ne_parent
=
Nothing
,
_ne_children
=
mSetFromList
[ ]
,
_ne_nre
=
NgramsRepoElement
{
_nre_size
=
1
,
_nre_list
=
StopTerm
,
_nre_root
=
Nothing
,
_nre_parent
=
Nothing
,
_nre_children
=
mSetFromList
[ ]
}
}
ooElem
::
NgramsElement
ooElem
=
NgramsElement
{
_ne_ngrams
=
NgramsTerm
{
unNgramsTerm
=
"object oriented"
}
,
_ne_size
=
1
,
_ne_list
=
StopTerm
,
_ne_occurrences
=
Set
.
fromList
$
map
UnsafeMkContextId
[
1
,
2
,
3
,
4
,
5
]
,
_ne_root
=
Nothing
,
_ne_parent
=
Nothing
,
_ne_children
=
mSetFromList
[
"null pointer exception"
]
,
_ne_nre
=
NgramsRepoElement
{
_nre_size
=
1
,
_nre_list
=
StopTerm
,
_nre_root
=
Nothing
,
_nre_parent
=
Nothing
,
_nre_children
=
mSetFromList
[
"null pointer exception"
]
}
}
javaElem
::
NgramsElement
javaElem
=
NgramsElement
{
_ne_ngrams
=
NgramsTerm
{
unNgramsTerm
=
"java"
}
,
_ne_size
=
1
,
_ne_list
=
StopTerm
,
_ne_occurrences
=
Set
.
fromList
$
map
UnsafeMkContextId
[
1
,
2
,
3
]
,
_ne_root
=
Nothing
,
_ne_parent
=
Nothing
,
_ne_children
=
mSetFromList
[
"JVM"
]
,
_ne_nre
=
NgramsRepoElement
{
_nre_size
=
1
,
_nre_list
=
StopTerm
,
_nre_root
=
Nothing
,
_nre_parent
=
Nothing
,
_nre_children
=
mSetFromList
[
"JVM"
]
}
}
pascalElem
::
NgramsElement
pascalElem
=
NgramsElement
{
_ne_ngrams
=
NgramsTerm
{
unNgramsTerm
=
"pascal"
}
,
_ne_size
=
1
,
_ne_list
=
StopTerm
,
_ne_occurrences
=
Set
.
fromList
$
map
UnsafeMkContextId
[
1
,
2
]
,
_ne_root
=
Nothing
,
_ne_parent
=
Nothing
,
_ne_children
=
mSetFromList
[
"turbo"
,
"borland"
]
,
_ne_nre
=
NgramsRepoElement
{
_nre_size
=
1
,
_nre_list
=
StopTerm
,
_nre_root
=
Nothing
,
_nre_parent
=
Nothing
,
_nre_children
=
mSetFromList
[
"turbo"
,
"borland"
]
}
}
haskellElem
::
NgramsElement
haskellElem
=
NgramsElement
{
_ne_ngrams
=
NgramsTerm
{
unNgramsTerm
=
"haskell"
}
,
_ne_size
=
1
,
_ne_list
=
CandidateTerm
,
_ne_occurrences
=
Set
.
fromList
$
map
UnsafeMkContextId
[
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
]
,
_ne_root
=
Nothing
,
_ne_parent
=
Nothing
,
_ne_children
=
mSetFromList
[ ]
,
_ne_nre
=
NgramsRepoElement
{
_nre_size
=
1
,
_nre_list
=
CandidateTerm
,
_nre_root
=
Nothing
,
_nre_parent
=
Nothing
,
_nre_children
=
mSetFromList
[ ]
}
}
concHaskellElem
::
NgramsElement
concHaskellElem
=
NgramsElement
{
_ne_ngrams
=
NgramsTerm
{
unNgramsTerm
=
"concurrent haskell"
}
,
_ne_size
=
1
,
_ne_list
=
CandidateTerm
,
_ne_occurrences
=
Set
.
fromList
$
map
UnsafeMkContextId
[
1
,
2
,
3
,
4
,
5
]
,
_ne_root
=
Nothing
,
_ne_parent
=
Nothing
,
_ne_children
=
mSetFromList
[
"Simon Marlow"
]
,
_ne_nre
=
NgramsRepoElement
{
_nre_size
=
1
,
_nre_list
=
CandidateTerm
,
_nre_root
=
Nothing
,
_nre_parent
=
Nothing
,
_nre_children
=
mSetFromList
[
"Simon Marlow"
]
}
}
-- | A big (for the sake of the tests anyway) corpus which has
...
...
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