git.fiddlerwoaroof.com
t/scalar.lisp
8312a7c4
 (in-package :cl-user)
 (defpackage cl-yaml-test.scalar
   (:use :cl :fiveam)
bb4f27b9
   (:export :scalar)
   (:documentation "Scalar parsing tests."))
8312a7c4
 (in-package :cl-yaml-test.scalar)
 
eb71ef53
 ;;; Macros
 
 (defmacro scalar-equal (string value)
   `(is
     (equal (yaml.scalar:parse-scalar ,string)
            ,value)))
 
 ;;; Tests
 
8312a7c4
 (def-suite scalar
   :description "YAML scalar parsing tests.")
 (in-suite scalar)
 
 (test special-constants
eb71ef53
   ;; Null
   (scalar-equal "null" nil)
   (scalar-equal "Null" nil)
   (scalar-equal "NULL" nil)
   (scalar-equal "~" nil)
   ;; Boolean
   (scalar-equal "true" t)
   (scalar-equal "True" t)
   (scalar-equal "TRUE" t)
   (scalar-equal "false" nil)
   (scalar-equal "False" nil)
   (scalar-equal "FALSE" nil))
 
 (test integers
   (scalar-equal "123" 123)
   (scalar-equal "012345" 12345)
44244d05
   (scalar-equal "-555" -555)
   (scalar-equal "0x25" 37))
eb71ef53
 
 (test floats
   (scalar-equal "1.234" 1.234)
   (scalar-equal "1e5" 1e5))
 
 (test special-floats
   (scalar-equal ".nan" :NaN)
   (scalar-equal ".NaN" :NaN)
   (scalar-equal ".NAN" :NaN)
   (scalar-equal ".inf" :+Inf)
   (scalar-equal ".Inf" :+Inf)
   (scalar-equal ".INF" :+Inf)
   (scalar-equal "-.inf" :-Inf)
   (scalar-equal "-.Inf" :-Inf)
   (scalar-equal "-.INF" :-Inf))