(mac this-is-a-well-documented-macro (a b c)

; documentation for this mac!
`(foo ,a ,b ,c))

(mac this-is-an-undocumented-macro (a b c)

`(baz ,a ,b ,c))

(def this-is-a-well-documented-def (a b c)

; documentation for me!
(foo a b c))

(def this-is-an-undocumented-def (a b c)

(baz a b c))

(examples-for dox-lookup

("finds name for a documented macro"
 (hash-get (car:dox-lookup 'this-is-a-well-documented-macro) 'name)
 this-is-a-well-documented-macro)

("finds type for a documented macro"
 (hash-get (car:dox-lookup 'this-is-a-well-documented-macro) 'what)
 mac)

("finds documentation for a documented macro"
 (hash-get (car:dox-lookup 'this-is-a-well-documented-macro) 'texts)
 ("documentation for this mac!"))

("finds arg names for a documented macro"
 (hash-get (car:dox-lookup 'this-is-a-well-documented-macro) 'args)
 (a b c))

("finds source code for a documented macro"
 (hash-get (car:dox-lookup 'this-is-a-well-documented-macro) 'src)
 (mac this-is-a-well-documented-macro (a b c)
   `(foo ,a ,b ,c)))

("finds name for an undocumented macro"
 (hash-get (car:dox-lookup 'this-is-an-undocumented-macro) 'name)
 this-is-an-undocumented-macro)

("finds type for an undocumented macro"
 (hash-get (car:dox-lookup 'this-is-an-undocumented-macro) 'what)
 mac)

("finds no documentation for an undocumented macro"
 (hash-get (car:dox-lookup 'this-is-an-undocumented-macro) 'texts)
 nil)

("finds arg names for an undocumented macro"
 (hash-get (car:dox-lookup 'this-is-an-undocumented-macro) 'args)
 (a b c))

("finds source code for an undocumented macro"
 (hash-get (car:dox-lookup 'this-is-an-undocumented-macro) 'src)
 (mac this-is-an-undocumented-macro (a b c)
   `(baz ,a ,b ,c))))

(examples-for dox-lookup

("finds name for a documented def"
 (hash-get (car:dox-lookup 'this-is-a-well-documented-def) 'name)
 this-is-a-well-documented-def)

("finds type for a documented def"
 (hash-get (car:dox-lookup 'this-is-a-well-documented-def) 'what)
 def)

("finds documentation for a documented def"
 (hash-get (car:dox-lookup 'this-is-a-well-documented-def) 'texts)
 ("documentation for me!"))

("finds arg names for a documented def"
 (hash-get (car:dox-lookup 'this-is-a-well-documented-def) 'args)
 (a b c))

("finds source code for a documented def"
 (hash-get (car:dox-lookup 'this-is-a-well-documented-def) 'src)
 (def this-is-a-well-documented-def (a b c)
   (foo a b c)))

("finds name for an undocumented def"
 (hash-get (car:dox-lookup 'this-is-an-undocumented-def) 'name)
 this-is-an-undocumented-def)

("finds type for an undocumented def"
 (hash-get (car:dox-lookup 'this-is-an-undocumented-def) 'what)
 def)

("finds no documentation for an undocumented def"
 (hash-get (car:dox-lookup 'this-is-an-undocumented-def) 'texts)
 nil)

("finds arg names for an undocumented def"
 (hash-get (car:dox-lookup 'this-is-an-undocumented-def) 'args)
 (a b c))

("finds source code for an undocumented def"
 (hash-get (car:dox-lookup 'this-is-an-undocumented-def) 'src)
 (def this-is-an-undocumented-def (a b c)
   (baz a b c))))

(examples-for dox-args

("macro"
 (dox-args 'this-is-a-well-documented-macro)
 (a b c))

("function def"
 (dox-args 'this-is-a-well-documented-def)
 (a b c)))

(examples-for dox-src

("mac src"
 (dox-src 'this-is-a-well-documented-macro)
 (mac this-is-a-well-documented-macro (a b c) (quasiquote (foo (unquote a) (unquote b) (unquote c)))))

("def src"
 (dox-src 'this-is-a-well-documented-def)
 (def this-is-a-well-documented-def (a b c) (foo a b c))))

(examples-for dox-what-is?

("for mac"
 (dox-what-is? 'this-is-a-well-documented-macro)
 mac)

("is a def"
 (dox-what-is? 'this-is-a-well-documented-def)
 def))

(examples-for dox-show-one-example

("produces a string representation of a given example"
 (dox-show-one-example 'foo '("this is an example of an example"
                              (foo bar yadda 1 2 3)
                              720))
 "foo this is an example of an example

example :

(foo bar yadda 1 2 3)

returns : 720


“))