# File test/lexertest.rb, line 102
  def test_nextvalue
    str = "false"
    lex = JSON::Lexer.new(str)
    assert(lex.nextvalue == false, "error parsing false");

    str = "true"
    lex = JSON::Lexer.new(str)
    assert(lex.nextvalue == true, "error parsing true");

    str = "31337"
    lex = JSON::Lexer.new(str)
    assert(lex.nextvalue == 31337, "error parsing integer");

    str = "0.577289"
    lex = JSON::Lexer.new(str)
    assert(lex.nextvalue == 0.577289, "error parsing float")

    str = "\"123\n\""
    lex = JSON::Lexer.new(str)
    assert(lex.nextvalue == "123\n", "error parsing string")

    str = "null"
    lex = JSON::Lexer.new(str)
    assert(lex.nextvalue.nil?, "error parsing null")

    str = "[ 1, \"abc\", 2.7182818 ]"
    lex = JSON::Lexer.new(str)
    array = lex.nextvalue
    assert(array[0] == 1, "error parsing an array (0th elem)")
    assert(array[1] == "abc", "error parsing an array (1st elem)")
    assert(array[2] = 2.7182818, "error parsing an array (2nd elem)")

    str = '{"foo":"bar", "xyz":1, "e":2.7182818}'
    lex = JSON::Lexer.new(str)
    obj = lex.nextvalue
    assert(obj["foo"] == "bar", "error parsing an object ('foo' elem)")
    assert(obj["xyz"] == 1, "error parsing an object ('xyz' elem)")
    assert(obj["e"] == 2.7182818, "error parsing an object ('e' elem)")

    str = "false"
    lex = JSON::Lexer.new(str)
    assert(lex.nextvalue == false, "error parsing false");
  end