/*
 * LOGICAL-PARADOX.ORG
 * Copyright (C)2005 satoshi akabane(akabane@logical-paradox.org)
 * $Id: StringUtilsTest.java,v 1.2 2005/05/31 14:36:46 rampil Exp $
 */
package org.logical_paradox.common.util;

import junit.framework.TestCase;

/**
 * 文字列操作ユーティリティのテストケース
 * @author satoshi akabane@logical-paradox.org
 * @version $Revision: 1.2 $
 */
public class StringUtilsTest extends TestCase {

	/**
	 * Constructor for StringUtilsTest.
	 * @param arg0
	 */
	public StringUtilsTest(String arg0) {
		super(arg0);
	}
	/**
	 * <pre>
	 * 部分文字列検索のテスト
	 * 日本語文字列の場合
	 * </pre>
	 */
	public void testSearchWordIndexes001() {
		final String text =
			"Open-SEDKは、ロボット型サーチエンジン開発のお手伝いをする他に、プログラミングを趣味とする人々に対して、楽しくて刺激的なオモチャを提供する目的もあります。" +
			"実際にどのようにして遊べばよいかについては、段階的に例示していきたいと考えています。" +
			"オープンソースのプロジェクトですので、そのまま実用したり、あるいは実用目的のサーチエンジンを開発するのは止めませんが、それよりも「楽しく」遊んでいただけると、開発としては嬉しく思います。";

		final String word = "ます。";

		Integer[] locations = StringUtils.searchWordIndexes(text, word);
		assertEquals(3, locations.length);
	}
	/**
	 * <pre>
	 * 部分文字列検索のテスト
	 * 半角1文字検索で、検索対象文字列の末尾が一致する場合
	 * </pre>
	 */
	public void testSearchWordIndexes002() {
		final String text = "Xbs121098sdfXeqcsacCX";
		final String word = "X";

		Integer[] locations = StringUtils.searchWordIndexes(text, word);
		assertEquals(3, locations.length);

		assertEquals(0, locations[0].intValue());
		assertEquals(12, locations[1].intValue());
		assertEquals(20, locations[2].intValue());
	}
	/**
	 * <pre>
	 * シーケンスのテスト001
	 * 指定された文字数だけ、文字が連結されて返却される
	 * </pre>
	 */
	public void testSequence001() {
		assertEquals("00000", StringUtils.sequence('0', 5));
	}
	/**
	 * <pre>
	 * シーケンスのテスト002
	 * 指定された文字数だけ、文字が連結されて返却される
	 * </pre>
	 */
	public void testSequence002() {
		assertEquals("AAAAAA", StringUtils.sequence('A', 6));
	}
	/**
	 * <pre>
	 * 桁数フォーマットのテスト001
	 * </pre>
	 */
	public void testFormatColumns001() {
		assertEquals("00001", StringUtils.formatColumns(1, 5));
	}
	/**
	 * <pre>
	 * 桁数フォーマットのテスト002
	 * </pre>
	 */
	public void testFormatColumns002() {
		assertEquals("1234567", StringUtils.formatColumns(1234567, 7));
	}
	/**
	 * <pre>
	 * 桁数フォーマットのテスト003
	 * </pre>
	 */
	public void testFormatColumns003() {
		assertEquals("98765", StringUtils.formatColumns(98765, 4));
	}
}
