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
164
Issues
164
List
Board
Labels
Milestones
Merge Requests
10
Merge Requests
10
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
Show 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 ((>>>))
...
@@ -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.Lens
(
makeLenses
,
makePrisms
,
Iso
'
,
iso
,
from
,
(
.~
),
(
.=
),
(
?=
),
(
#
),
to
,
folded
,
{-withIndex, ifolded,-}
view
,
use
,
(
^.
),
(
^?
),
(
%~
),
(
.~
),
(
%=
),
at
,
_Just
,
Each
(
..
),
itraverse_
,
both
,
forOf_
,
(
?~
),
over
)
import
Control.Monad.State
import
Control.Monad.State
import
Data.Aeson
hiding
((
.=
))
import
Data.Aeson
hiding
((
.=
))
import
Data.Aeson
qualified
as
Aeson
import
Data.Aeson.TH
(
deriveJSON
)
import
Data.Aeson.TH
(
deriveJSON
)
import
Data.Foldable
import
Data.Foldable
import
Data.HashMap.Strict.InsOrd
qualified
as
InsOrdHashMap
import
Data.HashMap.Strict.InsOrd
qualified
as
InsOrdHashMap
...
@@ -176,9 +177,33 @@ data NgramsElement =
...
@@ -176,9 +177,33 @@ data NgramsElement =
}
}
deriving
(
Ord
,
Eq
,
Show
,
Generic
)
deriving
(
Ord
,
Eq
,
Show
,
Generic
)
deriveJSON
(
unPrefix
"_ne_"
)
''
N
gramsElement
--
deriveJSON (unPrefix "_ne_") ''NgramsElement
makeLenses
''
N
gramsElement
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
mkNgramsElement
::
NgramsTerm
->
ListType
->
ListType
->
Maybe
RootParent
->
Maybe
RootParent
...
...
test/Test/API/UpdateList.hs
View file @
55dae112
...
@@ -83,7 +83,7 @@ pollUntilFinished :: HasCallStack
...
@@ -83,7 +83,7 @@ pollUntilFinished :: HasCallStack
pollUntilFinished
tkn
port
mkUrlPiece
=
go
60
pollUntilFinished
tkn
port
mkUrlPiece
=
go
60
where
where
go
::
Int
->
JobPollHandle
->
WaiSession
()
JobPollHandle
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
go
n
h
=
case
_jph_status
h
==
"IsPending"
||
_jph_status
h
==
"IsRunning"
of
True
->
do
True
->
do
liftIO
$
threadDelay
1
_000_000
liftIO
$
threadDelay
1
_000_000
...
@@ -91,7 +91,7 @@ pollUntilFinished tkn port mkUrlPiece = go 60
...
@@ -91,7 +91,7 @@ pollUntilFinished tkn port mkUrlPiece = go 60
go
(
n
-
1
)
h'
go
(
n
-
1
)
h'
False
False
|
_jph_status
h
==
"IsFailure"
|
_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
|
otherwise
->
pure
h
->
pure
h
...
@@ -132,7 +132,8 @@ tests = sequential $ aroundAll withTestDBAndPort $ do
...
@@ -132,7 +132,8 @@ tests = sequential $ aroundAll withTestDBAndPort $ do
"size": 2,
"size": 2,
"list": "MapTerm",
"list": "MapTerm",
"occurrences": [],
"occurrences": [],
"children": []
"children": [],
"root": null
}
}
]
]
}
|]
}
|]
...
@@ -173,7 +174,9 @@ tests = sequential $ aroundAll withTestDBAndPort $ do
...
@@ -173,7 +174,9 @@ tests = sequential $ aroundAll withTestDBAndPort $ do
{"ngrams":"abelian group"
{"ngrams":"abelian group"
,"size":1
,"size":1
,"list":"MapTerm"
,"list":"MapTerm"
,"occurrences":[],"children":[]}
,"occurrences":[]
,"children":[]
,"root": null}
]
]
}
|]
}
|]
let
getStopUrl
=
"/node/"
+|
listId
|+
"/ngrams?ngramsType=Terms&listType=StopTerm&list="
+|
listId
|+
"&limit=50"
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 @@
...
@@ -2,6 +2,7 @@
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeApplications #-}
module
Test.Ngrams.Query
(
tests
)
where
module
Test.Ngrams.Query
(
tests
)
where
import
Control.Lens
import
Control.Monad
import
Control.Monad
import
Data.Coerce
import
Data.Coerce
import
Data.Map.Strict
qualified
as
Map
import
Data.Map.Strict
qualified
as
Map
...
@@ -269,7 +270,8 @@ test_paginationQuantum = do
...
@@ -269,7 +270,8 @@ test_paginationQuantum = do
let
elems
=
coerce
@
NgramsTable
@
[
NgramsElement
]
$
_vc_data
res
let
elems
=
coerce
@
NgramsTable
@
[
NgramsElement
]
$
_vc_data
res
length
elems
@?=
10
length
elems
@?=
10
forM_
elems
$
\
term
->
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
where
searchQuery
=
NgramsSearchQuery
{
searchQuery
=
NgramsSearchQuery
{
_nsq_limit
=
Limit
10
_nsq_limit
=
Limit
10
...
...
test/Test/Ngrams/Query/PaginationCorpus.hs
View file @
55dae112
...
@@ -20,111 +20,113 @@ import Paths_gargantext
...
@@ -20,111 +20,113 @@ import Paths_gargantext
implementationElem
::
NgramsElement
implementationElem
::
NgramsElement
implementationElem
=
NgramsElement
{
implementationElem
=
NgramsElement
{
_ne_ngrams
=
"implementation"
_ne_ngrams
=
"implementation"
,
_ne_size
=
1
,
_ne_list
=
MapTerm
,
_ne_occurrences
=
Set
.
fromList
$
map
UnsafeMkContextId
[
1
,
2
,
3
,
4
,
5
]
,
_ne_occurrences
=
Set
.
fromList
$
map
UnsafeMkContextId
[
1
,
2
,
3
,
4
,
5
]
,
_ne_root
=
Nothing
,
_ne_nre
=
NgramsRepoElement
{
_nre_size
=
1
,
_ne_parent
=
Nothing
,
_nre_list
=
MapTerm
,
_ne_children
=
mSetFromList
[
"code"
,
"functions"
,
"language"
,
"programs"
]
,
_nre_root
=
Nothing
,
_nre_parent
=
Nothing
,
_nre_children
=
mSetFromList
[
"code"
,
"functions"
,
"language"
,
"programs"
]
}
}
}
languagesElem
::
NgramsElement
languagesElem
::
NgramsElement
languagesElem
=
NgramsElement
{
languagesElem
=
NgramsElement
{
_ne_ngrams
=
NgramsTerm
{
unNgramsTerm
=
"languages"
}
_ne_ngrams
=
NgramsTerm
{
unNgramsTerm
=
"languages"
}
,
_ne_size
=
1
,
_ne_list
=
MapTerm
,
_ne_occurrences
=
Set
.
fromList
$
map
UnsafeMkContextId
[
1
,
2
,
3
,
4
]
,
_ne_occurrences
=
Set
.
fromList
$
map
UnsafeMkContextId
[
1
,
2
,
3
,
4
]
,
_ne_root
=
Nothing
,
_ne_nre
=
NgramsRepoElement
{
_nre_size
=
1
,
_ne_parent
=
Nothing
,
_nre_list
=
MapTerm
,
_ne_children
=
mSetFromList
[
"approach"
,
"use"
]
,
_nre_root
=
Nothing
,
_nre_parent
=
Nothing
,
_nre_children
=
mSetFromList
[
"approach"
,
"use"
]
}
}
}
termsElem
::
NgramsElement
termsElem
::
NgramsElement
termsElem
=
NgramsElement
{
termsElem
=
NgramsElement
{
_ne_ngrams
=
NgramsTerm
{
unNgramsTerm
=
"terms"
}
_ne_ngrams
=
NgramsTerm
{
unNgramsTerm
=
"terms"
}
,
_ne_size
=
1
,
_ne_list
=
MapTerm
,
_ne_occurrences
=
Set
.
fromList
$
map
UnsafeMkContextId
[
1
,
2
,
3
]
,
_ne_occurrences
=
Set
.
fromList
$
map
UnsafeMkContextId
[
1
,
2
,
3
]
,
_ne_root
=
Nothing
,
_ne_nre
=
NgramsRepoElement
{
_nre_size
=
1
,
_ne_parent
=
Nothing
,
_nre_list
=
MapTerm
,
_ne_children
=
mSetFromList
[
"algorithm"
,
"evaluation"
,
"monad"
,
"programmers"
]
,
_nre_root
=
Nothing
,
_nre_parent
=
Nothing
,
_nre_children
=
mSetFromList
[
"algorithm"
,
"evaluation"
,
"monad"
,
"programmers"
]
}
}
}
proofElem
::
NgramsElement
proofElem
::
NgramsElement
proofElem
=
NgramsElement
{
proofElem
=
NgramsElement
{
_ne_ngrams
=
NgramsTerm
{
unNgramsTerm
=
"proof"
}
_ne_ngrams
=
NgramsTerm
{
unNgramsTerm
=
"proof"
}
,
_ne_size
=
1
,
_ne_list
=
MapTerm
,
_ne_occurrences
=
Set
.
fromList
$
map
UnsafeMkContextId
[
1
,
2
]
,
_ne_occurrences
=
Set
.
fromList
$
map
UnsafeMkContextId
[
1
,
2
]
,
_ne_root
=
Nothing
,
_ne_nre
=
NgramsRepoElement
{
_nre_size
=
1
,
_ne_parent
=
Nothing
,
_nre_list
=
MapTerm
,
_ne_children
=
mSetFromList
[
"proofs"
]
,
_nre_root
=
Nothing
,
_nre_parent
=
Nothing
,
_nre_children
=
mSetFromList
[
"proofs"
]
}
}
}
sideEffectsElem
::
NgramsElement
sideEffectsElem
::
NgramsElement
sideEffectsElem
=
NgramsElement
{
sideEffectsElem
=
NgramsElement
{
_ne_ngrams
=
NgramsTerm
{
unNgramsTerm
=
"side effects"
}
_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_occurrences
=
Set
.
fromList
$
map
UnsafeMkContextId
[
1
,
2
,
3
,
4
,
5
,
6
]
,
_ne_root
=
Nothing
,
_ne_nre
=
NgramsRepoElement
{
_nre_size
=
1
,
_ne_parent
=
Nothing
,
_nre_list
=
StopTerm
,
_ne_children
=
mSetFromList
[ ]
,
_nre_root
=
Nothing
,
_nre_parent
=
Nothing
,
_nre_children
=
mSetFromList
[ ]
}
}
}
ooElem
::
NgramsElement
ooElem
::
NgramsElement
ooElem
=
NgramsElement
{
ooElem
=
NgramsElement
{
_ne_ngrams
=
NgramsTerm
{
unNgramsTerm
=
"object oriented"
}
_ne_ngrams
=
NgramsTerm
{
unNgramsTerm
=
"object oriented"
}
,
_ne_size
=
1
,
_ne_list
=
StopTerm
,
_ne_occurrences
=
Set
.
fromList
$
map
UnsafeMkContextId
[
1
,
2
,
3
,
4
,
5
]
,
_ne_occurrences
=
Set
.
fromList
$
map
UnsafeMkContextId
[
1
,
2
,
3
,
4
,
5
]
,
_ne_root
=
Nothing
,
_ne_nre
=
NgramsRepoElement
{
_nre_size
=
1
,
_ne_parent
=
Nothing
,
_nre_list
=
StopTerm
,
_ne_children
=
mSetFromList
[
"null pointer exception"
]
,
_nre_root
=
Nothing
,
_nre_parent
=
Nothing
,
_nre_children
=
mSetFromList
[
"null pointer exception"
]
}
}
}
javaElem
::
NgramsElement
javaElem
::
NgramsElement
javaElem
=
NgramsElement
{
javaElem
=
NgramsElement
{
_ne_ngrams
=
NgramsTerm
{
unNgramsTerm
=
"java"
}
_ne_ngrams
=
NgramsTerm
{
unNgramsTerm
=
"java"
}
,
_ne_size
=
1
,
_ne_list
=
StopTerm
,
_ne_occurrences
=
Set
.
fromList
$
map
UnsafeMkContextId
[
1
,
2
,
3
]
,
_ne_occurrences
=
Set
.
fromList
$
map
UnsafeMkContextId
[
1
,
2
,
3
]
,
_ne_root
=
Nothing
,
_ne_nre
=
NgramsRepoElement
{
_nre_size
=
1
,
_ne_parent
=
Nothing
,
_nre_list
=
StopTerm
,
_ne_children
=
mSetFromList
[
"JVM"
]
,
_nre_root
=
Nothing
,
_nre_parent
=
Nothing
,
_nre_children
=
mSetFromList
[
"JVM"
]
}
}
}
pascalElem
::
NgramsElement
pascalElem
::
NgramsElement
pascalElem
=
NgramsElement
{
pascalElem
=
NgramsElement
{
_ne_ngrams
=
NgramsTerm
{
unNgramsTerm
=
"pascal"
}
_ne_ngrams
=
NgramsTerm
{
unNgramsTerm
=
"pascal"
}
,
_ne_size
=
1
,
_ne_list
=
StopTerm
,
_ne_occurrences
=
Set
.
fromList
$
map
UnsafeMkContextId
[
1
,
2
]
,
_ne_occurrences
=
Set
.
fromList
$
map
UnsafeMkContextId
[
1
,
2
]
,
_ne_root
=
Nothing
,
_ne_nre
=
NgramsRepoElement
{
_nre_size
=
1
,
_ne_parent
=
Nothing
,
_nre_list
=
StopTerm
,
_ne_children
=
mSetFromList
[
"turbo"
,
"borland"
]
,
_nre_root
=
Nothing
,
_nre_parent
=
Nothing
,
_nre_children
=
mSetFromList
[
"turbo"
,
"borland"
]
}
}
}
haskellElem
::
NgramsElement
haskellElem
::
NgramsElement
haskellElem
=
NgramsElement
{
haskellElem
=
NgramsElement
{
_ne_ngrams
=
NgramsTerm
{
unNgramsTerm
=
"haskell"
}
_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_occurrences
=
Set
.
fromList
$
map
UnsafeMkContextId
[
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
]
,
_ne_root
=
Nothing
,
_ne_nre
=
NgramsRepoElement
{
_nre_size
=
1
,
_ne_parent
=
Nothing
,
_nre_list
=
CandidateTerm
,
_ne_children
=
mSetFromList
[ ]
,
_nre_root
=
Nothing
,
_nre_parent
=
Nothing
,
_nre_children
=
mSetFromList
[ ]
}
}
}
concHaskellElem
::
NgramsElement
concHaskellElem
::
NgramsElement
concHaskellElem
=
NgramsElement
{
concHaskellElem
=
NgramsElement
{
_ne_ngrams
=
NgramsTerm
{
unNgramsTerm
=
"concurrent haskell"
}
_ne_ngrams
=
NgramsTerm
{
unNgramsTerm
=
"concurrent haskell"
}
,
_ne_size
=
1
,
_ne_list
=
CandidateTerm
,
_ne_occurrences
=
Set
.
fromList
$
map
UnsafeMkContextId
[
1
,
2
,
3
,
4
,
5
]
,
_ne_occurrences
=
Set
.
fromList
$
map
UnsafeMkContextId
[
1
,
2
,
3
,
4
,
5
]
,
_ne_root
=
Nothing
,
_ne_nre
=
NgramsRepoElement
{
_nre_size
=
1
,
_ne_parent
=
Nothing
,
_nre_list
=
CandidateTerm
,
_ne_children
=
mSetFromList
[
"Simon Marlow"
]
,
_nre_root
=
Nothing
,
_nre_parent
=
Nothing
,
_nre_children
=
mSetFromList
[
"Simon Marlow"
]
}
}
}
-- | A big (for the sake of the tests anyway) corpus which has
-- | 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