Unit Testing in Clojure and Lab 4


(ns testing
  (:require clojure.test))

(use 'clojure.repl)
(use 'clojure.test)

(with-test
(defn all-same [vect]
  (cond 
    (empty? vect) true
    :else (every? #(= (first vect) %1) (rest vect)) 
  )
)
(is (= (all-same []) true))
(is (= (all-same [1 2 1 3]) false))
(is (= (all-same [1 2 2 2]) false))
(is (= (all-same [2 2 2 2]) true)))


(defn longest-same-from-end [vect]
  (loop [v vect]
    (cond
     (empty? v) 0
     (all-same v) (count v)
     :else (recur (rest v))
     )
   )
)

(deftest empty-vec
  (is (= (longest-same-from-end []) 0))
)

(deftest long-sequence-test 
  (is (= (longest-same-from-end [1 3 1 1 1 1 1 1]) 6)) 
)

(deftest short-sequence-test 
  (is (= (longest-same-from-end [1 3 1 1 1 1 1 3 1]) 1)) 
)

(run-tests)

;; write a function that takes a vector and returns true 
;; if it has no duplicated elements
;; and false otherwise
;; Provide testing for all intermediate fucntions 
;; and the final function

;; write a function that removes duplicates from a vector



UMM CSci 4409