Commit d9ff9a1b authored by Alfredo Di Napoli's avatar Alfredo Di Napoli

Add test case to reproduce #217

parent e42661a8
......@@ -901,12 +901,14 @@ test-suite garg-test
, gargantext-prelude
, hspec
, parsec
, patches-class
, quickcheck-instances
, tasty
, tasty-hunit
, text
, time
, unordered-containers
, validity
default-language: Haskell2010
test-suite jobqueue-test
......
......@@ -520,11 +520,13 @@ tests:
- quickcheck-instances
- time
- parsec
- patches-class
- duckling
- tasty
- tasty-hunit
- text
- unordered-containers
- validity
jobqueue-test:
main: Main.hs
source-dirs: tests/queue
......
......@@ -3,16 +3,19 @@
module Ngrams.Query where
import Control.Monad
import Gargantext.Prelude
import Gargantext.API.Ngrams
import Gargantext.API.Ngrams.Types
import Data.Coerce
import Data.Monoid
import qualified Data.Text as T
import qualified Data.Map.Strict as Map
import Data.Map.Strict (Map)
import Gargantext.Core.Types.Query
import Data.Monoid
import Gargantext.API.Ngrams.Types (mSetFromList)
import Gargantext.API.Ngrams
import Gargantext.API.Ngrams.Types
import Gargantext.Core.Types.Main
import Gargantext.Core.Types.Query
import Gargantext.Prelude
import qualified Data.Map.Strict as Map
import qualified Data.Patch.Class as Patch
import qualified Data.Validity as Validity
import qualified Data.Text as T
import Ngrams.Query.PaginationCorpus
import Test.Tasty
......@@ -61,6 +64,8 @@ unitTests = testGroup "Query tests"
, testCase "Simple pagination on CandidateTerm (limit < total terms)" test_pagination04
, testCase "paginating QuantumComputing corpus works (MapTerms)" test_paginationQuantum
, testCase "paginating QuantumComputing corpus works (CandidateTerm)" test_paginationQuantum_02
-- -- Patching
, testCase "I can apply a patch to term mapTerms to stopTerms (issue #217)" test_217
]
-- Let's test that if we request elements sorted in
......@@ -297,3 +302,32 @@ test_paginationQuantum_02 = do
, _nsq_orderBy = Nothing
, _nsq_searchQuery = mockQueryFn Nothing
}
issue217Corpus :: NgramsTableMap
issue217Corpus = Map.fromList [
( "advantages", NgramsRepoElement 1 MapTerm Nothing Nothing (mSetFromList ["advantage"]))
, ( "advantage" , NgramsRepoElement 1 MapTerm (Just "advantages") (Just "advantages") mempty)
]
patched217Corpus :: NgramsTableMap
patched217Corpus = Map.fromList [
( "advantages", NgramsRepoElement 1 StopTerm Nothing Nothing (mSetFromList ["advantage"]))
, ( "advantage" , NgramsRepoElement 1 StopTerm (Just "advantages") (Just "advantages") mempty)
]
-- In this patch we simulate turning the subtree composed by 'advantages' and 'advantage'
-- from map terms to stop terms.
patch217 :: NgramsTablePatch
patch217 = mkNgramsTablePatch $ Map.fromList [
(NgramsTerm "advantages", NgramsPatch
{ _patch_children = mempty
, _patch_list = Patch.Replace MapTerm StopTerm
}
)
]
test_217 :: Assertion
test_217 = do
-- Check the patch is applicable
Validity.validationIsValid (Patch.applicable patch217 (Just issue217Corpus)) @?= True
Patch.act patch217 (Just issue217Corpus) @?= Just patched217Corpus
......@@ -555,6 +555,9 @@ instance Action NgramsPatch (Maybe NgramsRepoElement) where
newtype NgramsTablePatch = NgramsTablePatch (PatchMap NgramsTerm NgramsPatch)
deriving (Eq, Show, Generic, ToJSON, FromJSON, Semigroup, Monoid, Validity, Transformable)
mkNgramsTablePatch :: Map NgramsTerm NgramsPatch -> NgramsTablePatch
mkNgramsTablePatch = NgramsTablePatch . PM.fromMap
instance Serialise NgramsTablePatch
instance Serialise (PatchMap NgramsTerm NgramsPatch)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment