Sha256: 2ee8e159eba2bdeb4bb11588de3e7ef5d6ac81c0da9eeb37623a9e4fa535c164

Contents?: true

Size: 1.32 KB

Versions: 8

Compression:

Stored size: 1.32 KB

Contents

# encoding: UTF-8

# Copyright 2012 Twitter, Inc
# http://www.apache.org/licenses/LICENSE-2.0

require 'spec_helper'

include TwitterCldr::Collation

describe TrieWithFallback do

  let(:fallback) { TwitterCldr::Utils::Trie.new }
  let(:trie)     { TrieWithFallback.new(fallback) }

  before(:each) { trie.add([1, 2, 3], 'value') }

  describe '#get' do
    it 'returns result if the key is present' do
      expect(fallback).to_not receive(:get)
      expect(trie.get([1, 2, 3])).to eq('value')
    end

    it 'resorts to the fallback if the key is not present' do
      expect(fallback).to receive(:get).with([3, 2, 1]).and_return('fallback-value')
      expect(trie.get([3, 2, 1])).to eq('fallback-value')
    end
  end

  describe '#find_prefix' do
    it 'returns result if the key is present' do
      expect(fallback).to_not receive(:find_prefix)
      expect(trie.find_prefix([1, 2, 3, 4]).first(2)).to eq(['value', 3])
    end

    it 'resorts to the fallback if the key is not present' do
      expect(fallback).to receive(:find_prefix).with([3, 2, 1]).and_return('fallback-result')
      expect(trie.find_prefix([3, 2, 1])).to eq('fallback-result')
    end
  end

  describe 'marshaling' do
    it 'does not dump fallback' do
      expect(Marshal.load(Marshal.dump(TrieWithFallback.new(Trie.new))).fallback).to be_nil
    end
  end

end

Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
metanorma-cli-1.3.4 gems/ruby/2.6.0/gems/twitter_cldr-4.4.5/spec/collation/trie_with_fallback_spec.rb
metanorma-cli-1.3.3.1 gems/ruby/2.6.0/gems/twitter_cldr-4.4.5/spec/collation/trie_with_fallback_spec.rb
twitter_cldr-4.4.5 spec/collation/trie_with_fallback_spec.rb
twitter_cldr-4.4.4 spec/collation/trie_with_fallback_spec.rb
twitter_cldr-4.4.3 spec/collation/trie_with_fallback_spec.rb
twitter_cldr-4.4.2 spec/collation/trie_with_fallback_spec.rb
twitter_cldr-4.4.1 spec/collation/trie_with_fallback_spec.rb
twitter_cldr-4.4.0 spec/collation/trie_with_fallback_spec.rb