#[cfg(test)]
#[cfg(feature = "floats")]
mod test {
extern crate alloc;
use alloc::collections::BTreeMap;
use clojure_reader::edn::{self, Edn};
#[test]
fn read_floats() {
assert_eq!(edn::read_string("-43.5143").unwrap(), Edn::Double((-43.5143).into()));
assert_eq!(edn::read_string("999999999999999999999.0").unwrap(), Edn::Double(1e21f64.into()));
}
#[test]
fn maps() {
let e = "{
:cat \"猫\" ; this is utf-8
:num -0x9042
40.42 \"forty dot forty-two\"
:r 42/4242
#_#_:num 9042
{:foo \"bar\"} \"foobar\"
; dae paren
:lisp (())
}";
assert_eq!(
edn::read_string(e).unwrap(),
Edn::Map(BTreeMap::from([
(Edn::Key("cat"), Edn::Str("猫")),
(Edn::Key("num"), Edn::Int(-36930)),
(Edn::Double((40.42).into()), Edn::Str("forty dot forty-two")),
(Edn::Map(BTreeMap::from([(Edn::Key("foo"), Edn::Str("bar"))])), Edn::Str("foobar")),
(Edn::Key("r"), Edn::Rational((42, 4242))),
(Edn::Key("lisp"), Edn::List(vec![Edn::List(vec![])])),
]))
);
}
}