Removed RCS-style IDs.
[ruby-eet.git] / test / test_basic.rb
1 require "eet"
2 require "test/unit"
3 require "common"
4
5 class BasicTestData
6         def initialize
7                 @name = "moo"
8                 @short = 512
9                 @int = 1024
10                 @long_long = (2 << 63) - 1
11                 @flag = true
12                 @float = 1234.12424213138
13         end
14
15         private
16         def to_eet_name
17                 "BasicTest"
18         end
19
20         def to_eet_properties
21                 {"name" => [@name],
22                  "i16" => [@short, :short],
23                  "i32" => [@int],
24                  "i64" => [@long_long, :long_long],
25                  "flag" => [@flag],
26                  "f32" => [@float],
27                  "f64" => [@float, :double]}
28         end
29 end
30
31 class BasicTest < Test::Unit::TestCase
32         def test_basic
33                 data = BasicTestData.new.to_eet
34                 assert_not_nil(data)
35
36                 stream = nil
37
38                 assert_nothing_raised do
39                         stream = Eet::Stream.deserialize(data)
40                 end
41
42                 assert_equal(1, stream.length)
43                 assert_equal("BasicTest", stream.first.tag)
44
45                 assert_nothing_raised do
46                         stream = Eet::Stream.deserialize(stream.first.data)
47                 end
48
49                 assert_equal(7, stream.length)
50
51                 values = {"name" => "moo\0",
52                           "i16" => "\0\2", "i32" => "\0\4\0\0",
53                           "i64" => "\377" * 8, "flag" => "\1",
54                           "f32" => "0x1.3487f4p+10\0",
55                           "f64" => "0x1.3487f39544c4p+10\0"}
56                 values.each do |k, v|
57                         found = stream.find { |c| c.tag == k }
58                         assert_not_nil(found, "chunk not found - #{k}")
59                         assert_equal(v, found.data)
60                         stream.delete(found)
61                 end
62
63                 assert_equal([], stream)
64         end
65 end