add tests
This commit is contained in:
1 parent
986df46a25
commit
674e37bae4
1 file changed
+36
@@ -7,7 +7,43 @@ defmodule FeedReader.LanguageTest do
|
|||||||
assert is_atom(FeedReader.Language.detect(text))
|
assert is_atom(FeedReader.Language.detect(text))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "stops adding list entries after the detection limit" do
|
||||||
|
text = String.duplicate("This is English text. ", 2_000)
|
||||||
|
|
||||||
|
assert is_atom(FeedReader.Language.detect([text, "This entry is ignored."]))
|
||||||
|
end
|
||||||
|
|
||||||
test "ignores non-text values when building a detection sample" do
|
test "ignores non-text values when building a detection sample" do
|
||||||
assert FeedReader.Language.detect([nil, 123]) == :en
|
assert FeedReader.Language.detect([nil, 123]) == :en
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "detects English from plain text" do
|
||||||
|
text = "The quick brown fox jumps over the lazy dog."
|
||||||
|
|
||||||
|
assert FeedReader.Language.detect(text) == :en
|
||||||
|
end
|
||||||
|
|
||||||
|
test "detects Portuguese from text and ignores markup" do
|
||||||
|
text = "<p>Este é um texto em português com palavras suficientes para detectar o idioma.</p>"
|
||||||
|
|
||||||
|
assert FeedReader.Language.detect(text) == :pt
|
||||||
|
end
|
||||||
|
|
||||||
|
test "combines binary list entries and skips non-text values" do
|
||||||
|
texts = [nil, "Este é um texto em português", 42, " com palavras suficientes para detectar."]
|
||||||
|
|
||||||
|
assert FeedReader.Language.detect(texts) == :pt
|
||||||
|
end
|
||||||
|
|
||||||
|
test "falls back to English for empty and unsupported input" do
|
||||||
|
assert FeedReader.Language.detect([]) == :en
|
||||||
|
assert FeedReader.Language.detect("") == :en
|
||||||
|
assert FeedReader.Language.detect(%{}) == :en
|
||||||
|
end
|
||||||
|
|
||||||
|
test "falls back to English when the detector exits on invalid UTF-8" do
|
||||||
|
ExUnit.CaptureLog.capture_log(fn ->
|
||||||
|
assert FeedReader.Language.detect(<<0xFF>>) == :en
|
||||||
|
end)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
Reference in new issue
Block a user