Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Author: Ronen Schaffer
- import static org.junit.Assert.*;
- import org.junit.Test;
- public class StringListTests {
- @Test
- public void tests_from_example() {
- // Arrange
- StringList s = new StringList("abcae");
- // Act
- // Assert
- assertEquals(5, s.length());
- assertEquals('b', s.charAt(1));
- assertEquals(0, s.indexOf('a'));
- assertEquals(3, s.indexOf('a', 2));
- assertEquals(-1, s.indexOf('d'));
- assertTrue(s.compareTo(new StringList("abcde")) < 0);
- }
- @Test
- public void StringListString_null_ShouldCreateEmptyString() {
- // Arrange
- // Act
- StringList sl = new StringList((String) null);
- // Assert
- assertEquals("", sl.toString());
- }
- @Test
- public void StringListString_EmptyString_ShouldCreateEmptyString() {
- // Arrange
- // Act
- StringList sl = new StringList("");
- // Assert
- assertEquals("", sl.toString());
- }
- @Test
- public void StringListString_a() {
- // Arrange
- // Act
- StringList sl = new StringList("a");
- // Assert
- assertEquals("a", sl.toString());
- }
- @Test
- public void StringListString_aa() {
- // Arrange
- // Act
- StringList sl = new StringList("aa");
- // Assert
- assertEquals("aa", sl.toString());
- }
- @Test
- public void StringListString_aab() {
- // Arrange
- // Act
- StringList sl = new StringList("aab");
- // Assert
- assertEquals("aab", sl.toString());
- }
- @Test
- public void StringListString_aabb() {
- // Arrange
- // Act
- StringList sl = new StringList("aabb");
- // Assert
- assertEquals("aabb", sl.toString());
- }
- @Test
- public void StringListStringList_null_ShouldCreateEmptyString() {
- // Arrange
- // Act
- StringList sl = new StringList((StringList) null);
- // Assert
- assertEquals("", sl.toString());
- }
- @Test
- public void StringListStringList_EmptyStringList_ShouldCreateEmptyString() {
- // Arrange
- // Act
- StringList sl = new StringList(new StringList());
- // Assert
- assertEquals("", sl.toString());
- }
- @Test
- public void StringListStringList_a() {
- // Arrange
- // Act
- StringList sl = new StringList(new StringList("a"));
- // Assert
- assertEquals("a", sl.toString());
- }
- @Test
- public void StringListStringList_aa() {
- // Arrange
- // Act
- StringList sl = new StringList(new StringList("aa"));
- // Assert
- assertEquals("aa", sl.toString());
- }
- @Test
- public void StringListStringList_aab() {
- // Arrange
- // Act
- StringList sl = new StringList(new StringList("aab"));
- // Assert
- assertEquals("aab", sl.toString());
- }
- @Test
- public void StringListStringList_aabb() {
- // Arrange
- // Act
- StringList sl = new StringList(new StringList("aabb"));
- // Assert
- assertEquals("aabb", sl.toString());
- }
- @Test
- public void StringListStringList_aabb_CheckAliasing() {
- // Arrange
- StringList src = new StringList("aabb");
- // Act
- StringList sl = new StringList(src);
- src.concat(new StringList("c"));
- // Assert
- assertEquals("aabb", sl.toString());
- }
- @Test
- public void charAt_a_0_ShouldReturn_a() {
- // Arrange
- StringList sl = new StringList("a");
- // Act
- int res = sl.charAt(0);
- // Assert
- assertEquals('a', res);
- }
- @Test
- public void charAt_aa_1_ShouldReturn_a() {
- // Arrange
- StringList sl = new StringList("aa");
- // Act
- int res = sl.charAt(1);
- // Assert
- assertEquals('a', res);
- }
- @Test
- public void charAt_aab_2_ShouldReturn_b() {
- // Arrange
- StringList sl = new StringList("aab");
- // Act
- int res = sl.charAt(2);
- // Assert
- assertEquals('b', res);
- }
- @Test
- public void charAt_aabb_3_ShouldReturn_b() {
- // Arrange
- StringList sl = new StringList("aabb");
- // Act
- int res = sl.charAt(3);
- // Assert
- assertEquals('b', res);
- }
- @Test
- public void concat_a_null_ShouldReturn_a() {
- // Arrange
- StringList sl1 = new StringList("a");
- StringList sl2 = null;
- // Act
- StringList res = sl1.concat(sl2);
- // Assert
- assertEquals("a", res.toString());
- }
- @Test
- public void concat_a_EmptyStringList_ShouldReturn_a() {
- // Arrange
- StringList sl1 = new StringList("a");
- StringList sl2 = new StringList();
- // Act
- StringList res = sl1.concat(sl2);
- // Assert
- assertEquals("a", res.toString());
- }
- @Test
- public void concat_EmptyStringList_a_ShouldReturn_a() {
- // Arrange
- StringList sl1 = new StringList();
- StringList sl2 = new StringList("a");
- // Act
- StringList res = sl1.concat(sl2);
- // Assert
- assertEquals("a", res.toString());
- }
- @Test
- public void concat_a_a_ShouldReturn_aa() {
- // Arrange
- StringList sl1 = new StringList("a");
- StringList sl2 = new StringList("a");
- // Act
- StringList res = sl1.concat(sl2);
- // Assert
- assertEquals("aa", res.toString());
- }
- @Test
- public void concat_abc_def_ShouldReturn_abcdef() {
- // Arrange
- StringList sl1 = new StringList("abc");
- StringList sl2 = new StringList("def");
- // Act
- StringList res = sl1.concat(sl2);
- // Assert
- assertEquals("abcdef", res.toString());
- }
- @Test
- public void concat_abc_def_CheckAliasing_ShouldReturn_abcdef() {
- // Arrange
- StringList sl1 = new StringList("abc");
- StringList sl2 = new StringList("def");
- // Act
- StringList res1 = sl1.concat(sl2);
- StringList res2 = sl1.concat(new StringList("ghi"));
- StringList res3 = sl2.concat(new StringList("jkl"));
- StringList res4 = sl2.concat(sl1);
- // Assert
- assertEquals("abcdef", res1.toString());
- assertEquals("abcghi", res2.toString());
- assertEquals("defjkl", res3.toString());
- assertEquals("defabc", res4.toString());
- }
- @Test
- public void indexOf_a_a_ShouldReturn0() {
- // Arrange
- StringList sl = new StringList("a");
- // Act
- int res = sl.indexOf('a');
- // Assert
- assertEquals(0, res);
- }
- @Test
- public void indexOf_abc_a_ShouldReturn0() {
- // Arrange
- StringList sl = new StringList("abc");
- // Act
- int res = sl.indexOf('a');
- // Assert
- assertEquals(0, res);
- }
- @Test
- public void indexOf_aaa_a_ShouldReturn0() {
- // Arrange
- StringList sl = new StringList("aaa");
- // Act
- int res = sl.indexOf('a');
- // Assert
- assertEquals(0, res);
- }
- @Test
- public void indexOf_aaabccd_e_ShouldReturnMinus1() {
- // Arrange
- StringList sl = new StringList("aaabccd");
- // Act
- int res = sl.indexOf('e');
- // Assert
- assertEquals(-1, res);
- }
- @Test
- public void indexOf_aaa_a_1_ShouldReturn1() {
- // Arrange
- StringList sl = new StringList("aaa");
- // Act
- int res = sl.indexOf('a', 1);
- // Assert
- assertEquals(1, res);
- }
- @Test
- public void indexOf_aabbccddd_b_ShouldReturn2() {
- // Arrange
- StringList sl = new StringList("aabbccddd");
- // Act
- int res = sl.indexOf('b');
- // Assert
- assertEquals(2, res);
- }
- @Test
- public void indexOf_aabbccddd_b_3_ShouldReturn3() {
- // Arrange
- StringList sl = new StringList("aabbccddd");
- // Act
- int res = sl.indexOf('b', 3);
- // Assert
- assertEquals(3, res);
- }
- @Test
- // Test ch doesn't exist from fromIndex
- public void indexOf_aabbccddd_b_4_ShouldReturnMinus1() {
- // Arrange
- StringList sl = new StringList("aabbccddd");
- // Act
- int res = sl.indexOf('b', 4);
- // Assert
- assertEquals(-1, res);
- }
- @Test
- // Test fromIndex OutOfRange
- public void indexOf_aa_a_4_ShouldReturnMinus1() {
- // Arrange
- StringList sl = new StringList("aa");
- // Act
- int res = sl.indexOf('a', 4);
- // Assert
- assertEquals(-1, res);
- }
- @Test
- // Test fromIndex OutOfRange
- public void indexOf_aa_a_minus2_ShouldReturnMinus1() {
- // Arrange
- StringList sl = new StringList("aabbccddd");
- // Act
- int res = sl.indexOf('a', -2);
- // Assert
- assertEquals(-1, res);
- }
- @Test
- public void indexOf_EmptyStringList_a_ShouldReturnMinus1() {
- // Arrange
- StringList sl = new StringList();
- // Act
- int res = sl.indexOf('a');
- // Assert
- assertEquals(-1, res);
- }
- @Test
- public void indexOf_EmptyStringList_a_1_ShouldReturnMinus1() {
- // Arrange
- StringList sl = new StringList();
- // Act
- int res = sl.indexOf('a', 1);
- // Assert
- assertEquals(-1, res);
- }
- @Test
- public void equals_EmptyStringList_null_ShouldReturnFalse() {
- // Arrange
- StringList sl = new StringList();
- // Act
- boolean res = sl.equals((StringList) null);
- // Assert
- assertEquals(false, res);
- }
- @Test
- public void equals_EmptyStringList_EmptyStringList_ShouldReturnTrue() {
- // Arrange
- StringList sl = new StringList();
- // Act
- boolean res = sl.equals(new StringList());
- // Assert
- assertEquals(true, res);
- }
- @Test
- public void equals_abc_null_ShouldReturnFalse() {
- // Arrange
- StringList sl = new StringList("abc");
- // Act
- boolean res = sl.equals((StringList) null);
- // Assert
- assertEquals(false, res);
- }
- @Test
- public void equals_abc_EmptyStringList_ShouldReturnTrue() {
- // Arrange
- StringList sl = new StringList("abc");
- // Act
- boolean res = sl.equals(new StringList());
- // Assert
- assertEquals(false, res);
- }
- @Test
- public void equals_abc_abc_ShouldReturnTrue() {
- // Arrange
- StringList sl1 = new StringList("abc");
- StringList sl2 = new StringList("abc");
- // Act
- boolean res = sl1.equals(sl2);
- // Assert
- assertEquals(true, res);
- }
- @Test
- public void equals_abc_def_ShouldReturnFalse() {
- // Arrange
- StringList sl1 = new StringList("abc");
- StringList sl2 = new StringList("def");
- // Act
- boolean res = sl1.equals(sl2);
- // Assert
- assertEquals(false, res);
- }
- @Test
- public void equals_abc_ab_ShouldReturnFalse() {
- // Arrange
- StringList sl1 = new StringList("abc");
- StringList sl2 = new StringList("ab");
- // Act
- boolean res = sl1.equals(sl2);
- // Assert
- assertEquals(false, res);
- }
- @Test
- public void equals_abc_abcc_ShouldReturnFalse() {
- // Arrange
- StringList sl1 = new StringList("abc");
- StringList sl2 = new StringList("abcc");
- // Act
- boolean res = sl1.equals(sl2);
- // Assert
- assertEquals(false, res);
- }
- @Test
- public void equals_aabbccc_aabbccc_ShouldReturnTrue() {
- // Arrange
- StringList sl1 = new StringList("aabbccc");
- StringList sl2 = new StringList("aabbccc");
- // Act
- boolean res = sl1.equals(sl2);
- // Assert
- assertEquals(true, res);
- }
- @Test
- public void equals_aabbccc_aabbddd_ShouldReturnTrue() {
- // Arrange
- StringList sl1 = new StringList("aabbccc");
- StringList sl2 = new StringList("aabbddd");
- // Act
- boolean res = sl1.equals(sl2);
- // Assert
- assertEquals(false, res);
- }
- @Test
- public void equals_abb_abb_Concat_ShouldReturnTrue() {
- // Arrange
- StringList sl1 = new StringList("abb");
- StringList sl2 = new StringList("ab").concat(new StringList("b"));
- // Act
- boolean res = sl1.equals(sl2);
- // Assert
- assertEquals(true, res);
- }
- @Test
- public void compareTo_EmptyString_EmptyString() {
- compareToTest("", "");
- }
- @Test
- public void compareTo_EmptyString_a_ShouldReturnNegative() {
- compareToTest("", "a");
- }
- @Test
- public void compareTo_a_a() {
- compareToTest("a", "a");
- }
- @Test
- public void compareTo_aa_aa() {
- compareToTest("aa", "aa");
- }
- @Test
- public void compareTo_a_aa() {
- compareToTest("a", "aa");
- }
- @Test
- public void compareTo_aac_aab() {
- compareToTest("aac", "aab");
- }
- @Test
- public void compareTo_aabb_aa() {
- compareToTest("aabb", "aa");
- }
- @Test
- public void compareTo_aabb_aab() {
- compareToTest("aabb", "aab");
- }
- @Test
- public void compareTo_aabbc_aabbbc() {
- compareToTest("aabbc", "aabbbc");
- }
- @Test
- public void compareTo_A_a() {
- compareToTest("A", "a");
- }
- @Test
- public void compareTo_a_B() {
- compareToTest("a", "B");
- }
- @Test
- public void compareTo_Aaa_aaa() {
- compareToTest("Aaa", "aaa");
- }
- @Test
- public void compareTo_StrangeChars_StrangeChars() {
- compareToTest(")*(&$^%@#!", "!#@$%#^$&*()&");
- }
- @Test
- public void compareTo_Itself() {
- // Arrange
- String s = "abc";
- StringList sl = new StringList(s);
- // Act
- int exp1 = s.compareTo(s);
- int res1 = sl.compareTo(sl);
- // Assert
- assertCompareTo(exp1, res1);
- }
- // The idea is to run the compareTo on "real" Java Strings and make sure our
- // version of compareTo behaves the same.
- private void compareToTest(String s1, String s2) {
- // Arrange
- StringList sl1 = new StringList(s1);
- StringList sl2 = new StringList(s2);
- // Act
- int exp1 = s1.compareTo(s2);
- int exp2 = s2.compareTo(s1);
- int res1 = sl1.compareTo(sl2);
- int res2 = sl2.compareTo(sl1);
- // Assert
- assertCompareTo(exp1, res1);
- assertCompareTo(exp2, res2);
- }
- private void assertCompareTo(int expected, int actual) {
- if (expected == 0) {
- assertEquals(0, actual);
- } else if (expected > 0) {
- assertTrue(actual > 0);
- } else // if (expected < 0)
- {
- assertTrue(actual < 0);
- }
- }
- @Test
- public void substring_EmptyString_0_ShouldReturnEmptyString() {
- // Arrange
- StringList sl = new StringList();
- // Act
- StringList res = sl.substring(0);
- // Assert
- assertEquals("", res.toString());
- }
- @Test
- public void substring_a_0_ShouldReturn_a() {
- // Arrange
- StringList sl = new StringList("a");
- // Act
- StringList res = sl.substring(0);
- // Assert
- assertEquals("a", res.toString());
- }
- @Test
- public void substring_aaa_0_ShouldReturn_aaa() {
- // Arrange
- StringList sl = new StringList("aaa");
- // Act
- StringList res = sl.substring(0);
- // Assert
- assertEquals("aaa", res.toString());
- }
- @Test
- public void substring_aaa_1_ShouldReturn_aa() {
- // Arrange
- StringList sl = new StringList("aaa");
- // Act
- StringList res = sl.substring(1);
- // Assert
- assertEquals("aa", res.toString());
- }
- @Test
- public void substring_aaabbc_1_ShouldReturn_aabbc() {
- // Arrange
- StringList sl = new StringList("aaabbc");
- // Act
- StringList res = sl.substring(1);
- // Assert
- assertEquals("aabbc", res.toString());
- }
- @Test
- public void substring_aaabbc_4_ShouldReturn_bc() {
- // Arrange
- StringList sl = new StringList("aaabbc");
- // Act
- StringList res = sl.substring(4);
- // Assert
- assertEquals("bc", res.toString());
- }
- @Test
- public void substring_abcdefg_2_5_ShouldReturn_cde() {
- // Arrange
- StringList sl = new StringList("abcdefg");
- // Act
- StringList res = sl.substring(2, 5);
- // Assert
- assertEquals("cde", res.toString());
- }
- @Test
- // Check the case where i = j. According to Anita Cassapu it should return
- // an empty StringList
- public void substring_abcdefg_2_2_ShouldReturn_EmptyString() {
- // Arrange
- StringList sl = new StringList("abcdefg");
- // Act
- StringList res = sl.substring(2, 2);
- // Assert
- assertEquals("", res.toString());
- }
- @Test
- public void substring_abbcdeeefg_1_6_ShouldReturn_bbcde() {
- // Arrange
- StringList sl = new StringList("abbcdeeefg");
- // Act
- StringList res = sl.substring(1, 6);
- // Assert
- assertEquals("bbcde", res.toString());
- }
- @Test
- public void substring_aaaaaa_1_4_ShouldReturn_aaa() {
- // Arrange
- StringList sl = new StringList("aaaaaa");
- // Act
- StringList res = sl.substring(1, 4);
- // Assert
- assertEquals("aaa", res.toString());
- }
- @Test
- public void substring_bbaaaaaa_2_4_ShouldReturn_aaa() {
- // Arrange
- StringList sl = new StringList("bbaaaaaa");
- // Act
- StringList res = sl.substring(2, 5);
- // Assert
- assertEquals("aaa", res.toString());
- }
- @Test
- public void substring_aab_0_1_ShouldReturn_a() {
- // Arrange
- StringList sl = new StringList("aab");
- // Act
- StringList res = sl.substring(0, 1);
- // Assert
- assertEquals("a", res.toString());
- }
- @Test
- public void substring_abbc_1_2_ShouldReturn_b() {
- // Arrange
- StringList sl = new StringList("abbc");
- // Act
- StringList res = sl.substring(1, 2);
- // Assert
- assertEquals("b", res.toString());
- }
- @Test
- public void substring_abbc_2_3_ShouldReturn_b() {
- // Arrange
- StringList sl = new StringList("abbc");
- // Act
- StringList res = sl.substring(2, 3);
- // Assert
- assertEquals("b", res.toString());
- }
- @Test
- public void substring_abb_2_3_ShouldReturn_b() {
- // Arrange
- StringList sl = new StringList("abb");
- // Act
- StringList res = sl.substring(2, 3);
- // Assert
- assertEquals("b", res.toString());
- }
- @Test
- public void length_EmptyString_ShouldReturn0() {
- // Arrange
- StringList sl = new StringList();
- // Act
- int res = sl.length();
- // Assert
- assertEquals(0, res);
- }
- @Test
- public void length_a_ShouldReturn1() {
- // Arrange
- StringList sl = new StringList("a");
- // Act
- int res = sl.length();
- // Assert
- assertEquals(1, res);
- }
- @Test
- public void length_aaa_ShouldReturn3() {
- // Arrange
- StringList sl = new StringList("aaa");
- // Act
- int res = sl.length();
- // Assert
- assertEquals(3, res);
- }
- @Test
- public void length_aaabbc_ShouldReturn6() {
- // Arrange
- StringList sl = new StringList("aaabbc");
- // Act
- int res = sl.length();
- // Assert
- assertEquals(6, res);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment