Thanks Stuart, That's exactly what I was after.
On Oct 21, 11:05 pm, Stuart Halloway <[EMAIL PROTECTED]> wrote: > Hi Tim, > > Example below. This is from a demo porting Java code to Clojure, the > original Java code is in the Apache Commons [1]. Note that test does > not resolve symbols: > > ; don't do this > (test 'index-of-any) > -> :no-test > > ; do this > (test #'index-of-any) > -> :ok > > Cheers, > Stuart > > [1]http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/java/org/a... > ---------------------- > (ns exploring.index-of-any > (use clojure.contrib.seq-utils)) > > (defn > #^{:test (fn [] > (assert (nil? (index-of-any nil #{\a}))) > (assert (nil? (index-of-any "" #{\a}))) > (assert (nil? (index-of-any "foo" nil))) > (assert (nil? (index-of-any "foo" #{}))) > (assert (zero? (index-of-any "zzabyycdxx" #{\z \a}))) > (assert (= 3 (index-of-any "zzabyycdxx" #{\b \y}))) > (assert (nil? (index-of-any "aba" #{\z}))))} > index-of-any > [str chars] > (some (fn [[idx char]] (and (get chars char) idx)) (indexed str))) > > > > > > > I've noticed around the place a few hints at testing capabilities such > > as > > (test v) > > and contrib having a run tests, but I'm at a bit of a loss as to how > > it fits together. If there is a good example I can take a look at > > please point me toward it. > > > Generally what I've been doing is writting a test case at the bottom > > of my function and commenting it out when I see the correct output. > > But if there is a more formal definition I'd prefer to use that. > > > (defn poly-expand [points] > > (loop [aa (first points) remaining (rest points) built (empty > > points)] > > (if (empty? remaining) > > (concat built [aa (first points)]) > > (recur (first remaining) (rest remaining) (concat built [aa > > (first remaining)]))))) > > ;(pr (poly-expand '(a b c d))) > > ; -> (a b b c c d d a) ie: lines of polygon connected > > > I imagine what I should be doing is somehow attaching a :test metadata > > which checks that a given input equates to a given output, I just need > > an example to follow. Coming from an imperitive background, I have to > > say that unit testing seems to be one of the stand out advantages to > > the functional approach. I can't even begin to imagine how to > > represent test cases for the C/C++ projects I've worked on hahahahaha, > > but it just feels like a natural part of the development cycle in > > clojure which is really great. > > > Regards, > > Tim.- Hide quoted text - > > - Show quoted text - --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---