From 025b8701c09813c40339bd8fa1c75e0e5eaf7120 Mon Sep 17 00:00:00 2001 From: Samuel Williams Date: Mon, 26 Sep 2022 18:06:12 +1300 Subject: Add several new methods for getting and setting buffer contents. (#6434) --- test/ruby/test_io_buffer.rb | 50 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 46 insertions(+), 4 deletions(-) (limited to 'test') diff --git a/test/ruby/test_io_buffer.rb b/test/ruby/test_io_buffer.rb index 0f8a9c5e80..88b0a0280a 100644 --- a/test/ruby/test_io_buffer.rb +++ b/test/ruby/test_io_buffer.rb @@ -235,17 +235,59 @@ class TestIOBuffer < Test::Unit::TestCase :F64 => [-1.0, 0.0, 0.5, 1.0, 128.0], } - def test_get_set_primitives + def test_get_set_value buffer = IO::Buffer.new(128) - RANGES.each do |type, values| + RANGES.each do |data_type, values| values.each do |value| - buffer.set_value(type, 0, value) - assert_equal value, buffer.get_value(type, 0), "Converting #{value} as #{type}." + buffer.set_value(data_type, 0, value) + assert_equal value, buffer.get_value(data_type, 0), "Converting #{value} as #{data_type}." end end end + def test_get_set_values + buffer = IO::Buffer.new(128) + + RANGES.each do |data_type, values| + format = [data_type] * values.size + + buffer.set_values(format, 0, values) + assert_equal values, buffer.get_values(format, 0), "Converting #{values} as #{format}." + end + end + + def test_values + buffer = IO::Buffer.new(128) + + RANGES.each do |data_type, values| + format = [data_type] * values.size + + buffer.set_values(format, 0, values) + assert_equal values, buffer.values(data_type, 0, values.size), "Reading #{values} as #{format}." + end + end + + def test_each + buffer = IO::Buffer.new(128) + + RANGES.each do |data_type, values| + format = [data_type] * values.size + data_type_size = IO::Buffer.size_of(data_type) + values_with_offsets = values.map.with_index{|value, index| [index * data_type_size, value]} + + buffer.set_values(format, 0, values) + assert_equal values_with_offsets, buffer.each(data_type, 0, values.size).to_a, "Reading #{values} as #{data_type}." + end + end + + def test_each_byte + string = "The quick brown fox jumped over the lazy dog." + buffer = IO::Buffer.for(string) + + assert_equal string.bytes, buffer.each_byte.to_a + end + def test_clear buffer = IO::Buffer.new(16) buffer.set_string("Hello World!") -- cgit v1.2.3