| 216 | end |
| 217 | |
| 218 | def test_serialization |
| 219 | skip "vocab method performs many allocations" if stress? |
| 220 | |
| 221 | tokenizer = Tokenizers.from_pretrained("bert-base-cased") |
| 222 | assert_nil tokenizer.vocab["mellifluous"] |
| 223 | |
| 224 | tokenizer.add_tokens(["mellifluous", "malodorous"]) |
| 225 | preserialization_size_with_added_tokens = tokenizer.vocab_size |
| 226 | assert_equal 28996, tokenizer.vocab["mellifluous"] |
| 227 | |
| 228 | as_pretty_str = tokenizer.to_s(pretty: true) |
| 229 | assert_equal 29163, as_pretty_str.count("\n") |
| 230 | |
| 231 | Dir.mktmpdir do |dir| |
| 232 | pretty_path = "#{dir}/pretty-tokenizer.json" |
| 233 | tokenizer.save(pretty_path, pretty: true) |
| 234 | |
| 235 | # Compare file content |
| 236 | pretty_from_file = File.read(pretty_path) |
| 237 | assert_equal as_pretty_str, pretty_from_file |
| 238 | |
| 239 | new_tokenizer = Tokenizers.from_file(pretty_path) |
| 240 | assert_equal preserialization_size_with_added_tokens, new_tokenizer.vocab_size |
| 241 | assert_equal 28996, new_tokenizer.vocab["mellifluous"] |
| 242 | end |
| 243 | end |
| 244 | |
| 245 | def test_num_special_tokens_to_add |
| 246 | tokenizer = Tokenizers.from_pretrained("bert-base-cased") |
nothing calls this directly
no test coverage detected