package models;
import mockit.integration.junit4.JMockit;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
@RunWith(JMockit.class)
public class WordAnalyzerTest {
@Test
public void すべての文字が半角英数字かどうか() {
final String allHalfNumeric = "my name is capybara";
final String allHalfSymbols = "!!!!!!";
final String mixHalfNumericAndHalfSymbols = "hi, my name is capybara!!";
assertThat(WordAnalyzer.isAllHalfNumericAndSymbols(allHalfNumeric), is(true));
assertThat(WordAnalyzer.isAllHalfNumericAndSymbols(allHalfSymbols), is(true));
assertThat(WordAnalyzer.isAllHalfNumericAndSymbols(mixHalfNumericAndHalfSymbols), is(true));
final String zenkaku = "かぴっ";
assertThat(WordAnalyzer.isAllHalfNumericAndSymbols(zenkaku), is(false));
}
@Test
public void wordにピリオドを意味する文字が入っているかどうか() {
final String containPeriodword1 = "帰ります。";
/* final String containPeriodword2 = "このカード使えたんだ!";
final String containPeriodword3 = "ご飯食べに行きますか?";
final String containPeriodword4 = "help, me !";
final String containPeriodword5 = "where are you from ?";*/
final String containPeriodword6 = "休日もう終わりか...";
final String containPeriodword7 = "ぼくは友達がすくない...";
assertThat(WordAnalyzer.isContainsPeriodWord(containPeriodword1), is(true));
/* assertThat(WordAnalyzer.isContainsPeriodWord(containPeriodword2), is(true));
assertThat(WordAnalyzer.isContainsPeriodWord(containPeriodword3), is(true));
assertThat(WordAnalyzer.isContainsPeriodWord(containPeriodword4), is(true));
assertThat(WordAnalyzer.isContainsPeriodWord(containPeriodword5), is(true));*/
assertThat(WordAnalyzer.isContainsPeriodWord(containPeriodword6), is(true));
assertThat(WordAnalyzer.isContainsPeriodWord(containPeriodword7), is(true));
final String notContainsPeriodWord1 = "私は、ドラえもんです、";
final String notContainsPeriodWord2 = "sazaede, gozaima-su";
assertThat(WordAnalyzer.isContainsPeriodWord(notContainsPeriodWord1), is(false));
assertThat(WordAnalyzer.isContainsPeriodWord(notContainsPeriodWord2), is(false));
}
@Test
public void splitBySpecialSymbolが正常に動くこと() {
{
final String testString = "こんにちは。私は、ドラえもんです。";
final String[] expectResult = {"こんにちは。", "私は、ドラえもんです。"};
final String[] actualResult = WordAnalyzer.splitBySpecialSymbol(testString);
Assert.assertThat(actualResult, is(expectResult));
}
}
@Test
public void splitBySentenceEndが正常に動く事() {
final String separator = System.getProperty("line.separator");
{
final String testString = "こんにちは。私は、ドラえもんです。";
final String expectResult = "こんにちは。" + separator + "私は、ドラえもんです。" + separator;
final String actualResult = WordAnalyzer.lineBreakByPeriod(testString, separator);
Assert.assertThat(actualResult, is(expectResult));
}
/* {
final String testString = "こんにちは!私は、ドラえもんです!";
final String expectResult = "こんにちは!" + separator + "私は、ドラえもんです!" + separator;
final String actualResult = WordAnalyzer.lineBreakByPeriod(testString, separator);
Assert.assertThat(actualResult, is(expectResult));
}
{
final String testString = "こんにちは!私は、ドラえもんです!";
final String expectResult = "こんにちは!" + separator + "私は、ドラえもんです!" + separator;
final String actualResult = WordAnalyzer.lineBreakByPeriod(testString, separator);
Assert.assertThat(actualResult, is(expectResult));
}
{
final String testString = "こんにちは?私は、ドラえもんです?";
final String expectResult = "こんにちは?" + separator + "私は、ドラえもんです?" + separator;
final String actualResult = WordAnalyzer.lineBreakByPeriod(testString, separator);
Assert.assertThat(actualResult, is(expectResult));
}
{
final String testString = "こんにちは?私は、ドラえもんです?";
final String expectResult = "こんにちは?" + separator + "私は、ドラえもんです?" + separator;
final String actualResult = WordAnalyzer.lineBreakByPeriod(testString, separator);
Assert.assertThat(actualResult, is(expectResult));
}*/
{
final String testString = "こんにちは.私は、ドラえもんです.";
final String expectResult = "こんにちは." + separator + "私は、ドラえもんです." + separator;
final String actualResult = WordAnalyzer.lineBreakByPeriod(testString, separator);
Assert.assertThat(actualResult, is(expectResult));
}
{
final String testString = "こんにちは.私は、ドラえもんです.";
final String expectResult = "こんにちは." + separator + "私は、ドラえもんです." + separator;
final String actualResult = WordAnalyzer.lineBreakByPeriod(testString, separator);
Assert.assertThat(actualResult, is(expectResult));
}
}
@Test
public void lineBreakByParenthesisが正常に動く事() {
{
final String testString = "こんにちは。「私は」ドラえもんです。";
final String expectResult = "こんにちは。ドラえもんです。";
final String actualResult = WordAnalyzer.lineBreakByParenthesis(testString);
Assert.assertThat(actualResult, is(expectResult));
}
{
final String testString = "こんにちは。『私は』ドラえもんです。";
final String expectResult = "こんにちは。ドラえもんです。";
final String actualResult = WordAnalyzer.lineBreakByParenthesis(testString);
Assert.assertThat(actualResult, is(expectResult));
}
{
final String testString = "こんにちは。【私は】ドラえもんです。";
final String expectResult = "こんにちは。ドラえもんです。";
final String actualResult = WordAnalyzer.lineBreakByParenthesis(testString);
Assert.assertThat(actualResult, is(expectResult));
}
{
final String testString = "こんにちは。[私は]ドラえもんです。";
final String expectResult = "こんにちは。ドラえもんです。";
final String actualResult = WordAnalyzer.lineBreakByParenthesis(testString);
Assert.assertThat(actualResult, is(expectResult));
}
{
final String testString = "こんにちは。[私は]ドラえもんです。";
final String expectResult = "こんにちは。ドラえもんです。";
final String actualResult = WordAnalyzer.lineBreakByParenthesis(testString);
Assert.assertThat(actualResult, is(expectResult));
}
{
final String testString = "こんにちは。{私は}ドラえもんです。";
final String expectResult = "こんにちは。ドラえもんです。";
final String actualResult = WordAnalyzer.lineBreakByParenthesis(testString);
Assert.assertThat(actualResult, is(expectResult));
}
{
final String testString = "こんにちは。{私は}ドラえもんです。";
final String expectResult = "こんにちは。ドラえもんです。";
final String actualResult = WordAnalyzer.lineBreakByParenthesis(testString);
Assert.assertThat(actualResult, is(expectResult));
}
}
@Test
public void convertFullWidthToHalfWidthが正常に動く事() {
final String testString = "こんにちは 私は ドラえもんです ";
final String expectResult = "こんにちは 私は ドラえもんです ";
final String actualResult = WordAnalyzer.convertFullWidthToHalfWidth(testString);
Assert.assertThat(actualResult, is(expectResult));
}
}