Sha256: 358437bfe98df7dac16c84567bb574e866245df6925c54e95b9081e0008230df

Contents?: true

Size: 1.65 KB

Versions: 53

Compression:

Stored size: 1.65 KB

Contents

(ql:quickload "lisp-unit")

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

#-xlisp-test (load "etl")

(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

53 entries across 53 versions & 1 rubygems

Version Path
trackler-2.0.5.16 tracks/lisp/exercises/etl/etl-test.lisp
trackler-2.0.5.15 tracks/lisp/exercises/etl/etl-test.lisp
trackler-2.0.5.14 tracks/lisp/exercises/etl/etl-test.lisp
trackler-2.0.5.13 tracks/lisp/exercises/etl/etl-test.lisp
trackler-2.0.5.12 tracks/lisp/exercises/etl/etl-test.lisp
trackler-2.0.5.11 tracks/lisp/exercises/etl/etl-test.lisp
trackler-2.0.5.10 tracks/lisp/exercises/etl/etl-test.lisp
trackler-2.0.5.9 tracks/lisp/exercises/etl/etl-test.lisp
trackler-2.0.5.8 tracks/lisp/exercises/etl/etl-test.lisp
trackler-2.0.5.7 tracks/lisp/exercises/etl/etl-test.lisp
trackler-2.0.5.6 tracks/lisp/exercises/etl/etl-test.lisp
trackler-2.0.5.5 tracks/lisp/exercises/etl/etl-test.lisp
trackler-2.0.5.4 tracks/lisp/exercises/etl/etl-test.lisp
trackler-2.0.5.3 tracks/lisp/exercises/etl/etl-test.lisp
trackler-2.0.5.2 tracks/lisp/exercises/etl/etl-test.lisp
trackler-2.0.5.1 tracks/lisp/exercises/etl/etl-test.lisp
trackler-2.0.5.0 tracks/lisp/exercises/etl/etl-test.lisp
trackler-2.0.4.0 tracks/lisp/exercises/etl/etl-test.lisp
trackler-2.0.3.9 tracks/lisp/exercises/etl/etl-test.lisp
trackler-2.0.3.8 tracks/lisp/exercises/etl/etl-test.lisp