Coverage report: /home/runner/work/geb/geb/src/poly/poly.lisp

KindCoveredAll%
expression2892 30.4
branch24 50.0
Key
Not instrumented
Conditionalized out
Executed
Not executed
 
Both branches taken
One branch taken
Neither branch taken
1
 (in-package :geb.poly.main)
2
 
3
 (defmethod gapply ((morphism poly:<poly>) object)
4
   "My main documentation can be found on [GAPPLY][generic-function]
5
 
6
 I am the [GAPPLY][generic-function] for [POLY:\\<POLY\\>][class], the
7
 OBJECT that I expect is of type NUMBER. [GAPPLY][generic-function] reduces down to
8
 ordinary common lisp expressions rather straight forwardly
9
 
10
 
11
 Some examples of me are
12
 
13
 ```lisp
14
 (in-package :geb.poly)
15
 
16
 POLY> (gapply (if-zero (- ident ident 1) 10 ident) 5)
17
 5 (3 bits, #x5, #o5, #b101)
18
 
19
 POLY> (gapply (if-zero (- ident ident) 10 ident) 5)
20
 10 (4 bits, #xA, #o12, #b1010)
21
 
22
 POLY> (gapply (- (* 2 ident ident) (* ident ident)) 5)
23
 25 (5 bits, #x19, #o31, #b11001)
24
 ```
25
 "
26
   (etypecase-of poly:poly morphism
27
     (poly:ident object)
28
     (integer    (error "never happens"))
29
     (poly:compose
30
      (gapply (mcar morphism)
31
              (gapply (mcadr morphism) object)))
32
     (poly:+
33
      (+ (gapply (mcar morphism) object)
34
         (gapply (mcadr morphism) object)))
35
     (poly:*
36
      (* (gapply (mcar morphism) object)
37
         (gapply (mcadr morphism) object)))
38
     (poly:/
39
      (floor (gapply (mcar morphism) object)
40
             (gapply (mcadr morphism) object)))
41
     (poly:-
42
      (- (gapply (mcar morphism) object)
43
         (gapply (mcadr morphism) object)))
44
     (poly:mod
45
      (mod  (gapply (mcar morphism) object)
46
            (gapply (mcadr morphism) object)))
47
     (poly:if-zero (if (zerop (gapply (predicate morphism) object))
48
                       (gapply (then morphism) object)
49
                       (gapply (else morphism) object)))
50
     (poly:if-lt
51
      (if (< (gapply (mcar morphism) object)
52
             (gapply (mcadr morphism) object))
53
          (gapply (then morphism) object)
54
          (gapply (else morphism) object)))))
55
 
56
 (defmethod gapply ((morphism integer) object)
57
 "My main documentation can be found on [GAPPLY][generic-function]
58
 
59
 I am the [GAPPLY][generic-function] for INTEGERs, the
60
 OBJECT that I expect is of type NUMBER. I simply return myself.
61
 
62
 Some examples of me are
63
 
64
 ```lisp
65
 (in-package :geb.poly)
66
 
67
 POLY> (gapply 10 5)
68
 10 (4 bits, #xA, #o12, #b1010)
69
 ```"
70
   (declare (ignore object))
71
   morphism)