package net.morilib.sh.builtin;

import net.morilib.sh.ShCommandExecuteTest;

public class ShWcTest extends ShCommandExecuteTest {

	public void test001() {
		piw.println("123 567 90");
		piw.println("123 567 90");
		piw.close();
		exe("wc", 0);
		eot("      2       6      24");
	}

	public void test002() {
		piw.println("123 567 90");
		piw.print  ("123 567 90");
		piw.close();
		exe("wc", 0);
		eot("      2       6      22");
	}

	public void test003() {
		piw.println("123 \t678 0");
		piw.close();
		exe("wc", 0);
		eot("      1       3      12");
	}

	public void test004() {
		piw.close();
		exe("wc", 0);
		eot("      0       0       0");
	}

	public void test005() {
		piw.print("1234567890");
		piw.close();
		exe("wc -c", 0);
		eot("     10");
	}

	public void test006() {
		piw.print("1234567890");
		piw.close();
		exe("wc --bytes", 0);
		eot("     10");
	}

	public void test007() {
		piw.print("１２３４５６７８９０");
		piw.close();
		exe("wc -m", 0);
		eot("     10");
	}

	public void test008() {
		piw.print("１２３４５６７８９０");
		piw.close();
		exe("wc --chars", 0);
		eot("     10");
	}

	public void test009() {
		piw.print("123 567 90");
		piw.close();
		exe("wc -w", 0);
		eot("      3");
	}

	public void test010() {
		piw.print("123 567 90");
		piw.close();
		exe("wc --words", 0);
		eot("      3");
	}

	public void test011() {
		piw.println("123 567 90");
		piw.println("123 567 90");
		piw.close();
		exe("wc -l", 0);
		eot("      2");
	}

	public void test012() {
		piw.println("123 567 90");
		piw.println("123 567 90");
		piw.close();
		exe("wc --lines", 0);
		eot("      2");
	}

	public void test013() {
		piw.print("1234567890");
		piw.close();
		exe("wc -cmwl", 0);
		eot("      1       1      10      10");
	}

	public void test014() {
		piw.print("1234567890");
		piw.close();
		exe("wc --bytes --chars --words --lines", 0);
		eot("      1       1      10      10");
	}

	public void test015() {
		piw.print("1234567890");
		piw.close();
		exe("wc -lwmc", 0);
		eot("      1       1      10      10");
	}

	public void test016() {
		piw.print("1234567890");
		piw.close();
		exe("wc -lwmc -", 0);
		eot("      1       1      10      10 (standard input)");
	}

	public void test017() {
		piw.print("1234567890");
		piw.close();
		exe("wc -lwmc -- -", 0);
		eot("      1       1      10      10 (standard input)");
	}

	public void test018() {
		piw.close();
		exc("wc -lwmc cut.txt", 0);
		eot("      1       1      10      10 cut.txt");
	}

	public void test019() {
		piw.close();
		exc("wc -lwmc cut.txt cut2.txt", 0);
		eot("      1       1      10      10 cut.txt");
		eot("      1       1      10      10 cut2.txt");
		eot("      2       2      20      20 (total)");
	}

	public void testI001() {
		redef(qiw, "EUC-JP");
		redef(qor, "EUC-JP");
		rev.bind("LANG", "ja_JP.EUC-JP");
		piw.println("ｂｂｂｂ　ｂｂｂｂ");
		piw.println("ｃｃｃｃ");
		piw.close();
		exe("wc -cmwl", 0);
		eot("      2       3      17      30");
	}

}
