public static Language makeAdditionalLanguage(File file) throws InstantiationException, IllegalAccessException { return makeLanguage(file, true); }
@Override public Locale getLocale() { return new Locale(getShortCode()); }
public void enableFasttext(File fasttextBinary, File fasttextModel) { if (fasttextBinary != null && fasttextModel != null) { try { startFasttext(fasttextModel, fasttextBinary); logger.info("Started fasttext process for language identification: Binary " + fasttextBinary + " with model @ " + fasttextModel); fasttextEnabled = true; } catch (IOException e) { fasttextEnabled = false; throw new RuntimeException("Could not start fasttext process for language identification @ " + fasttextBinary + " with model @ " + fasttextModel, e); } } }
private PatternRule getPatternRule(List<PatternToken> patternTokens) { return new PatternRule("", new Demo(), patternTokens, "my description", "my message", "short message"); } }
/** * @return language or {@code null} if language could not be identified */ @Nullable @Experimental DetectedLanguage detectLanguageWithDetails(String text) { DetectedLanguage detectedLanguage = detectLanguage(text, Collections.emptyList()); if (detectedLanguage == null) { return null; } return detectedLanguage; }
@Test public void testIllegalFileName() throws Exception { try { LanguageBuilder.makeAdditionalLanguage(new File("foo")); fail(); } catch (RuleFilenameException ignored) {} }
@Test(expected = IllegalArgumentException.class) public void testIllegalThreadPoolSize2() { new MultiThreadedJLanguageTool(new Demo(), null, 0, null); } }
/** * @return language or {@code null} if language could not be identified */ @Nullable public Language detectLanguage(String text) { DetectedLanguage detectedLanguage = detectLanguage(text, Collections.emptyList()); if (detectedLanguage == null) { return null; } return detectedLanguage.getDetectedLanguage(); }
@Test(expected = IllegalArgumentException.class) public void testIllegalThreadPoolSize1() { new MultiThreadedJLanguageTool(new Demo(), 0); }
@BeforeClass public static void setup() { langTool = new JLanguageTool(new Demo()); }
@Test public void orderSuggestionsUsingModelExistingRuleId() throws IOException { Language language = new Demo(); String rule_id = "MORFOLOGIK_RULE_EN_US"; testOrderingHappened(language, rule_id); }
@Test public void testRules() throws IOException { runTestForLanguage(new Demo()); }
@Test public void orderSuggestionsUsingModelNonExistingRuleId() throws IOException { Language language = new Demo(); String rule_id = "rule_id"; testOrderingHappened(language, rule_id); }
@Test public void testSelectRules() { Demo demo = new Demo(); expectDemoRuleId(Collections.emptySet(), Collections.emptySet(), Collections.emptySet(), Collections.emptySet(), false, demo); expectNotDemoRuleId(Collections.emptySet(), Collections.emptySet(), Collections.singleton("DEMO_RULE"), Collections.emptySet(), false, demo); expectNotDemoRuleId(Collections.singleton(CategoryIds.MISC), Collections.emptySet(), Collections.emptySet(), Collections.emptySet(), false, demo); // disable category, but enable rule: expectDemoRuleId(Collections.singleton(CategoryIds.MISC), Collections.emptySet(), Collections.emptySet(), Collections.singleton("DEMO_RULE"), false, demo); // now with enablesOnly=true: expectDemoRuleId(Collections.emptySet(), Collections.emptySet(), Collections.emptySet(), Collections.emptySet(), true, demo); expectNotDemoRuleId(Collections.emptySet(), Collections.emptySet(), Collections.singleton("DEMO_RULE"), Collections.emptySet(), true, demo); expectNotDemoRuleId(Collections.singleton(CategoryIds.MISC), Collections.emptySet(), Collections.emptySet(), Collections.emptySet(), true, demo); expectDemoRuleId(Collections.emptySet(), Collections.singleton(CategoryIds.MISC), Collections.emptySet(), Collections.emptySet(), true, demo); expectNotDemoRuleId(Collections.emptySet(), Collections.singleton(CategoryIds.CASING), Collections.emptySet(), Collections.emptySet(), true, demo); }
@Test public void testConfigurableThreadPoolSize() throws IOException { MultiThreadedJLanguageTool lt = new MultiThreadedJLanguageTool(new Demo()); assertEquals(Runtime.getRuntime().availableProcessors(), lt.getThreadPoolSize()); lt.shutdown(); }
@Test public void testShutdownException() throws IOException { MultiThreadedJLanguageTool tool = new MultiThreadedJLanguageTool(new Demo()); getRuleMatchIds(tool); tool.shutdown(); try { getRuleMatchIds(tool); fail("should have been rejected as the thread pool has been shut down"); } catch (RejectedExecutionException ignore) {} }
@Test public void testToXMLWithRuleGroup() { PatternRuleId ruleId = new PatternRuleId("test_spacebefore"); PatternRuleXmlCreator creator = new PatternRuleXmlCreator(); String xml = creator.toXML(ruleId, new Demo()); assertTrue(xml.contains("<rulegroup id=\"test_spacebefore\"")); assertTrue(xml.contains("</rulegroup>")); assertTrue(xml.contains("<rule>")); assertTrue(xml.contains("<rule type=\"duplication\">")); assertTrue(xml.contains("<token>blah</token>")); }
@Test public void testToXMLWithRuleGroupAndSubId1() { PatternRuleId ruleId = new PatternRuleId("test_spacebefore", "1"); PatternRuleXmlCreator creator = new PatternRuleXmlCreator(); String xml = creator.toXML(ruleId, new Demo()); assertFalse(xml.contains("<rulegroup")); assertFalse(xml.contains("</rulegroup>")); assertTrue(xml.contains("<message>This is a dummy message 1.</message>")); }
@Test public void testToXMLWithAntiPattern() { PatternRuleId ruleId = new PatternRuleId("DEMO_RULE_ANTIPATTERN"); PatternRuleXmlCreator creator = new PatternRuleXmlCreator(); String xml = creator.toXML(ruleId, new Demo()); assertTrue(xml.contains( " <antipattern>\n" + " <token>bar</token>\n" + " <token>,</token>\n" + " </antipattern>\n")); }
@Test public void testToXMLInvalidRuleId() { PatternRuleXmlCreator creator = new PatternRuleXmlCreator(); PatternRuleId fakeRuleId = new PatternRuleId("FAKE_ID"); try { creator.toXML(fakeRuleId, new Demo()); fail(); } catch(RuntimeException ignored) {} }