koans, looks like exception handling with signals
This commit is contained in:
@@ -187,13 +187,16 @@
|
||||
(:method :after ((x bigger-object))
|
||||
(incf (counter x) 2)))
|
||||
|
||||
;; (setq object (make-instance 'bigger-object))
|
||||
;; (makunbound 'object)
|
||||
|
||||
(define-test standard-method-combination-order
|
||||
(let ((object (make-instance 'object)))
|
||||
(calculate object)
|
||||
(assert-equal ____ (counter object)))
|
||||
(let ((object (make-instance 'object)))
|
||||
(calculate object)
|
||||
(assert-equal -1/94 (counter object)))
|
||||
(let ((object (make-instance 'bigger-object)))
|
||||
(calculate object)
|
||||
(assert-equal ____ (counter object))))
|
||||
(assert-equal 197/99 (counter object))))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
@@ -219,13 +222,13 @@
|
||||
|
||||
(define-test salary-at-company-a
|
||||
(let ((programmer (make-instance 'programmer)))
|
||||
(assert-equal ____ (salary-at-company-a programmer)))
|
||||
(assert-equal 120000 (salary-at-company-a programmer)))
|
||||
(let ((programmer (make-instance 'senior-programmer)))
|
||||
(assert-equal ____ (salary-at-company-a programmer)))
|
||||
(assert-equal 320000 (salary-at-company-a programmer)))
|
||||
(let ((programmer (make-instance 'full-stack-programmer)))
|
||||
(assert-equal ____ (salary-at-company-a programmer)))
|
||||
(assert-equal (+ 48000 120000) (salary-at-company-a programmer)))
|
||||
(let ((programmer (make-instance 'senior-full-stack-programmer)))
|
||||
(assert-equal ____ (salary-at-company-a programmer))))
|
||||
(assert-equal (+ 200000 48000 120000) (salary-at-company-a programmer))))
|
||||
|
||||
;;; It is also possible to define custom method combinations.
|
||||
|
||||
@@ -239,10 +242,10 @@
|
||||
|
||||
(define-test salary-at-company-b
|
||||
(let ((programmer (make-instance 'programmer)))
|
||||
(assert-equal ____ (salary-at-company-b programmer)))
|
||||
(assert-equal 120000 (salary-at-company-b programmer)))
|
||||
(let ((programmer (make-instance 'senior-programmer)))
|
||||
(assert-equal ____ (salary-at-company-b programmer)))
|
||||
(assert-equal (* 2 120000) (salary-at-company-b programmer)))
|
||||
(let ((programmer (make-instance 'full-stack-programmer)))
|
||||
(assert-equal ____ (salary-at-company-b programmer)))
|
||||
(assert-equal (* 7/5 120000) (salary-at-company-b programmer)))
|
||||
(let ((programmer (make-instance 'senior-full-stack-programmer)))
|
||||
(assert-equal ____ (salary-at-company-b programmer))))
|
||||
(assert-equal (* 2 7/5 120000) (salary-at-company-b programmer))))
|
||||
|
||||
Reference in New Issue
Block a user