spec/functional/automatic_segmentation_spec.rb in picky-4.17.1 vs spec/functional/automatic_segmentation_spec.rb in picky-4.18.0

- old
+ new

@@ -20,72 +20,75 @@ index.add OpenStruct.new(id: 6, text: 'The king is in Spain.') index end - it 'can split the text automatically' do - automatic_splitter = Picky::Splitters::Automatic.new index[:text] + context 'splitting the text automatically' do + let(:automatic_splitter) { Picky::Splitters::Automatic.new index[:text] } # It splits the text correctly. # - automatic_splitter.split('purplerainbow').should == ['purple', 'rain', 'bow'] - automatic_splitter.split('purplerain').should == ['purple', 'rain'] - automatic_splitter.split('purple').should == ['purple'] + it { automatic_splitter.split('purplerainbow').should == ['purple', 'rain', 'bow'] } + it { automatic_splitter.split('purplerain').should == ['purple', 'rain'] } + it { automatic_splitter.split('purple').should == ['purple'] } # When it can't, it splits it using the partial index (correctly). # - automatic_splitter.split('purplerainbo').should == ['purple', 'rain'] - automatic_splitter.split('purplerainb').should == ['purple', 'rain'] + it { automatic_splitter.split('purplerainbo').should == ['purple', 'rain'] } + it { automatic_splitter.split('purplerainb').should == ['purple', 'rain'] } # - automatic_splitter.split('purplerai').should == ['purple'] - automatic_splitter.split('purplera').should == ['purple'] - automatic_splitter.split('purpler').should == ['purple'] + it { automatic_splitter.split('purplerai').should == ['purple'] } + it { automatic_splitter.split('purplera').should == ['purple'] } + it { automatic_splitter.split('purpler').should == ['purple'] } # - automatic_splitter.split('purpl').should == [] - automatic_splitter.split('purp').should == [] - automatic_splitter.split('pur').should == [] - automatic_splitter.split('pu').should == [] - automatic_splitter.split('p').should == [] + it { automatic_splitter.split('purpl').should == [] } + it { automatic_splitter.split('purp').should == [] } + it { automatic_splitter.split('pur').should == [] } + it { automatic_splitter.split('pu').should == [] } + it { automatic_splitter.split('p').should == [] } end - it 'can split text automatically (with partial)' do - automatic_splitter = Picky::Splitters::Automatic.new index[:text], partial: true + context 'splitting text automatically (with partial)' do + let(:automatic_splitter) { Picky::Splitters::Automatic.new index[:text], partial: true } # It splits the text correctly. # - automatic_splitter.split('purplerainbow').should == ['purple', 'rain', 'bow'] - automatic_splitter.split('purplerain').should == ['purple', 'rain'] - automatic_splitter.split('purple').should == ['purple'] + it { automatic_splitter.split('purplerainbow').should == ['purple', 'rain', 'bow'] } + it { automatic_splitter.split('purplerain').should == ['purple', 'rain'] } + it { automatic_splitter.split('purple').should == ['purple'] } # When it can't, it splits it using the partial index (correctly). # - automatic_splitter.split('purplerainbo').should == ['purple', 'rain', 'bo'] - automatic_splitter.split('purplerainb').should == ['purple', 'rain', 'b'] + it { automatic_splitter.split('purplerainbo').should == ['purple', 'rain', 'bo'] } + it { automatic_splitter.split('purplerainb').should == ['purple', 'rain', 'b'] } # - automatic_splitter.split('purplerai').should == ['purple', 'rai'] - automatic_splitter.split('purplera').should == ['purple', 'ra'] - automatic_splitter.split('purpler').should == ['purple'] # No 'r' in partial index. + it { automatic_splitter.split('purplerai').should == ['purple', 'rai'] } + it { automatic_splitter.split('purplera').should == ['purple', 'ra'] } + it { automatic_splitter.split('purpler').should == ['purple'] } # No 'r' in partial index. # - automatic_splitter.split('purpl').should == ['purpl'] - automatic_splitter.split('purp').should == ['purp'] - automatic_splitter.split('pur').should == [] # No 'pur' in partial index etc. - automatic_splitter.split('pu').should == [] - automatic_splitter.split('p').should == [] + it { automatic_splitter.split('purpl').should == ['purpl'] } + it { automatic_splitter.split('purp').should == ['purp'] } + it { automatic_splitter.split('pur').should == [] } # No 'pur' in partial index etc. + it { automatic_splitter.split('pu').should == [] } + it { automatic_splitter.split('p').should == [] } - try = Picky::Search.new index do - searching splits_text_on: automatic_splitter + let(:try) do + splitter = automatic_splitter + Picky::Search.new index do + searching splits_text_on: splitter + end end # Should find the one with all parts. # - try.search('purplerainbow').ids.should == [1] - try.search('sunandrain').ids.should == [5] + it { try.search('purplerainbow').ids.should == [1] } + it { try.search('sunandrain').ids.should == [5] } # Common parts are found in multiple examples. # - try.search('colorpurple').ids.should == [4,1] - try.search('bownew').ids.should == [3,1] - try.search('spainisking').ids.should == [6,1] + it { try.search('colorpurple').ids.should == [4,1] } + it { try.search('bownew').ids.should == [3,1] } + it { try.search('spainisking').ids.should == [6,1] } end it 'is fast enough' do automatic_splitter = Picky::Splitters::Automatic.new index[:text] \ No newline at end of file