package net.morilib.sh.builtin;

import net.morilib.sh.ShCommandExecuteTest;

public class ShUniqTest extends ShCommandExecuteTest {

	public void test001() {
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaaa");
		piw.println("bbbb");
		piw.close();
		exe("uniq", 0);
		eot("aaa");
		eot("aaaa");
		eot("bbbb");
		eot();
	}

	public void test002() {
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaaa");
		piw.println("bbbb");
		piw.println("bbbb");
		piw.close();
		exe("uniq", 0);
		eot("aaa");
		eot("aaaa");
		eot("bbbb");
		eot();
	}

	public void test003() {
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaaa");
		piw.println("bbbb");
		piw.close();
		exe("uniq -u", 0);
		eot("aaaa");
		eot("bbbb");
		eot();
	}

	public void test004() {
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaaa");
		piw.println("bbbb");
		piw.println("bbbb");
		piw.close();
		exe("uniq -u", 0);
		eot("aaaa");
		eot();
	}

	public void test005() {
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaaa");
		piw.println("bbbb");
		piw.close();
		exe("uniq -d", 0);
		eot("aaa");
		eot();
	}

	public void test006() {
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaaa");
		piw.println("bbbb");
		piw.println("bbbb");
		piw.close();
		exe("uniq -d", 0);
		eot("aaa");
		eot("bbbb");
		eot();
	}

	public void test007() {
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaaa");
		piw.println("bbbb");
		piw.close();
		exe("uniq -c", 0);
		eot("      3 aaa");
		eot("      1 aaaa");
		eot("      1 bbbb");
		eot();
	}

	public void test008() {
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaaa");
		piw.println("bbbb");
		piw.println("bbbb");
		piw.close();
		exe("uniq -c", 0);
		eot("      3 aaa");
		eot("      1 aaaa");
		eot("      2 bbbb");
		eot();
	}

	public void test009() {
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaaa");
		piw.println("bbbb");
		piw.close();
		exe("uniq -uc", 0);
		eot("      1 aaaa");
		eot("      1 bbbb");
		eot();
	}

	public void test010() {
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaaa");
		piw.println("bbbb");
		piw.println("bbbb");
		piw.close();
		exe("uniq -uc", 0);
		eot("      1 aaaa");
		eot();
	}

	public void test011() {
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaaa");
		piw.println("bbbb");
		piw.close();
		exe("uniq -dc", 0);
		eot("      3 aaa");
		eot();
	}

	public void test012() {
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaaa");
		piw.println("bbbb");
		piw.println("bbbb");
		piw.close();
		exe("uniq -dc", 0);
		eot("      3 aaa");
		eot("      2 bbbb");
		eot();
	}

	public void test013() {
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaaa");
		piw.println("bbbb");
		piw.close();
		exe("uniq --unique", 0);
		eot("aaaa");
		eot("bbbb");
		eot();
	}

	public void test014() {
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaaa");
		piw.println("bbbb");
		piw.println("bbbb");
		piw.close();
		exe("uniq --unique", 0);
		eot("aaaa");
		eot();
	}

	public void test015() {
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaaa");
		piw.println("bbbb");
		piw.close();
		exe("uniq --repeated", 0);
		eot("aaa");
		eot();
	}

	public void test016() {
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaaa");
		piw.println("bbbb");
		piw.println("bbbb");
		piw.close();
		exe("uniq --repeated", 0);
		eot("aaa");
		eot("bbbb");
		eot();
	}

	public void test017() {
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaaa");
		piw.println("bbbb");
		piw.close();
		exe("uniq --count", 0);
		eot("      3 aaa");
		eot("      1 aaaa");
		eot("      1 bbbb");
		eot();
	}

	public void test018() {
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaaa");
		piw.println("bbbb");
		piw.println("bbbb");
		piw.close();
		exe("uniq --count", 0);
		eot("      3 aaa");
		eot("      1 aaaa");
		eot("      2 bbbb");
		eot();
	}

	public void test019() {
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaaa");
		piw.println("bbbb");
		piw.close();
		exe("uniq --unique --count", 0);
		eot("      1 aaaa");
		eot("      1 bbbb");
		eot();
	}

	public void test020() {
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaaa");
		piw.println("bbbb");
		piw.println("bbbb");
		piw.close();
		exe("uniq --unique -c", 0);
		eot("      1 aaaa");
		eot();
	}

	public void test021() {
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaaa");
		piw.println("bbbb");
		piw.close();
		exe("uniq --repeated --count", 0);
		eot("      3 aaa");
		eot();
	}

	public void test022() {
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaaa");
		piw.println("bbbb");
		piw.println("bbbb");
		piw.close();
		exe("uniq --repeated -c", 0);
		eot("      3 aaa");
		eot("      2 bbbb");
		eot();
	}

	public void test023() {
		piw.println("xxxxaaa");
		piw.println("XXXXaaa");
		piw.println("xxXXaaa");
		piw.println("xxxxaaaa");
		piw.println("xxxxbbbb");
		piw.close();
		exe("uniq -s 4", 0);
		eot("xxxxaaa");
		eot("xxxxaaaa");
		eot("xxxxbbbb");
		eot();
	}

	public void test024() {
		piw.println("xxxxaaa");
		piw.println("XXXXaaa");
		piw.println("xxXXaaa");
		piw.println("xxxxaaaa");
		piw.println("xxxxbbbb");
		piw.close();
		exe("uniq -s4", 0);
		eot("xxxxaaa");
		eot("xxxxaaaa");
		eot("xxxxbbbb");
		eot();
	}

	public void test025() {
		piw.println("xxxxaaa");
		piw.println("XXXXaaa");
		piw.println("xxXXaaa");
		piw.println("xxxxaaaa");
		piw.println("xxxxbbbb");
		piw.close();
		exe("uniq --skip-chars=4", 0);
		eot("xxxxaaa");
		eot("xxxxaaaa");
		eot("xxxxbbbb");
		eot();
	}

	public void test026() {
		piw.println("xxxxaaa");
		piw.println("XXXXaaa");
		piw.println("xxXXaaa");
		piw.println("xxxxaaaa");
		piw.println("xxxxbbbb");
		piw.close();
		exe("uniq +4", 0);
		eot("xxxxaaa");
		eot("xxxxaaaa");
		eot("xxxxbbbb");
		eot();
	}

	public void test027() {
		piw.println("xxxxaaa");
		piw.println("XXXXaaa");
		piw.println("xxXXaaa");
		piw.println("xxxxaaaa");
		piw.println("xxxxbbbb");
		piw.close();
		exe("uniq -s 4 -w 3", 0);
		eot("xxxxaaa");
		eot("xxxxbbbb");
		eot();
	}

	public void test028() {
		piw.println("xxxxaaa");
		piw.println("XXXXaaa");
		piw.println("xxXXaaa");
		piw.println("xxxxaaaa");
		piw.println("xxxxbbbb");
		piw.close();
		exe("uniq -s4 -w3", 0);
		eot("xxxxaaa");
		eot("xxxxbbbb");
		eot();
	}

	public void test029() {
		piw.println("xxxxaaa");
		piw.println("XXXXaaa");
		piw.println("xxXXaaa");
		piw.println("xxxxaaaa");
		piw.println("xxxxbbbb");
		piw.close();
		exe("uniq --skip-chars=4 --check-chars=3", 0);
		eot("xxxxaaa");
		eot("xxxxbbbb");
		eot();
	}

	public void test030() {
		piw.println("xxxxaaa");
		piw.println("XXXXaaa");
		piw.println("xxXXaaa");
		piw.println("xxxxaaaa");
		piw.println("xxxxbbbb");
		piw.close();
		exe("uniq -s7", 0);
		eot("xxxxaaa");
		eot("xxxxaaaa");
		eot("xxxxbbbb");
		eot();
	}

	public void test031() {
		piw.println("xxxxaaa");
		piw.println("XXXXaaa");
		piw.println("xxXXaaa");
		piw.println("xxxxaaaa");
		piw.println("xxxxbbbb");
		piw.close();
		exe("uniq -s8", 0);
		eot("xxxxaaa");
		eot();
	}

	public void test032() {
		piw.println("xxxxaaa");
		piw.println("XXXXaaa");
		piw.println("xxXXaaa");
		piw.println("xxxxaaaa");
		piw.println("xxxxbbbb");
		piw.close();
		exe("uniq -s4 -w100", 0);
		eot("xxxxaaa");
		eot("xxxxaaaa");
		eot("xxxxbbbb");
		eot();
	}

	public void test033() {
		piw.println("xxxxaaa");
		piw.println("XXXXaaa");
		piw.println("xxXXaaa");
		piw.println("xxxxaaaa");
		piw.println("xxxxbbbb");
		piw.close();
		exe("uniq -s4 -w0", 0);
		eot("xxxxaaa");
		eot();
	}

	public void test034() {
		piw.println("xx xx  aaa");
		piw.println("xx\txx\t  aaa");
		piw.println("xx   XX aaa");
		piw.println("xx xx  aaaa");
		piw.println("xx xx  bbbb");
		piw.close();
		exe("uniq -f 2", 0);
		eot("xx xx  aaa");
		eot("xx xx  aaaa");
		eot("xx xx  bbbb");
		eot();
	}

	public void test035() {
		piw.println("xx xx  aaa");
		piw.println("xx\txx\t aaa");
		piw.println("xx  XX aaa");
		piw.println("xx xx  aaaa  bbb");
		piw.println("xx xx  bbbb");
		piw.close();
		exe("uniq -f 3", 0);
		eot("xx xx  aaa");
		eot("xx xx  aaaa  bbb");
		eot("xx xx  bbbb");
		eot();
	}

	public void test036() {
		piw.println("xx xx  aaa");
		piw.println("xx\txx\t aaa");
		piw.println("xx  XX aaa");
		piw.println("xx xx  aaaa  bbb");
		piw.println("xx xx  bbbb   bbb");
		piw.close();
		exe("uniq -f 3", 0);
		eot("xx xx  aaa");
		eot("xx xx  aaaa  bbb");
		eot();
	}

	public void test037() {
		piw.println("xx xx  aaa");
		piw.println("xx\txx\t  aaa");
		piw.println("xx  XX  aaa");
		piw.println("xx xx  aaaa");
		piw.println("xx xx  bbbb");
		piw.close();
		exe("uniq -f 2 -w 3", 0);
		eot("xx xx  aaa");
		eot("xx xx  bbbb");
		eot();
	}

	public void test038() {
		piw.println("xx xx  aaa");
		piw.println("xx\txx\t aaa");
		piw.println("xx  XX aaa");
		piw.println("xx xx  aaaa");
		piw.println("xx xx  bbbb");
		piw.close();
		exe("uniq -f 4", 0);
		eot("xx xx  aaa");
		eot();
	}

	public void test039() {
		piw.println("xx xx  aaa");
		piw.println("xx\txx\t  aaa");
		piw.println("xx   XX aaa");
		piw.println("xx xx  aaaa");
		piw.println("xx xx  bbbb");
		piw.close();
		exe("uniq --skip-fields=2", 0);
		eot("xx xx  aaa");
		eot("xx xx  aaaa");
		eot("xx xx  bbbb");
		eot();
	}

	public void test040() {
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaa");
		piw.println("aaaa");
		piw.println("bbbb");
		piw.close();
		exe("uniq -", 0);
		eot("aaa");
		eot("aaaa");
		eot("bbbb");
		eot();
	}

	public void test041() {
		piw.close();
		exe("uniq uniq1.txt", 0);
		eot("aaa");
		eot("ccc");
		eot();
	}

	public void test042() {
		piw.close();
		exe("uniq uniq1.txt -", 0);
		eot("aaa");
		eot("ccc");
		eot();
	}

	public void testI001() {
		redef(qiw, "EUC-JP");
		redef(qor, "EUC-JP");
		rev.bind("LANG", "ja_JP.EUC-JP");
		piw.println("ｂｂｂｂ");
		piw.println("ｂｂｂｂ");
		piw.println("ｃｃｃｃ");
		piw.close();
		exc("uniq", 0);
		eot("ｂｂｂｂ");
		eot("ｃｃｃｃ");
		eot();
	}

}
