Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,6 @@ public boolean isWord (String w)
@Override
public boolean isPrefix (String p)
{
if (isWord(p))
{
return true;
}

/* Else search if is a prefix */
String p_u = p.toUpperCase();
for (int i=0; i< m_dict.size(); i++)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package codeu_assignement_3;

import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;

Expand All @@ -14,11 +12,9 @@ public class KemWordSearchTest {
public KemWordSearchTest() {
}

@BeforeClass
public static void setUpClass() {
}

@AfterClass
public static void tearDownClass() {
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package codeu_assignement_3;

import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;

Expand All @@ -17,67 +15,37 @@ public class SimpleDictionaryTest {

public SimpleDictionaryTest() {
}

@BeforeClass
public static void setUpClass() {
}

@AfterClass
public static void tearDownClass() {
}

@Test
public void testIsWordNullDict() {
System.out.println("isWord Null dictionary");
String w = "";
SimpleDictionary instance = new SimpleDictionary(null);
boolean expResult = false;
boolean result = instance.isWord(w);
assertEquals(expResult, result);
assertEquals(false, (new SimpleDictionary(null)).isWord(""));
}

@Test
public void testIsPrefixNullDict() {
System.out.println("isPrefix Null dictionary");
String p = "";
SimpleDictionary instance = new SimpleDictionary(null);
boolean expResult = false;
boolean result = instance.isPrefix(p);
assertEquals(expResult, result);
assertEquals(false, new SimpleDictionary(null).isPrefix(""));
}

@Test
public void testIsWordEmptyDict() {
System.out.println("isWord Empty dictionary");
String w = "";
String[] dict = new String[0];
SimpleDictionary instance = new SimpleDictionary(dict);
boolean expResult = false;
boolean result = instance.isWord(w);
assertEquals(expResult, result);
assertEquals(false, new SimpleDictionary(new String[0]).isWord(""));
}

@Test
public void testIsPrefixEmptyDict() {
System.out.println("isPrefix Empty dictionary");
String p = "";
String[] dict = new String[0];
SimpleDictionary instance = new SimpleDictionary(dict);
boolean expResult = false;
boolean result = instance.isPrefix(p);
assertEquals(expResult, result);
assertEquals(false, new SimpleDictionary(new String[0]).isPrefix(""));
}

@Test
public void testIsWordSingleWordDict_F() {
System.out.println("isWord SingleWord dictionary (F)");
String w = "";
String[] dict = new String[1];
dict[0] = "cat";
SimpleDictionary instance = new SimpleDictionary(dict);
boolean expResult = false;
boolean result = instance.isWord(w);
assertEquals(expResult, result);
assertEquals(false, new SimpleDictionary(dict).isWord(""));
}

@Test
Expand All @@ -91,17 +59,16 @@ public void testIsPrefixSingleWordDict_F() {
String[] dict = new String[1];
dict[0] = "cat";
SimpleDictionary instance = new SimpleDictionary(dict);
boolean expResult = false;
boolean result1 = instance.isPrefix(p1);
boolean result2 = instance.isPrefix(p2);
boolean result3 = instance.isPrefix(p3);
boolean result4 = instance.isPrefix(p4);
boolean result5 = instance.isPrefix(p5);
assertEquals(expResult, result1);
assertEquals(expResult, result2);
assertEquals(expResult, result3);
assertEquals(expResult, result4);
assertEquals(expResult, result5);
assertEquals(false, result1);
assertEquals(false, result2);
assertEquals(false, result3);
assertEquals(false, result4);
assertEquals(false, result5);
}

@Test
Expand All @@ -111,9 +78,8 @@ public void testIsWordSingleWordDict_T() {
String[] dict = new String[1];
dict[0] = "cat";
SimpleDictionary instance = new SimpleDictionary(dict);
boolean expResult = true;
boolean result = instance.isWord(w);
assertEquals(expResult, result);
assertEquals(true, result);
}
@Test
public void testIsPrefixSingleWordDict_T() {
Expand All @@ -125,15 +91,14 @@ public void testIsPrefixSingleWordDict_T() {
String[] dict = new String[1];
dict[0] = "cat";
SimpleDictionary instance = new SimpleDictionary(dict);
boolean expResult = true;
boolean result1 = instance.isPrefix(p1);
boolean result2 = instance.isPrefix(p2);
boolean result3 = instance.isPrefix(p3);
boolean result4 = instance.isPrefix(p4);
assertEquals(expResult, result1);
assertEquals(expResult, result2);
assertEquals(expResult, result3);
assertEquals(expResult, result4);
assertEquals(true, result1);
assertEquals(true, result2);
assertEquals(true, result3);
assertEquals(true, result4);
}

@Test
Expand All @@ -142,9 +107,8 @@ public void testIsWordSmallDict_F() {
String w = "AT";
String[] dict = {"CAR", "CARD", "CART", "CAT"};
SimpleDictionary instance = new SimpleDictionary(dict);
boolean expResult = false;
boolean result = instance.isWord(w);
assertEquals(expResult, result);
assertEquals(false, result);
}

@Test
Expand All @@ -154,11 +118,10 @@ public void testIsPrefixSmallDict_F() {
String p2 = "PAR";
String[] dict = {"CAR", "CARD", "CART", "CAT"};
SimpleDictionary instance = new SimpleDictionary(dict);
boolean expResult = false;
boolean result1 = instance.isPrefix(p1);
boolean result2 = instance.isPrefix(p2);
assertEquals(expResult, result1);
assertEquals(expResult, result2);
assertEquals(false, result1);
assertEquals(false, result2);
}

@Test
Expand All @@ -169,13 +132,12 @@ public void testIsWordSmallDict_T() {
String w3 = "CAT";
String[] dict = {"CAR", "CARD", "CART", "CAT"};
SimpleDictionary instance = new SimpleDictionary(dict);
boolean expResult = true;
boolean result1 = instance.isWord(w1);
boolean result2 = instance.isWord(w2);
boolean result3 = instance.isWord(w3);
assertEquals(expResult, result1);
assertEquals(expResult, result2);
assertEquals(expResult, result3);
assertEquals(true, result1);
assertEquals(true, result2);
assertEquals(true, result3);
}

@Test
Expand All @@ -185,10 +147,9 @@ public void testIsPrefixSmallDict_T() {
String p2 = "CAR";
String[] dict = {"CAR", "CARD", "CART", "CAT"};
SimpleDictionary instance = new SimpleDictionary(dict);
boolean expResult = true;
boolean result1 = instance.isPrefix(p1);
boolean result2 = instance.isPrefix(p2);
assertEquals(expResult, result1);
assertEquals(expResult, result2);
assertEquals(true, result1);
assertEquals(true, result2);
}
}
84 changes: 84 additions & 0 deletions CodeU_Assignement_4/src/codeu_assignement_4/KEMIslandsFinder.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
package codeu_assignement_4;

/**
*
* @author Karine
*
* The class is an Algorithm that starts from the only public method countIslands which
* gets: a map and the size of the map (rxc) and returns the number of Islands in the map
*/
public class KEMIslandsFinder {

private boolean[][] visistedMap;

public int countIslands(int row, int col, boolean[][] map)
{
if ((row > 0) && (col > 0))
{
if ((map.length == row) && (map[0].length == col))
{
visistedMap = new boolean[row][col];
return countIslands(map, 0, 0);
}
else
{
throw new IllegalArgumentException();
}
}

return 0;
}

/* Private Helpers */
private int countIslands(boolean[][] map, int curr_row, int curr_col)
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This method could be written a lot more simply as a pair of nested for loops iterating over the rows and columns.

{
int currentNumberOfIslands = 0;

currentNumberOfIslands += countNewIsland(map,curr_row,curr_col);
markIslandAsVisited(map,curr_row,curr_col);

/* Move to the next location */
if ((curr_col+1) < map[curr_row].length)
{
currentNumberOfIslands += countIslands(map, curr_row, curr_col + 1);
}
else if ((curr_row+1) < map.length)
{
currentNumberOfIslands += countIslands(map, curr_row + 1, 0);
}
else
{
/* Recursion End */
}

return currentNumberOfIslands;
}

private void markIslandAsVisited(boolean[][] map, int curr_row, int curr_col)
{
/* Stop marking as one Island, if out of bound, marked or not an island */
if ((map.length <= curr_row) || (curr_row < 0) || (curr_col < 0))
{
return;
}
if ((map[curr_row].length <= curr_col)
|| (!map[curr_row][curr_col])
|| (visistedMap[curr_row][curr_col]))
{
return;
}

visistedMap[curr_row][curr_col] = true;
for (int i = -1; i < 2; i++)
{
markIslandAsVisited(map,curr_row+i,curr_col);
markIslandAsVisited(map,curr_row,curr_col+i);
}
}

private int countNewIsland(boolean[][] map, int curr_row, int curr_col)
{
return ((map[curr_row][curr_col]) &&
(!visistedMap[curr_row][curr_col])) ? 1 : 0;
}
}
Loading