tdms 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (124) hide show
  1. checksums.yaml +7 -0
  2. data/.travis.yml +10 -0
  3. data/LICENSE.txt +25 -0
  4. data/README.md +34 -0
  5. data/Rakefile +15 -0
  6. data/demo.rb +16 -0
  7. data/doc/data_types.txt +23 -0
  8. data/doc/example_disasm.txt +47 -0
  9. data/doc/tdms_format.txt +101 -0
  10. data/doc/usage.txt +46 -0
  11. data/lib/tdms.rb +8 -0
  12. data/lib/tdms/aggregate.rb +71 -0
  13. data/lib/tdms/channel.rb +100 -0
  14. data/lib/tdms/datatypes.rb +173 -0
  15. data/lib/tdms/document.rb +114 -0
  16. data/lib/tdms/path.rb +58 -0
  17. data/lib/tdms/property.rb +17 -0
  18. data/lib/tdms/segment.rb +12 -0
  19. data/lib/tdms/streaming.rb +82 -0
  20. data/test/build_fixtures/README.txt +25 -0
  21. data/test/build_fixtures/type_01_int8_one_segment.vi +0 -0
  22. data/test/build_fixtures/type_01_int8_three_segments.vi +0 -0
  23. data/test/build_fixtures/type_01_int8_two_channels_one_segment.vi +0 -0
  24. data/test/build_fixtures/type_02_int16_one_segment.vi +0 -0
  25. data/test/build_fixtures/type_02_int16_three_segments.vi +0 -0
  26. data/test/build_fixtures/type_02_int16_two_channels_one_segment.vi +0 -0
  27. data/test/build_fixtures/type_03_int32_one_segment.vi +0 -0
  28. data/test/build_fixtures/type_03_int32_three_segments.vi +0 -0
  29. data/test/build_fixtures/type_03_int32_two_channels_one_segment.vi +0 -0
  30. data/test/build_fixtures/type_04_int64_one_segment.vi +0 -0
  31. data/test/build_fixtures/type_04_int64_three_segments.vi +0 -0
  32. data/test/build_fixtures/type_04_int64_two_channels_one_segment.vi +0 -0
  33. data/test/build_fixtures/type_05_uint8_one_segment.vi +0 -0
  34. data/test/build_fixtures/type_05_uint8_three_segments.vi +0 -0
  35. data/test/build_fixtures/type_05_uint8_two_channels_one_segment.vi +0 -0
  36. data/test/build_fixtures/type_06_uint16_one_segment.vi +0 -0
  37. data/test/build_fixtures/type_06_uint16_three_segments.vi +0 -0
  38. data/test/build_fixtures/type_06_uint16_two_channels_one_segment.vi +0 -0
  39. data/test/build_fixtures/type_07_uint32_one_segment.vi +0 -0
  40. data/test/build_fixtures/type_07_uint32_three_segments.vi +0 -0
  41. data/test/build_fixtures/type_07_uint32_two_channels_one_segment.vi +0 -0
  42. data/test/build_fixtures/type_08_uint64_one_segment.vi +0 -0
  43. data/test/build_fixtures/type_08_uint64_three_segments.vi +0 -0
  44. data/test/build_fixtures/type_08_uint64_two_channels_one_segment.vi +0 -0
  45. data/test/build_fixtures/type_09_single_one_segment.vi +0 -0
  46. data/test/build_fixtures/type_09_single_three_segments.vi +0 -0
  47. data/test/build_fixtures/type_09_single_two_channels_one_segment.vi +0 -0
  48. data/test/build_fixtures/type_0a_double_one_segment.vi +0 -0
  49. data/test/build_fixtures/type_0a_double_three_segments.vi +0 -0
  50. data/test/build_fixtures/type_0a_double_two_channels_one_segment.vi +0 -0
  51. data/test/build_fixtures/type_20_string_one_segment.vi +0 -0
  52. data/test/build_fixtures/type_20_string_three_segments.vi +0 -0
  53. data/test/build_fixtures/type_20_string_two_channels_one_segment.vi +0 -0
  54. data/test/build_fixtures/type_21_boolean_one_segment.vi +0 -0
  55. data/test/build_fixtures/type_21_boolean_three_segments.vi +0 -0
  56. data/test/build_fixtures/type_21_boolean_two_channels_one_segment.vi +0 -0
  57. data/test/build_fixtures/type_44_datetime_one_segment.vi +0 -0
  58. data/test/build_fixtures/type_44_timestamp_three_segments.vi +0 -0
  59. data/test/build_fixtures/type_44_timestamp_two_channels_one_segment.vi +0 -0
  60. data/test/fixtures/example.tdms +0 -0
  61. data/test/fixtures/type_01_int8_one_segment.tdms +0 -0
  62. data/test/fixtures/type_01_int8_three_segments.tdms +0 -0
  63. data/test/fixtures/type_01_int8_two_channels_one_segment.tdms +0 -0
  64. data/test/fixtures/type_02_int16_one_segment.tdms +0 -0
  65. data/test/fixtures/type_02_int16_three_segments.tdms +0 -0
  66. data/test/fixtures/type_02_int16_two_channels_one_segment.tdms +0 -0
  67. data/test/fixtures/type_03_int32_one_segment.tdms +0 -0
  68. data/test/fixtures/type_03_int32_three_segments.tdms +0 -0
  69. data/test/fixtures/type_03_int32_two_channels_one_segment.tdms +0 -0
  70. data/test/fixtures/type_04_int64_one_segment.tdms +0 -0
  71. data/test/fixtures/type_04_int64_three_segments.tdms +0 -0
  72. data/test/fixtures/type_04_int64_two_channels_one_segment.tdms +0 -0
  73. data/test/fixtures/type_05_uint8_one_segment.tdms +0 -0
  74. data/test/fixtures/type_05_uint8_three_segments.tdms +0 -0
  75. data/test/fixtures/type_05_uint8_two_channels_one_segment.tdms +0 -0
  76. data/test/fixtures/type_06_uint16_one_segment.tdms +0 -0
  77. data/test/fixtures/type_06_uint16_three_segments.tdms +0 -0
  78. data/test/fixtures/type_06_uint16_two_channels_one_segment.tdms +0 -0
  79. data/test/fixtures/type_07_uint32_one_segment.tdms +0 -0
  80. data/test/fixtures/type_07_uint32_three_segments.tdms +0 -0
  81. data/test/fixtures/type_07_uint32_two_channels_one_segment.tdms +0 -0
  82. data/test/fixtures/type_08_uint64_one_segment.tdms +0 -0
  83. data/test/fixtures/type_08_uint64_three_segments.tdms +0 -0
  84. data/test/fixtures/type_08_uint64_two_channels_one_segment.tdms +0 -0
  85. data/test/fixtures/type_09_single_one_segment.tdms +0 -0
  86. data/test/fixtures/type_09_single_three_segments.tdms +0 -0
  87. data/test/fixtures/type_09_single_two_channels_one_segment.tdms +0 -0
  88. data/test/fixtures/type_0a_double_one_segment.tdms +0 -0
  89. data/test/fixtures/type_0a_double_three_segments.tdms +0 -0
  90. data/test/fixtures/type_0a_double_two_channels_one_segment.tdms +0 -0
  91. data/test/fixtures/type_19_single_with_unit_one_segment.tdms +0 -0
  92. data/test/fixtures/type_19_single_with_unit_three_segments.tdms +0 -0
  93. data/test/fixtures/type_19_single_with_unit_two_channels_one_segment.tdms +0 -0
  94. data/test/fixtures/type_1a_double_with_unit_one_segment.tdms +0 -0
  95. data/test/fixtures/type_1a_double_with_unit_three_segments.tdms +0 -0
  96. data/test/fixtures/type_1a_double_with_unit_two_channels_one_segment.tdms +0 -0
  97. data/test/fixtures/type_20_double_two_channels_one_segment.tdms +0 -0
  98. data/test/fixtures/type_20_string_one_segment.tdms +0 -0
  99. data/test/fixtures/type_20_string_three_segments.tdms +0 -0
  100. data/test/fixtures/type_20_string_two_channels_one_segment.tdms +0 -0
  101. data/test/fixtures/type_20_string_two_segments.tdms +0 -0
  102. data/test/fixtures/type_21_boolean_one_segment.tdms +0 -0
  103. data/test/fixtures/type_21_boolean_three_segments.tdms +0 -0
  104. data/test/fixtures/type_21_boolean_two_channels_one_segment.tdms +0 -0
  105. data/test/fixtures/type_44_timestamp_one_segment.tdms +0 -0
  106. data/test/fixtures/type_44_timestamp_three_segments.tdms +0 -0
  107. data/test/fixtures/type_44_timestamp_two_channels_one_segment.tdms +0 -0
  108. data/test/read_type_01_int8_test.rb +58 -0
  109. data/test/read_type_02_int16_test.rb +58 -0
  110. data/test/read_type_03_int32_test.rb +58 -0
  111. data/test/read_type_04_int64_test.rb +64 -0
  112. data/test/read_type_05_uint8_test.rb +56 -0
  113. data/test/read_type_06_uint16_test.rb +58 -0
  114. data/test/read_type_07_uint32_test.rb +58 -0
  115. data/test/read_type_08_uint64_test.rb +58 -0
  116. data/test/read_type_09_single_test.rb +58 -0
  117. data/test/read_type_0a_double_test.rb +58 -0
  118. data/test/read_type_19_single_with_unit_test.rb +58 -0
  119. data/test/read_type_1a_double_with_unit_test.rb +58 -0
  120. data/test/read_type_20_string_test.rb +60 -0
  121. data/test/read_type_21_boolean_test.rb +56 -0
  122. data/test/read_type_44_timestamp_test.rb +60 -0
  123. data/test/test_helper.rb +9 -0
  124. metadata +284 -0
@@ -0,0 +1,60 @@
1
+ class ReadType20StringTest < Test::Unit::TestCase
2
+
3
+ def test_reads_one_string_channel_in_one_segment
4
+ filename = fixture_filename("type_20_string_one_segment")
5
+ doc = Tdms::File.parse(filename)
6
+
7
+ assert_equal 1, doc.segments.size
8
+ assert_equal 1, doc.segments[0].objects.size
9
+ assert_equal Tdms::DataType::Utf8String::Id, doc.segments[0].objects[0].data_type_id
10
+
11
+ chan = doc.channels.find {|ch| ch.path == "/'string_group'/'string_channel'" }
12
+ assert_equal 10, chan.values.size
13
+ expected = %w{zero one two three four five six seven eight nine}
14
+ assert_equal expected, chan.values.to_a
15
+ end
16
+
17
+ def test_reads_two_string_channels_in_one_segment
18
+ filename = fixture_filename("type_20_string_two_channels_one_segment")
19
+ doc = Tdms::File.parse(filename)
20
+
21
+ assert_equal 1, doc.segments.size
22
+ assert_equal 2, doc.segments[0].objects.size
23
+ assert_equal Tdms::DataType::Utf8String::Id, doc.segments[0].objects[0].data_type_id
24
+ assert_equal Tdms::DataType::Utf8String::Id, doc.segments[0].objects[1].data_type_id
25
+
26
+ chan = doc.channels.find {|ch| ch.path == "/'string_group'/'string_channel_a'" }
27
+ assert_equal 10, chan.values.size
28
+ expected = %w{a-zero a-one a-two a-three a-four a-five a-six a-seven a-eight a-nine}
29
+ assert_equal expected, chan.values.to_a
30
+
31
+ chan = doc.channels.find {|ch| ch.path == "/'string_group'/'string_channel_b'" }
32
+ assert_equal 10, chan.values.size
33
+ expected = %w{b-zero b-one b-two b-three b-four b-five b-six b-seven b-eight b-nine}
34
+ assert_equal expected, chan.values.to_a
35
+ end
36
+
37
+ def test_reads_one_string_channel_across_three_segments
38
+ filename = fixture_filename("type_20_string_three_segments")
39
+ doc = Tdms::File.parse(filename)
40
+
41
+ assert_equal 3, doc.segments.size
42
+ assert_equal 1, doc.segments[0].objects.size
43
+ assert_equal 1, doc.segments[1].objects.size
44
+ assert_equal 1, doc.segments[2].objects.size
45
+ assert_equal Tdms::DataType::Utf8String::Id, doc.segments[0].objects[0].data_type_id
46
+ assert_equal Tdms::DataType::Utf8String::Id, doc.segments[1].objects[0].data_type_id
47
+ assert_equal Tdms::DataType::Utf8String::Id, doc.segments[2].objects[0].data_type_id
48
+
49
+ chan = doc.channels.find {|ch| ch.path == "/'string_group'/'string_channel'" }
50
+ assert_equal 30, chan.values.size
51
+
52
+ expected = %w{zero one two three four five six seven eight nine
53
+ ten eleven twelve thirteen fourteen fifteen sixteen
54
+ seventeen eighteen nineteen twenty twenty-one twenty-two
55
+ twenty-three twenty-four twenty-five twenty-six
56
+ twenty-seven twenty-eight twenty-nine}
57
+ assert_equal expected, chan.values.to_a
58
+ end
59
+
60
+ end
@@ -0,0 +1,56 @@
1
+ class ReadType21BooleanTest < Test::Unit::TestCase
2
+
3
+ def test_reads_one_boolean_channel_in_one_segment
4
+ filename = fixture_filename("type_21_boolean_one_segment")
5
+ doc = Tdms::File.parse(filename)
6
+
7
+ assert_equal 1, doc.segments.size
8
+ assert_equal 1, doc.segments[0].objects.size
9
+ assert_equal Tdms::DataType::Boolean::Id, doc.segments[0].objects[0].data_type_id
10
+
11
+ chan = doc.channels.find {|ch| ch.path == "/'boolean_group'/'boolean_channel'" }
12
+ assert_equal 2, chan.values.size
13
+
14
+ expected = [true, false]
15
+ assert_equal expected, chan.values.to_a
16
+ end
17
+
18
+ def test_reads_two_boolean_channels_in_one_segment
19
+ filename = fixture_filename("type_21_boolean_two_channels_one_segment")
20
+ doc = Tdms::File.parse(filename)
21
+
22
+ assert_equal 1, doc.segments.size
23
+ assert_equal 2, doc.segments[0].objects.size
24
+ assert_equal Tdms::DataType::Boolean::Id, doc.segments[0].objects[0].data_type_id
25
+ assert_equal Tdms::DataType::Boolean::Id, doc.segments[0].objects[1].data_type_id
26
+
27
+ chan = doc.channels.find {|ch| ch.path == "/'boolean_group'/'boolean_channel_a'" }
28
+ assert_equal 2, chan.values.size
29
+ expected = [true, false]
30
+ assert_equal expected, chan.values.to_a
31
+
32
+ chan = doc.channels.find {|ch| ch.path == "/'boolean_group'/'boolean_channel_b'" }
33
+ assert_equal 2, chan.values.size
34
+ expected = [false, true]
35
+ assert_equal expected, chan.values.to_a
36
+ end
37
+
38
+ def test_reads_one_boolean_channel_across_three_segments
39
+ filename = fixture_filename("type_21_boolean_three_segments")
40
+ doc = Tdms::File.parse(filename)
41
+
42
+ assert_equal 3, doc.segments.size
43
+ assert_equal 1, doc.segments[0].objects.size
44
+ assert_equal 1, doc.segments[1].objects.size
45
+ assert_equal 1, doc.segments[2].objects.size
46
+ assert_equal Tdms::DataType::Boolean::Id, doc.segments[0].objects[0].data_type_id
47
+ assert_equal Tdms::DataType::Boolean::Id, doc.segments[1].objects[0].data_type_id
48
+ assert_equal Tdms::DataType::Boolean::Id, doc.segments[2].objects[0].data_type_id
49
+
50
+ chan = doc.channels.find {|ch| ch.path == "/'boolean_group'/'boolean_channel'" }
51
+ assert_equal 6, chan.values.size
52
+ expected = [true, false, true, false, true, false]
53
+ assert_equal expected, chan.values.to_a
54
+ end
55
+
56
+ end
@@ -0,0 +1,60 @@
1
+ class ReadType44TimestampTest < Test::Unit::TestCase
2
+
3
+ def test_reads_one_timestamp_channel_in_one_segment
4
+ filename = fixture_filename("type_44_timestamp_one_segment")
5
+ doc = Tdms::File.parse(filename)
6
+
7
+ assert_equal 1, doc.segments.size
8
+ assert_equal 1, doc.segments[0].objects.size
9
+ assert_equal Tdms::DataType::Timestamp::Id, doc.segments[0].objects[0].data_type_id
10
+
11
+
12
+ chan = doc.channels.find {|ch| ch.path == "/'timestamp_group'/'timestamp_channel'" }
13
+ assert_equal 3, chan.values.size
14
+
15
+ expected = ["1904-01-01 00:00:00", "2008-06-07 01:23:45", "1894-03-15 13:23:45"]
16
+ assert_equal expected, chan.values.map { |dt| dt.strftime("%Y-%m-%d %H:%M:%S") }
17
+ end
18
+
19
+ def test_reads_two_timestamp_channels_in_one_segment
20
+ filename = fixture_filename("type_44_timestamp_two_channels_one_segment")
21
+ doc = Tdms::File.parse(filename)
22
+
23
+ assert_equal 1, doc.segments.size
24
+ assert_equal 2, doc.segments[0].objects.size
25
+ assert_equal Tdms::DataType::Timestamp::Id, doc.segments[0].objects[0].data_type_id
26
+ assert_equal Tdms::DataType::Timestamp::Id, doc.segments[0].objects[1].data_type_id
27
+
28
+ chan = doc.channels.find {|ch| ch.path == "/'timestamp_group'/'timestamp_channel_a'" }
29
+ assert_equal 3, chan.values.size
30
+ expected = ["1904-01-01 00:00:00", "2008-06-07 01:23:45", "1894-03-15 13:23:45"]
31
+ assert_equal expected, chan.values.map { |dt| dt.strftime("%Y-%m-%d %H:%M:%S") }
32
+
33
+ chan = doc.channels.find {|ch| ch.path == "/'timestamp_group'/'timestamp_channel_b'" }
34
+ assert_equal 3, chan.values.size
35
+ expected = ["1894-03-15 13:23:45", "2008-06-07 01:23:45", "1904-01-01 00:00:00"]
36
+ assert_equal expected, chan.values.map { |dt| dt.strftime("%Y-%m-%d %H:%M:%S") }
37
+ end
38
+
39
+ def test_reads_one_timestamp_channel_across_three_segments
40
+ filename = fixture_filename("type_44_timestamp_three_segments")
41
+ doc = Tdms::File.parse(filename)
42
+
43
+ assert_equal 3, doc.segments.size
44
+ assert_equal 1, doc.segments[0].objects.size
45
+ assert_equal 1, doc.segments[1].objects.size
46
+ assert_equal 1, doc.segments[2].objects.size
47
+ assert_equal Tdms::DataType::Timestamp::Id, doc.segments[0].objects[0].data_type_id
48
+ assert_equal Tdms::DataType::Timestamp::Id, doc.segments[1].objects[0].data_type_id
49
+ assert_equal Tdms::DataType::Timestamp::Id, doc.segments[2].objects[0].data_type_id
50
+
51
+ chan = doc.channels.find {|ch| ch.path == "/'timestamp_group'/'timestamp_channel'" }
52
+ assert_equal 9, chan.values.size
53
+
54
+ expected = ["1904-01-01 00:00:00", "2008-06-07 01:23:45", "1894-03-15 13:23:45",
55
+ "1904-01-01 00:00:00", "2008-06-07 01:23:45", "1894-03-15 13:23:45",
56
+ "1904-01-01 00:00:00", "2008-06-07 01:23:45", "1894-03-15 13:23:45"]
57
+ assert_equal expected, chan.values.map { |dt| dt.strftime("%Y-%m-%d %H:%M:%S") }
58
+ end
59
+
60
+ end
@@ -0,0 +1,9 @@
1
+ require 'test/unit'
2
+
3
+ class Test::Unit::TestCase
4
+
5
+ def fixture_filename(fixture_name)
6
+ File.dirname(__FILE__) + "/fixtures/#{fixture_name}.tdms"
7
+ end
8
+
9
+ end
metadata ADDED
@@ -0,0 +1,284 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tdms
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Mike Naberezny
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-07-20 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ description: Ruby library to read files in NI TDMS format
28
+ email:
29
+ - mike@naberezny.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - ".travis.yml"
35
+ - LICENSE.txt
36
+ - README.md
37
+ - Rakefile
38
+ - demo.rb
39
+ - doc/data_types.txt
40
+ - doc/example_disasm.txt
41
+ - doc/tdms_format.txt
42
+ - doc/usage.txt
43
+ - lib/tdms.rb
44
+ - lib/tdms/aggregate.rb
45
+ - lib/tdms/channel.rb
46
+ - lib/tdms/datatypes.rb
47
+ - lib/tdms/document.rb
48
+ - lib/tdms/path.rb
49
+ - lib/tdms/property.rb
50
+ - lib/tdms/segment.rb
51
+ - lib/tdms/streaming.rb
52
+ - test/build_fixtures/README.txt
53
+ - test/build_fixtures/type_01_int8_one_segment.vi
54
+ - test/build_fixtures/type_01_int8_three_segments.vi
55
+ - test/build_fixtures/type_01_int8_two_channels_one_segment.vi
56
+ - test/build_fixtures/type_02_int16_one_segment.vi
57
+ - test/build_fixtures/type_02_int16_three_segments.vi
58
+ - test/build_fixtures/type_02_int16_two_channels_one_segment.vi
59
+ - test/build_fixtures/type_03_int32_one_segment.vi
60
+ - test/build_fixtures/type_03_int32_three_segments.vi
61
+ - test/build_fixtures/type_03_int32_two_channels_one_segment.vi
62
+ - test/build_fixtures/type_04_int64_one_segment.vi
63
+ - test/build_fixtures/type_04_int64_three_segments.vi
64
+ - test/build_fixtures/type_04_int64_two_channels_one_segment.vi
65
+ - test/build_fixtures/type_05_uint8_one_segment.vi
66
+ - test/build_fixtures/type_05_uint8_three_segments.vi
67
+ - test/build_fixtures/type_05_uint8_two_channels_one_segment.vi
68
+ - test/build_fixtures/type_06_uint16_one_segment.vi
69
+ - test/build_fixtures/type_06_uint16_three_segments.vi
70
+ - test/build_fixtures/type_06_uint16_two_channels_one_segment.vi
71
+ - test/build_fixtures/type_07_uint32_one_segment.vi
72
+ - test/build_fixtures/type_07_uint32_three_segments.vi
73
+ - test/build_fixtures/type_07_uint32_two_channels_one_segment.vi
74
+ - test/build_fixtures/type_08_uint64_one_segment.vi
75
+ - test/build_fixtures/type_08_uint64_three_segments.vi
76
+ - test/build_fixtures/type_08_uint64_two_channels_one_segment.vi
77
+ - test/build_fixtures/type_09_single_one_segment.vi
78
+ - test/build_fixtures/type_09_single_three_segments.vi
79
+ - test/build_fixtures/type_09_single_two_channels_one_segment.vi
80
+ - test/build_fixtures/type_0a_double_one_segment.vi
81
+ - test/build_fixtures/type_0a_double_three_segments.vi
82
+ - test/build_fixtures/type_0a_double_two_channels_one_segment.vi
83
+ - test/build_fixtures/type_20_string_one_segment.vi
84
+ - test/build_fixtures/type_20_string_three_segments.vi
85
+ - test/build_fixtures/type_20_string_two_channels_one_segment.vi
86
+ - test/build_fixtures/type_21_boolean_one_segment.vi
87
+ - test/build_fixtures/type_21_boolean_three_segments.vi
88
+ - test/build_fixtures/type_21_boolean_two_channels_one_segment.vi
89
+ - test/build_fixtures/type_44_datetime_one_segment.vi
90
+ - test/build_fixtures/type_44_timestamp_three_segments.vi
91
+ - test/build_fixtures/type_44_timestamp_two_channels_one_segment.vi
92
+ - test/fixtures/example.tdms
93
+ - test/fixtures/type_01_int8_one_segment.tdms
94
+ - test/fixtures/type_01_int8_three_segments.tdms
95
+ - test/fixtures/type_01_int8_two_channels_one_segment.tdms
96
+ - test/fixtures/type_02_int16_one_segment.tdms
97
+ - test/fixtures/type_02_int16_three_segments.tdms
98
+ - test/fixtures/type_02_int16_two_channels_one_segment.tdms
99
+ - test/fixtures/type_03_int32_one_segment.tdms
100
+ - test/fixtures/type_03_int32_three_segments.tdms
101
+ - test/fixtures/type_03_int32_two_channels_one_segment.tdms
102
+ - test/fixtures/type_04_int64_one_segment.tdms
103
+ - test/fixtures/type_04_int64_three_segments.tdms
104
+ - test/fixtures/type_04_int64_two_channels_one_segment.tdms
105
+ - test/fixtures/type_05_uint8_one_segment.tdms
106
+ - test/fixtures/type_05_uint8_three_segments.tdms
107
+ - test/fixtures/type_05_uint8_two_channels_one_segment.tdms
108
+ - test/fixtures/type_06_uint16_one_segment.tdms
109
+ - test/fixtures/type_06_uint16_three_segments.tdms
110
+ - test/fixtures/type_06_uint16_two_channels_one_segment.tdms
111
+ - test/fixtures/type_07_uint32_one_segment.tdms
112
+ - test/fixtures/type_07_uint32_three_segments.tdms
113
+ - test/fixtures/type_07_uint32_two_channels_one_segment.tdms
114
+ - test/fixtures/type_08_uint64_one_segment.tdms
115
+ - test/fixtures/type_08_uint64_three_segments.tdms
116
+ - test/fixtures/type_08_uint64_two_channels_one_segment.tdms
117
+ - test/fixtures/type_09_single_one_segment.tdms
118
+ - test/fixtures/type_09_single_three_segments.tdms
119
+ - test/fixtures/type_09_single_two_channels_one_segment.tdms
120
+ - test/fixtures/type_0a_double_one_segment.tdms
121
+ - test/fixtures/type_0a_double_three_segments.tdms
122
+ - test/fixtures/type_0a_double_two_channels_one_segment.tdms
123
+ - test/fixtures/type_19_single_with_unit_one_segment.tdms
124
+ - test/fixtures/type_19_single_with_unit_three_segments.tdms
125
+ - test/fixtures/type_19_single_with_unit_two_channels_one_segment.tdms
126
+ - test/fixtures/type_1a_double_with_unit_one_segment.tdms
127
+ - test/fixtures/type_1a_double_with_unit_three_segments.tdms
128
+ - test/fixtures/type_1a_double_with_unit_two_channels_one_segment.tdms
129
+ - test/fixtures/type_20_double_two_channels_one_segment.tdms
130
+ - test/fixtures/type_20_string_one_segment.tdms
131
+ - test/fixtures/type_20_string_three_segments.tdms
132
+ - test/fixtures/type_20_string_two_channels_one_segment.tdms
133
+ - test/fixtures/type_20_string_two_segments.tdms
134
+ - test/fixtures/type_21_boolean_one_segment.tdms
135
+ - test/fixtures/type_21_boolean_three_segments.tdms
136
+ - test/fixtures/type_21_boolean_two_channels_one_segment.tdms
137
+ - test/fixtures/type_44_timestamp_one_segment.tdms
138
+ - test/fixtures/type_44_timestamp_three_segments.tdms
139
+ - test/fixtures/type_44_timestamp_two_channels_one_segment.tdms
140
+ - test/read_type_01_int8_test.rb
141
+ - test/read_type_02_int16_test.rb
142
+ - test/read_type_03_int32_test.rb
143
+ - test/read_type_04_int64_test.rb
144
+ - test/read_type_05_uint8_test.rb
145
+ - test/read_type_06_uint16_test.rb
146
+ - test/read_type_07_uint32_test.rb
147
+ - test/read_type_08_uint64_test.rb
148
+ - test/read_type_09_single_test.rb
149
+ - test/read_type_0a_double_test.rb
150
+ - test/read_type_19_single_with_unit_test.rb
151
+ - test/read_type_1a_double_with_unit_test.rb
152
+ - test/read_type_20_string_test.rb
153
+ - test/read_type_21_boolean_test.rb
154
+ - test/read_type_44_timestamp_test.rb
155
+ - test/test_helper.rb
156
+ homepage: https://github.com/mnaberez/tdms
157
+ licenses:
158
+ - BSD
159
+ metadata: {}
160
+ post_install_message:
161
+ rdoc_options: []
162
+ require_paths:
163
+ - lib
164
+ required_ruby_version: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - ">="
167
+ - !ruby/object:Gem::Version
168
+ version: 1.9.3
169
+ required_rubygems_version: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ requirements: []
175
+ rubyforge_project:
176
+ rubygems_version: 2.4.5.1
177
+ signing_key:
178
+ specification_version: 4
179
+ summary: Ruby library to read files in NI TDMS format
180
+ test_files:
181
+ - test/build_fixtures/README.txt
182
+ - test/build_fixtures/type_01_int8_one_segment.vi
183
+ - test/build_fixtures/type_01_int8_three_segments.vi
184
+ - test/build_fixtures/type_01_int8_two_channels_one_segment.vi
185
+ - test/build_fixtures/type_02_int16_one_segment.vi
186
+ - test/build_fixtures/type_02_int16_three_segments.vi
187
+ - test/build_fixtures/type_02_int16_two_channels_one_segment.vi
188
+ - test/build_fixtures/type_03_int32_one_segment.vi
189
+ - test/build_fixtures/type_03_int32_three_segments.vi
190
+ - test/build_fixtures/type_03_int32_two_channels_one_segment.vi
191
+ - test/build_fixtures/type_04_int64_one_segment.vi
192
+ - test/build_fixtures/type_04_int64_three_segments.vi
193
+ - test/build_fixtures/type_04_int64_two_channels_one_segment.vi
194
+ - test/build_fixtures/type_05_uint8_one_segment.vi
195
+ - test/build_fixtures/type_05_uint8_three_segments.vi
196
+ - test/build_fixtures/type_05_uint8_two_channels_one_segment.vi
197
+ - test/build_fixtures/type_06_uint16_one_segment.vi
198
+ - test/build_fixtures/type_06_uint16_three_segments.vi
199
+ - test/build_fixtures/type_06_uint16_two_channels_one_segment.vi
200
+ - test/build_fixtures/type_07_uint32_one_segment.vi
201
+ - test/build_fixtures/type_07_uint32_three_segments.vi
202
+ - test/build_fixtures/type_07_uint32_two_channels_one_segment.vi
203
+ - test/build_fixtures/type_08_uint64_one_segment.vi
204
+ - test/build_fixtures/type_08_uint64_three_segments.vi
205
+ - test/build_fixtures/type_08_uint64_two_channels_one_segment.vi
206
+ - test/build_fixtures/type_09_single_one_segment.vi
207
+ - test/build_fixtures/type_09_single_three_segments.vi
208
+ - test/build_fixtures/type_09_single_two_channels_one_segment.vi
209
+ - test/build_fixtures/type_0a_double_one_segment.vi
210
+ - test/build_fixtures/type_0a_double_three_segments.vi
211
+ - test/build_fixtures/type_0a_double_two_channels_one_segment.vi
212
+ - test/build_fixtures/type_20_string_one_segment.vi
213
+ - test/build_fixtures/type_20_string_three_segments.vi
214
+ - test/build_fixtures/type_20_string_two_channels_one_segment.vi
215
+ - test/build_fixtures/type_21_boolean_one_segment.vi
216
+ - test/build_fixtures/type_21_boolean_three_segments.vi
217
+ - test/build_fixtures/type_21_boolean_two_channels_one_segment.vi
218
+ - test/build_fixtures/type_44_datetime_one_segment.vi
219
+ - test/build_fixtures/type_44_timestamp_three_segments.vi
220
+ - test/build_fixtures/type_44_timestamp_two_channels_one_segment.vi
221
+ - test/fixtures/example.tdms
222
+ - test/fixtures/type_01_int8_one_segment.tdms
223
+ - test/fixtures/type_01_int8_three_segments.tdms
224
+ - test/fixtures/type_01_int8_two_channels_one_segment.tdms
225
+ - test/fixtures/type_02_int16_one_segment.tdms
226
+ - test/fixtures/type_02_int16_three_segments.tdms
227
+ - test/fixtures/type_02_int16_two_channels_one_segment.tdms
228
+ - test/fixtures/type_03_int32_one_segment.tdms
229
+ - test/fixtures/type_03_int32_three_segments.tdms
230
+ - test/fixtures/type_03_int32_two_channels_one_segment.tdms
231
+ - test/fixtures/type_04_int64_one_segment.tdms
232
+ - test/fixtures/type_04_int64_three_segments.tdms
233
+ - test/fixtures/type_04_int64_two_channels_one_segment.tdms
234
+ - test/fixtures/type_05_uint8_one_segment.tdms
235
+ - test/fixtures/type_05_uint8_three_segments.tdms
236
+ - test/fixtures/type_05_uint8_two_channels_one_segment.tdms
237
+ - test/fixtures/type_06_uint16_one_segment.tdms
238
+ - test/fixtures/type_06_uint16_three_segments.tdms
239
+ - test/fixtures/type_06_uint16_two_channels_one_segment.tdms
240
+ - test/fixtures/type_07_uint32_one_segment.tdms
241
+ - test/fixtures/type_07_uint32_three_segments.tdms
242
+ - test/fixtures/type_07_uint32_two_channels_one_segment.tdms
243
+ - test/fixtures/type_08_uint64_one_segment.tdms
244
+ - test/fixtures/type_08_uint64_three_segments.tdms
245
+ - test/fixtures/type_08_uint64_two_channels_one_segment.tdms
246
+ - test/fixtures/type_09_single_one_segment.tdms
247
+ - test/fixtures/type_09_single_three_segments.tdms
248
+ - test/fixtures/type_09_single_two_channels_one_segment.tdms
249
+ - test/fixtures/type_0a_double_one_segment.tdms
250
+ - test/fixtures/type_0a_double_three_segments.tdms
251
+ - test/fixtures/type_0a_double_two_channels_one_segment.tdms
252
+ - test/fixtures/type_19_single_with_unit_one_segment.tdms
253
+ - test/fixtures/type_19_single_with_unit_three_segments.tdms
254
+ - test/fixtures/type_19_single_with_unit_two_channels_one_segment.tdms
255
+ - test/fixtures/type_1a_double_with_unit_one_segment.tdms
256
+ - test/fixtures/type_1a_double_with_unit_three_segments.tdms
257
+ - test/fixtures/type_1a_double_with_unit_two_channels_one_segment.tdms
258
+ - test/fixtures/type_20_double_two_channels_one_segment.tdms
259
+ - test/fixtures/type_20_string_one_segment.tdms
260
+ - test/fixtures/type_20_string_three_segments.tdms
261
+ - test/fixtures/type_20_string_two_channels_one_segment.tdms
262
+ - test/fixtures/type_20_string_two_segments.tdms
263
+ - test/fixtures/type_21_boolean_one_segment.tdms
264
+ - test/fixtures/type_21_boolean_three_segments.tdms
265
+ - test/fixtures/type_21_boolean_two_channels_one_segment.tdms
266
+ - test/fixtures/type_44_timestamp_one_segment.tdms
267
+ - test/fixtures/type_44_timestamp_three_segments.tdms
268
+ - test/fixtures/type_44_timestamp_two_channels_one_segment.tdms
269
+ - test/read_type_01_int8_test.rb
270
+ - test/read_type_02_int16_test.rb
271
+ - test/read_type_03_int32_test.rb
272
+ - test/read_type_04_int64_test.rb
273
+ - test/read_type_05_uint8_test.rb
274
+ - test/read_type_06_uint16_test.rb
275
+ - test/read_type_07_uint32_test.rb
276
+ - test/read_type_08_uint64_test.rb
277
+ - test/read_type_09_single_test.rb
278
+ - test/read_type_0a_double_test.rb
279
+ - test/read_type_19_single_with_unit_test.rb
280
+ - test/read_type_1a_double_with_unit_test.rb
281
+ - test/read_type_20_string_test.rb
282
+ - test/read_type_21_boolean_test.rb
283
+ - test/read_type_44_timestamp_test.rb
284
+ - test/test_helper.rb