You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.0 KiB
73 lines
2.0 KiB
require 'spec_helper' |
|
require 'squib/graphics/embedding_utils' |
|
|
|
describe Squib::EmbeddingUtils do |
|
|
|
context(:indices) do |
|
it 'returns nothing when given nothing' do |
|
expect(Squib::EmbeddingUtils.indices('just some text', [])).to eq({}) |
|
end |
|
|
|
it 'returns emptiness for given keys that are not in the string' do |
|
str = 'just some text' |
|
keys = [':tool:'] |
|
expect(Squib::EmbeddingUtils.indices(str, keys)).to eq({ |
|
':tool:' => [] |
|
}) |
|
end |
|
|
|
it 'returns correctly for one key, one time' do |
|
str = 'some :tool: text' |
|
keys = [':tool:'] |
|
expect(Squib::EmbeddingUtils.indices(str, keys)).to eq({ |
|
':tool:' => [5..11] |
|
}) |
|
end |
|
|
|
it 'handles one key, multiple times' do |
|
str = 'some :tool: text :tool:' |
|
keys = [':tool:'] |
|
expect(Squib::EmbeddingUtils.indices(str, keys)).to eq({ |
|
':tool:' => [5..11, 17..23] |
|
}) |
|
end |
|
|
|
it 'handles one key, multiple times next to each other' do |
|
str = 'some :tool::tool: text' |
|
keys = [':tool:'] |
|
expect(Squib::EmbeddingUtils.indices(str, keys)).to eq({ |
|
':tool:' => [5..11, 11..17] |
|
}) |
|
end |
|
|
|
it 'handles multiple keys, one time each' do |
|
str = 'some :tool: heart text' |
|
keys = %w(:tool: heart) |
|
expect(Squib::EmbeddingUtils.indices(str, keys)).to eq({ |
|
':tool:' => [5..11], |
|
'heart' => [12..17] |
|
}) |
|
end |
|
|
|
it 'handles multiple keys, multiple times each' do |
|
str = ':tool:some :tool: heart text heart tool' |
|
keys = %w(:tool: heart) |
|
expect(Squib::EmbeddingUtils.indices(str, keys)).to eq({ |
|
':tool:' => [0..6, 11..17], |
|
'heart' => [18..23, 29..34] |
|
}) |
|
end |
|
|
|
it 'handles multibyte properly' do |
|
str = '💡 📷 :tool: heart text' |
|
keys = %w(:tool: heart 💡) |
|
expect(Squib::EmbeddingUtils.indices(str, keys)).to eq({ |
|
':tool:' => [10..16], |
|
'heart' => [17..22], |
|
'💡' => [3..4] |
|
}) |
|
end |
|
|
|
|
|
end |
|
end
|
|
|