Sha256: a903d098192a06b7eb9e511324672d9417906408d7741a321cd5cf6d09df0d15

Contents?: true

Size: 927 Bytes

Versions: 9

Compression:

Stored size: 927 Bytes

Contents

# encoding: UTF-8

module ICU
  describe UCharPointer do
    it 'allocates enough memory for 16-bit characters' do
      expect(UCharPointer.new(5).size).to eq(10)
    end

    it 'builds a buffer from a string' do
      ptr = UCharPointer.from_string('abc')
      expect(ptr).to be_a UCharPointer
      expect(ptr.size).to eq(6)
      expect(ptr.read_array_of_uint16(3)).to eq([0x61, 0x62, 0x63])
    end

    it 'takes an optional capacity' do
      ptr = UCharPointer.from_string('abc', 5)
      expect(ptr.size).to eq(10)
    end

    describe 'converting to string' do
      let(:ptr) { UCharPointer.new(3).write_array_of_uint16 [0x78, 0x0, 0x79] }

      it 'returns the the entire buffer by default' do
        expect(ptr.string).to eq("x\0y")
      end

      it 'returns strings of the specified length' do
        expect(ptr.string(0)).to eq("")
        expect(ptr.string(2)).to eq("x\0")
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
ffi-icu-0.5.3 spec/uchar_spec.rb
ffi-icu-0.5.2 spec/uchar_spec.rb
ffi-icu-0.5.1 spec/uchar_spec.rb
ffi-icu-0.5.0 spec/uchar_spec.rb
ffi-icu-0.4.3 spec/uchar_spec.rb
ffi-icu-0.4.2 spec/uchar_spec.rb
ffi-icu-0.4.1 spec/uchar_spec.rb
ffi-icu-0.4.0 spec/uchar_spec.rb
ffi-icu-0.3.0 spec/uchar_spec.rb