import static org.junit.Assert.*;
import org.junit.Test;
public class DEA_BeispieleTest {
	
	public DEA_BeispieleTest() { 
	}

	@Test
	public void testBinaerzahlenPruefer() {
		BinaerzahlenPruefer binZPruefer = new BinaerzahlenPruefer();
		assertTrue(binZPruefer.gehoertZuSprache("1"));
		assertTrue(binZPruefer.gehoertZuSprache("0"));
        assertTrue(binZPruefer.gehoertZuSprache("+1"));
        assertTrue(binZPruefer.gehoertZuSprache("+0"));
        assertTrue(binZPruefer.gehoertZuSprache("-1"));
        assertTrue(binZPruefer.gehoertZuSprache("-0"));
		assertTrue(binZPruefer.gehoertZuSprache("11"));
		assertTrue(binZPruefer.gehoertZuSprache("10"));
        assertTrue(binZPruefer.gehoertZuSprache("+11"));
        assertTrue(binZPruefer.gehoertZuSprache("-11"));
		assertTrue(binZPruefer.gehoertZuSprache("+10"));
		assertTrue(binZPruefer.gehoertZuSprache("1111"));
		assertTrue(binZPruefer.gehoertZuSprache("1000"));
		assertTrue(binZPruefer.gehoertZuSprache("10100101010111000"));
		assertTrue(binZPruefer.gehoertZuSprache("1111111"));
		
        assertFalse(binZPruefer.gehoertZuSprache(""));
        assertFalse(binZPruefer.gehoertZuSprache("+"));
        assertFalse(binZPruefer.gehoertZuSprache("-"));
        assertFalse(binZPruefer.gehoertZuSprache("x"));
        assertFalse(binZPruefer.gehoertZuSprache("binärzahl"));
		assertFalse(binZPruefer.gehoertZuSprache("00"));
		assertFalse(binZPruefer.gehoertZuSprache("+00"));
		assertFalse(binZPruefer.gehoertZuSprache("0+0"));
		assertFalse(binZPruefer.gehoertZuSprache("123"));
		assertFalse(binZPruefer.gehoertZuSprache("0011"));
		assertFalse(binZPruefer.gehoertZuSprache("011"));
		assertFalse(binZPruefer.gehoertZuSprache("111111+"));
		assertFalse(binZPruefer.gehoertZuSprache("000000+"));
		assertFalse(binZPruefer.gehoertZuSprache("1+1"));
		assertFalse(binZPruefer.gehoertZuSprache("0+1"));
		assertFalse(binZPruefer.gehoertZuSprache("1+0"));
	}
	
	@Test
	public void testMailadressenChecker() {
		MailadressenChecker mailAdrPruefer = new MailadressenChecker();
		assertTrue(mailAdrPruefer.gehoertZuSprache("b@b.bb"));
		assertTrue(mailAdrPruefer.gehoertZuSprache("b@b.bbbb"));
		assertTrue(mailAdrPruefer.gehoertZuSprache("b.b.b@bbb.bbb"));
		assertTrue(mailAdrPruefer.gehoertZuSprache("bbbbbb@b.bb"));
		assertTrue(mailAdrPruefer.gehoertZuSprache("b@b.b.b.b.bb"));
		assertTrue(mailAdrPruefer.gehoertZuSprache("...@b.bb"));
		assertTrue(mailAdrPruefer.gehoertZuSprache("...bbb@bb.bb"));
		assertTrue(mailAdrPruefer.gehoertZuSprache("bbb...@bb.bb"));

		assertFalse(mailAdrPruefer.gehoertZuSprache(""));
		assertFalse(mailAdrPruefer.gehoertZuSprache("."));
		assertFalse(mailAdrPruefer.gehoertZuSprache("b"));
		assertFalse(mailAdrPruefer.gehoertZuSprache("@"));
		assertFalse(mailAdrPruefer.gehoertZuSprache("bb@"));
        assertFalse(mailAdrPruefer.gehoertZuSprache("b@b.b@bbb"));		
		assertFalse(mailAdrPruefer.gehoertZuSprache("@bb"));
		assertFalse(mailAdrPruefer.gehoertZuSprache("bb@."));
		assertFalse(mailAdrPruefer.gehoertZuSprache("bb@.."));
        assertFalse(mailAdrPruefer.gehoertZuSprache("bb@bb.b"));
        assertFalse(mailAdrPruefer.gehoertZuSprache("bb@bb.bb.b"));
		assertFalse(mailAdrPruefer.gehoertZuSprache("bbb@bbb"));
		assertFalse(mailAdrPruefer.gehoertZuSprache("bb.bb.bb.bb"));
		assertFalse(mailAdrPruefer.gehoertZuSprache(
		        "bbb@bb.bb.bb@bb.bb"));
		assertFalse(mailAdrPruefer.gehoertZuSprache("bbb@bbb..bbb"));
		assertFalse(mailAdrPruefer.gehoertZuSprache("bbb@bbb.bbb.."));
	}
	
	@Test
	public void test007Sucher() {
		KGB_007Sucher detektiv = new KGB_007Sucher();
		assertTrue(detektiv.gehoertZuSprache("007"));
		assertTrue(detektiv.gehoertZuSprache("1007"));
		assertTrue(detektiv.gehoertZuSprache("0071"));
		assertTrue(detektiv.gehoertZuSprache("007007"));
		assertTrue(detektiv.gehoertZuSprache("00007"));
		assertTrue(detektiv.gehoertZuSprache("0000712"));
		assertTrue(detektiv.gehoertZuSprache("2121200777"));
		assertTrue(detektiv.gehoertZuSprache("0077"));
		assertTrue(detektiv.gehoertZuSprache("212121007000000"));
		assertTrue(detektiv.gehoertZuSprache("00712772712717"));

		assertFalse(detektiv.gehoertZuSprache(""));
		assertFalse(detektiv.gehoertZuSprache("0"));
		assertFalse(detektiv.gehoertZuSprache("1"));
		assertFalse(detektiv.gehoertZuSprache("2"));
		assertFalse(detektiv.gehoertZuSprache("7"));
		assertFalse(detektiv.gehoertZuSprache("07"));
		assertFalse(detektiv.gehoertZuSprache("001"));
		assertFalse(detektiv.gehoertZuSprache("002"));
		assertFalse(detektiv.gehoertZuSprache("000"));
		assertFalse(detektiv.gehoertZuSprache("001002"));
		assertFalse(detektiv.gehoertZuSprache("7001"));
		assertFalse(detektiv.gehoertZuSprache("0707"));
	}
}

