p_query_matched_spo_no_dupes :: RDF g => (g -> Triples) -> (Triples -> Maybe BaseUrl -> PrefixMappings -> g) -> g -> Property
p_query_matched_spo_no_dupes _triplesOf _mkRdf gr =
  classify (null ts) "trivial" $
    forAll (tripleFromGen _triplesOf gr) f
  where
    ts = _triplesOf gr
    f t = case t of
            Nothing   -> True
            Just t'   -> [t'] == queryT (mkRdfWithDupe _triplesOf _mkRdf gr t') t'

-- query with no wildcard and a triple no in the graph should yield []
p_query_matched_spo_no_dupes :: RDF g => (g -> Triples) -> (Triples -> Maybe BaseUrl -> PrefixMappings -> g) -> g -> Property
p_query_matched_spo_no_dupes _triplesOf _mkRdf gr =
  classify (null ts) "trivial" $
    forAll (tripleFromGen _triplesOf gr) f
  where
    ts = _triplesOf gr
    f t = case t of
            Nothing   -> True
            Just t'   -> [t'] == queryT (mkRdfWithDupe _triplesOf _mkRdf gr t') t'

-- query with no wildcard and a triple no in the graph should yield []
p_query_matched_spo_no_dupes _triplesOf _mkRdf gr =
  classify (null ts) "trivial" $
    forAll (tripleFromGen _triplesOf gr) f
  where
    ts = _triplesOf gr
    f t = case t of
            Nothing   -> True
            Just t'   -> [t'] == queryT (mkRdfWithDupe _triplesOf _mkRdf gr t') t'

-- query with no wildcard and a triple no in the graph should yield []