package CH1.Q1;

import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;

import static org.junit.Assert.*;

public class QuestionTest {

    @Rule
    public ExpectedException exception = ExpectedException.none();
    @Test
    public void testIsUniqueChars() {
        // ASCII
        assertEquals(true, Question.isUniqueChars("True."));
        assertEquals(false, Question.isUniqueChars("False..."));
        // Doesn't handle other characters very well ಠ_ಠ.
        // Throws IndexOutOfBoundsException.
        exception.expect(ArrayIndexOutOfBoundsException.class);
        assertEquals(false, Question.isUniqueChars("ಠ_ಠ"));
    }

    @Test
    public void testIsUniqueCharsBits() {
        assertEquals(true, Question.isUniqueCharsBits("True."));
        assertEquals(false, Question.isUniqueCharsBits("False..."));
        // Does not work for unicode characters.
        assertEquals(true, Question.isUniqueCharsBits("●︵•"));
        assertNotEquals(false, Question.isUniqueCharsBits("ಠ_ಠ"));
    }

    @Test
    public void testIsUniqueCharsSet() {
        assertEquals(true, Question.isUniqueCharsSet("True."));
        assertEquals(false, Question.isUniqueCharsSet("False..."));
        // Handles all unicode characters.
        assertEquals(true, Question.isUniqueCharsSet("●︵•"));
        assertEquals(false, Question.isUniqueCharsSet("ಠ_ಠ"));
    }

}
@@ -611,32 +611,98 @@
    assertEquals(
+true, Question.isUniqueCharsBits(%22%E2%97%8F%EF%B8%B5%E2%80%A2%22));%0A        assertNotEquals(
 false, Question.
@@ -714,16 +714,20 @@
 queChars
+Bits
 (%22%E0%B2%A0_%E0%B2%A0%22))

Normalize testing.