Sha256: 730245f763b380dc9a2e52583e18ba20d49c5314b41552561bc4a40345e1d961

Contents?: true

Size: 1.65 KB

Versions: 343

Compression:

Stored size: 1.65 KB

Contents

(ql:quickload "lisp-unit")
#-xlisp-test (load "etl")

(defpackage #:etl-test
  (:use #:common-lisp #:lisp-unit))

(in-package #:etl-test)

(defun make-hash (kvs)
  (reduce
   #'(lambda (h kv) (setf (gethash (first kv) h) (second kv)) h)
   kvs
   :initial-value (make-hash-table :test 'equalp)))

(define-test transform-one-value
  (assert-equalp (make-hash '(("world" 1)))
      (etl:transform (make-hash '((1 ("WORLD")))))))

(define-test transform-more-values
  (assert-equalp (make-hash '(("world" 1) ("gschoolers" 1)))
      (etl:transform (make-hash '((1 ("WORLD" "GSCHOOLERS")))))))

(define-test more-keys
  (assert-equalp (make-hash '(("apple" 1) ("artichoke" 1) ("boat" 2) ("ballerina" 2)))
      (etl:transform (make-hash '((1 ("APPLE" "ARTICHOKE")) (2 ("BOAT" "BALLERINA")))))))

(define-test full-dataset
  (let ((input-data '((1 ("A" "E" "I" "O" "U" "L" "N" "R" "S" "T"))
                      (2 ("D" "G"))
                      (3 ("B" "C" "M" "P"))
                      (4 ("F" "H" "V" "W" "Y"))
                      (5 ("K"))
                      (8 ("J" "X"))
                      (10 ("Q" "Z"))))
        (expected-output '(("a" 1) ("b" 3) ("c" 3) ("d" 2) ("e" 1)
                           ("f" 4) ("g" 2) ("h" 4) ("i" 1) ("j" 8)
                           ("k" 5) ("l" 1) ("m" 3) ("n" 1) ("o" 1)
                           ("p" 3) ("q" 10) ("r" 1) ("s" 1) ("t" 1)
                           ("u" 1) ("v" 4) ("w" 4) ("x" 8) ("y" 4)
                           ("z" 10))))
    (assert-equalp (make-hash expected-output)
        (etl:transform (make-hash input-data)))))

#-xlisp-test
(let ((*print-errors* t)
      (*print-failures* t))
  (run-tests :all :etl-test))

Version data entries

343 entries across 343 versions & 1 rubygems

Version Path
trackler-2.2.1.139 tracks/common-lisp/exercises/etl/etl-test.lisp
trackler-2.2.1.138 tracks/common-lisp/exercises/etl/etl-test.lisp
trackler-2.2.1.137 tracks/common-lisp/exercises/etl/etl-test.lisp
trackler-2.2.1.136 tracks/common-lisp/exercises/etl/etl-test.lisp
trackler-2.2.1.135 tracks/common-lisp/exercises/etl/etl-test.lisp
trackler-2.2.1.134 tracks/common-lisp/exercises/etl/etl-test.lisp
trackler-2.2.1.133 tracks/common-lisp/exercises/etl/etl-test.lisp
trackler-2.2.1.132 tracks/common-lisp/exercises/etl/etl-test.lisp
trackler-2.2.1.131 tracks/common-lisp/exercises/etl/etl-test.lisp
trackler-2.2.1.130 tracks/common-lisp/exercises/etl/etl-test.lisp
trackler-2.2.1.129 tracks/common-lisp/exercises/etl/etl-test.lisp
trackler-2.2.1.128 tracks/common-lisp/exercises/etl/etl-test.lisp
trackler-2.2.1.127 tracks/common-lisp/exercises/etl/etl-test.lisp
trackler-2.2.1.126 tracks/common-lisp/exercises/etl/etl-test.lisp
trackler-2.2.1.125 tracks/common-lisp/exercises/etl/etl-test.lisp
trackler-2.2.1.124 tracks/common-lisp/exercises/etl/etl-test.lisp
trackler-2.2.1.123 tracks/common-lisp/exercises/etl/etl-test.lisp
trackler-2.2.1.122 tracks/common-lisp/exercises/etl/etl-test.lisp
trackler-2.2.1.121 tracks/common-lisp/exercises/etl/etl-test.lisp
trackler-2.2.1.120 tracks/common-lisp/exercises/etl/etl-test.lisp