From 656a2af98975edea682831c8483ac534cec7825a Mon Sep 17 00:00:00 2001 From: Elly Jones Date: Mon, 7 Nov 2011 18:24:44 -0500 Subject: json: betterify for brson Signed-off-by: Elly Jones --- src/test/stdtest/json.rs | 48 +++++++++++++++++++++++++++++++++++++++++++++ src/test/stdtest/stdtest.rc | 13 ++++++------ 2 files changed, 55 insertions(+), 6 deletions(-) create mode 100644 src/test/stdtest/json.rs (limited to 'src/test/stdtest') diff --git a/src/test/stdtest/json.rs b/src/test/stdtest/json.rs new file mode 100644 index 00000000000..a19ddec5e7d --- /dev/null +++ b/src/test/stdtest/json.rs @@ -0,0 +1,48 @@ +use std; +import std::json::*; +import std::option::{none, some}; + +#[test] +fn test_from_str_num() { + assert(from_str("3") == some(num(3f))); + assert(from_str("3.1") == some(num(3.1f))); + assert(from_str("-1.2") == some(num(-1.2f))); + assert(from_str(".4") == some(num(0.4f))); +} + +#[test] +fn test_from_str_str() { + assert(from_str("\"foo\"") == some(string("foo"))); + assert(from_str("\"\\\"\"") == some(string("\""))); + assert(from_str("\"lol") == none); +} + +#[test] +fn test_from_str_bool() { + assert(from_str("true") == some(boolean(true))); + assert(from_str("false") == some(boolean(false))); + assert(from_str("truz") == none); +} + +#[test] +fn test_from_str_list() { + assert(from_str("[]") == some(list(@[]))); + assert(from_str("[true]") == some(list(@[boolean(true)]))); + assert(from_str("[3, 1]") == some(list(@[num(3f), num(1f)]))); + assert(from_str("[2, [4, 1]]") == + some(list(@[num(2f), list(@[num(4f), num(1f)])]))); + assert(from_str("[2, ]") == none); + assert(from_str("[5, ") == none); + assert(from_str("[6 7]") == none); + assert(from_str("[3") == none); +} + +#[test] +fn test_from_str_dict() { + assert(from_str("{}") != none); + assert(from_str("{\"a\": 3}") != none); + assert(from_str("{\"a\": }") == none); + assert(from_str("{\"a\" }") == none); + assert(from_str("{\"a\"") == none); + assert(from_str("{") == none); +} diff --git a/src/test/stdtest/stdtest.rc b/src/test/stdtest/stdtest.rc index 18ba19d0151..09eabb632d6 100644 --- a/src/test/stdtest/stdtest.rc +++ b/src/test/stdtest/stdtest.rc @@ -6,14 +6,15 @@ mod char; mod comm; mod deque; mod either; +mod float; mod fs; mod getopts; mod int; mod io; -mod vec; +mod json; mod list; mod map; -mod treemap; +mod math; mod net; mod option; mod os; @@ -22,6 +23,8 @@ mod ptr; mod qsort3; mod qsort; mod rand; +mod result; +mod rope; mod run; mod sha1; mod sort; @@ -29,11 +32,9 @@ mod str; mod sys; mod task; mod test; +mod treemap; mod uint; -mod float; -mod math; -mod result; -mod rope; +mod vec; // Local Variables: // mode: rust -- cgit 1.4.1-3-g733a5