diff --git a/.classpath b/.classpath index 2846539..20c137d 100644 --- a/.classpath +++ b/.classpath @@ -8,10 +8,6 @@ - - - - - + diff --git a/build/classes/.gitignore b/build/classes/.gitignore index 4e7e508..611b17f 100644 --- a/build/classes/.gitignore +++ b/build/classes/.gitignore @@ -1 +1,3 @@ +/service/ /controller/ +/testing/ diff --git a/build/classes/controller/FlamesCheck.class b/build/classes/controller/FlamesCheck.class index fe7152f..31b3204 100644 Binary files a/build/classes/controller/FlamesCheck.class and b/build/classes/controller/FlamesCheck.class differ diff --git a/src/controller/FlamesCheck.java b/src/controller/FlamesCheck.java index b9b9a0b..03f0d4e 100644 --- a/src/controller/FlamesCheck.java +++ b/src/controller/FlamesCheck.java @@ -13,6 +13,8 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import service.FlamesCheckService; + @WebServlet("/flames") @@ -33,35 +35,35 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - /* - * Uncomment the below code to test your output - * String name1 = request.getParameter("your"); - * String name2 = request.getParameter("crush"); - * - * FlamesCheckService fcs = new FlamesCheckService(); - * - * char k = fcs.findFlames(name1,name2); - * - * if (k == 'f') { RequestDispatcher rd=this.getServletContext().getRequestDispatcher("/WEB-INF/views/friends.jsp" - * ); rd.forward(request, response); - * - * } else if (k == 'l') { RequestDispatcher rd=this.getServletContext().getRequestDispatcher("/WEB-INF/views/lovers.jsp") - * ; rd.forward(request, response); - * - * } else if (k == 'a') { RequestDispatcher rd=this.getServletContext().getRequestDispatcher( - * "/WEB-INF/views/affection.jsp"); rd.forward(request, response); - * - * } else if (k == 'm') { RequestDispatcher rd=this.getServletContext().getRequestDispatcher( - * "/WEB-INF/views/marriage.jsp"); rd.forward(request, response); - * - * } else if (k == 'e') { RequestDispatcher rd=this.getServletContext().getRequestDispatcher("/WEB-INF/views/enemies.jsp" - * ); rd.forward(request, response); - * - * } else if (k == 's') { RequestDispatcher rd=this.getServletContext().getRequestDispatcher( - * "/WEB-INF/views/siblings.jsp"); rd.forward(request, response); - * - * } - */ + + // Uncomment the below code to test your output + String name1 = request.getParameter("your"); + String name2 = request.getParameter("crush"); + + FlamesCheckService fcs = new FlamesCheckService(); + + char k = fcs.findFlames(name1,name2); + + if (k == 'f') { RequestDispatcher rd=this.getServletContext().getRequestDispatcher("/WEB-INF/views/friends.jsp" + ); rd.forward(request, response); + + } else if (k == 'l') { RequestDispatcher rd=this.getServletContext().getRequestDispatcher("/WEB-INF/views/lovers.jsp") + ; rd.forward(request, response); + + } else if (k == 'a') { RequestDispatcher rd=this.getServletContext().getRequestDispatcher( + "/WEB-INF/views/affection.jsp"); rd.forward(request, response); + + } else if (k == 'm') { RequestDispatcher rd=this.getServletContext().getRequestDispatcher( + "/WEB-INF/views/marriage.jsp"); rd.forward(request, response); + + } else if (k == 'e') { RequestDispatcher rd=this.getServletContext().getRequestDispatcher("/WEB-INF/views/enemies.jsp" + ); rd.forward(request, response); + + } else if (k == 's') { RequestDispatcher rd=this.getServletContext().getRequestDispatcher( + "/WEB-INF/views/siblings.jsp"); rd.forward(request, response); + + } + } } diff --git a/src/service/FlamesCheckService.java b/src/service/FlamesCheckService.java index a8c006a..9f7086a 100644 --- a/src/service/FlamesCheckService.java +++ b/src/service/FlamesCheckService.java @@ -1,4 +1,7 @@ package service; +import java.util.*; +import java.lang.*; +import java.io.*; // Create a class called FlamesCheckService // FlamesCheckService has a method findFlames to find the flames between two names @@ -7,3 +10,46 @@ // You must return only the following values ['f','l','a','m','e','s'] // change the return value at the end of the method corresponding to your return value + +public class FlamesCheckService{ + public char findFlames(String name1,String name2) { + char result = ' '; + name1 = name1.toLowerCase(); + name2 = name2.toLowerCase(); + int[] frequency_name1 = new int[26]; + int[] frequency_name2 = new int[26]; + for(int i = 0;i < name1.length();i++) { + int ascii = name1.charAt(i); + ascii =ascii-97; + frequency_name1[ascii]++; + } + System.out.print(name1+" "+name2); + for(int i = 0;i < name2.length();i++) { + int ascii = name2.charAt(i); + ascii =ascii-97; + frequency_name2[ascii]++; + } + int len = 0; + for(int i = 0;i < 26;i++) { + len += Math.abs(frequency_name1[i]-frequency_name2[i]); + } + + ArrayList flames = new ArrayList(); + flames.add('f'); + flames.add('l'); + flames.add('a'); + flames.add('m'); + flames.add('e'); + flames.add('s'); + int n = flames.size(); + int index = 0; + while(n > 1) { + int i = (len+index-1)%n; + flames.remove(i); + index = i; + n--; + } + result = flames.get(0); + return result; + } +} diff --git a/src/testing/TestFlamesCheckService.java b/src/testing/TestFlamesCheckService.java index f3b45fe..21c8852 100644 --- a/src/testing/TestFlamesCheckService.java +++ b/src/testing/TestFlamesCheckService.java @@ -7,31 +7,34 @@ public class TestFlamesCheckService { FlamesCheckService fcs = new FlamesCheckService(); + /** + * + */ @Test -// public void testFindFlamesMethod() { -// String name1 = "Alex"; -// String name2 = "Joylin"; -// char temp = 'a'; -// assertEquals(temp,fcs.findFlames(name1, name2)); -// name1 = "Steffe"; -// name2 = "Bobby"; -// temp = 'm'; -// assertEquals(temp,fcs.findFlames(name1, name2)); -// name1 = "John"; -// name2 = "Jully"; -// temp = 'e'; -// assertEquals(temp,fcs.findFlames(name1, name2)); -// name1 = "George"; -// name2 = "Neythiri"; -// temp = 'l'; -// assertEquals(temp,fcs.findFlames(name1, name2)); -// try { -// fcs.findFlames(null, null); -// fcs.findFlames("AAA", null); -// fcs.findFlames(null, "BBB"); -// } -// catch(Exception e) { -// e.printStackTrace(); -// } -// } + public void testFindFlamesMethod() { + String name1 = "Alex"; + String name2 = "Joylin"; + char temp = 'a'; + assertEquals(temp,fcs.findFlames(name1, name2)); + name1 = "Steffe"; + name2 = "Bobby"; + temp = 'm'; + assertEquals(temp,fcs.findFlames(name1, name2)); + name1 = "John"; + name2 = "Jully"; + temp = 'e'; + assertEquals(temp,fcs.findFlames(name1, name2)); + name1 = "George"; + name2 = "Neythiri"; + temp = 'l'; + assertEquals(temp,fcs.findFlames(name1, name2)); + try { + fcs.findFlames(null, null); + fcs.findFlames("AAA", null); + fcs.findFlames(null, "BBB"); + } + catch(Exception e) { + e.printStackTrace(); + } + } }