Sha256: dc2f621a6e933d48696df26fb2f984bc53826b9596aff6e30d1a4cbae720f540

Contents?: true

Size: 1.19 KB

Versions: 131

Compression:

Stored size: 1.19 KB

Contents

require 'test/unit'
require 'test/proto/packed.pb'

class PackedFieldTest < Test::Unit::TestCase

  def test_packed_field
    values = [1, 1_000, 10_000, 1_000_000, 1_000_000_000]

    # encode
    message = Test::PackedField::Message.new
    message.a = values
    message.b = values

    expected = ''
    serialized_string = nil
    assert_nothing_raised { serialized_string = message.serialize_to_string }

    value = values.map {|v| Protobuf::Field::VarintField.encode(v) }.join
    expected << Protobuf::Field::VarintField.encode((1 << 3) | 2)  # tag=1, wire_type=2 (length-delimited)
    expected << Protobuf::Field::VarintField.encode(value.size)
    expected << value

    value = values.pack('V*')
    expected << Protobuf::Field::VarintField.encode((2 << 3) | 2)  # tag=2, wire_type=2 (length-delimited)
    expected << Protobuf::Field::VarintField.encode(value.size)
    expected << value

    assert_equal(expected, serialized_string)

    # decode
    message2 = Test::PackedField::Message.new
    assert_nothing_raised { message2.parse_from_string(serialized_string) }

    values.each_with_index do |val, n|
      assert_equal(val, message.a[n])
      assert_equal(val, message.b[n])
    end
  end

end

Version data entries

131 entries across 131 versions & 2 rubygems

Version Path
protobuf-2.7.12 test/test_packed_field.rb
protobuf-2.8.0.beta9-java test/test_packed_field.rb
protobuf-2.8.0.beta9 test/test_packed_field.rb
protobuf-2.8.0.beta8-java test/test_packed_field.rb
protobuf-2.8.0.beta8 test/test_packed_field.rb
protobuf-2.8.0.beta6-java test/test_packed_field.rb
protobuf-2.8.0.beta6 test/test_packed_field.rb
protobuf-2.8.0.beta5-java test/test_packed_field.rb
protobuf-2.8.0.beta5 test/test_packed_field.rb
protobuf-2.8.0.beta4-java test/test_packed_field.rb
protobuf-2.8.0.beta4 test/test_packed_field.rb
protobuf-2.8.0.beta3-java test/test_packed_field.rb
protobuf-2.8.0.beta3 test/test_packed_field.rb
protobuf-2.8.0.beta2-java test/test_packed_field.rb
protobuf-2.8.0.beta2 test/test_packed_field.rb
protobuf-2.7.11-java test/test_packed_field.rb
protobuf-2.7.11 test/test_packed_field.rb
protobuf-2.8.0.beta1-java test/test_packed_field.rb
protobuf-2.8.0.beta1 test/test_packed_field.rb
protobuf-2.7.10-java test/test_packed_field.rb