Coverage report: /development/source/library/org/datagraph/spocq-shard/src/core/bitemporal-constraints.lisp

KindCoveredAll%
expression1111100.0
branch12 50.0
Key
Not instrumented
Conditionalized out
Executed
Not executed
 
Both branches taken
One branch taken
Neither branch taken
1
 ;;; -*- Mode: lisp; Syntax: ansi-common-lisp; Base: 10; Package: org.datagraph.spocq.implementation; -*-
2
 
3
 (in-package :org.datagraph.spocq.implementation)
4
 
5
 (:documentation "Define supporting functions to distinguish bitemporal filter
6
   constraints.")
7
 
8
 (modpackage "time"
9
   (:export "versionAfter" "versionBefore" "versionContains"
10
            "versionDisjoint" "versionDuring" "versionEquals"
11
            "versionFinishedby" "versionFinishes" "versionIn"
12
            "versionIncludedby" "versionIncludes" "versionMeets"
13
            "versionMetby" "versionOverlappedby" "versionOverlaps"
14
            "versionStartedby" "versionStarts"
15
            ;;; overlap
16
            "overlap"))
17
 
18
 (defun version-constraint-p (e)
19
   "Return true iff the argument is an expression which is a logical conjunction of version constraints."
20
   (and (consp e)
21
        (destructuring-bind (op . args) e
22
          (case op
23
            ((spocq.a:|and| spocq.a:|or| spocq.a:|not| spocq.a:|exprlist|
24
                      ORG.DATAGRAPH.SPOCQ.ALGEBRA:|\|\|| ORG.DATAGRAPH.SPOCQ.ALGEBRA:|&&| ORG.DATAGRAPH.SPOCQ.ALGEBRA:|!|)
25
             (every #'version-constraint-p args))
26
            (t
27
             (member op (load-time-value (loop for name in '("versionAfter" "versionBefore" "versionContains"
28
                                                             "versionDisjoint" "versionDuring" "versionEquals"
29
                                                             "versionFinishedby" "versionFinishes" "versionIn"
30
                                                             "versionIncludedby" "versionIncludes" "versionMeets"
31
                                                             "versionMetby" "versionOverlappedby" "versionOverlaps"
32
                                                             "versionStartedby" "versionStarts")
33
                                           collect (intern name "time")))))))))
34