diff --git a/group06/2415980327/CodeSE01/src/com/pxshuo/basic/Iterator.java b/group06/2415980327/CodeSE01/src/com/pxshuo/se01/basic/Iterator.java similarity index 90% rename from group06/2415980327/CodeSE01/src/com/pxshuo/basic/Iterator.java rename to group06/2415980327/CodeSE01/src/com/pxshuo/se01/basic/Iterator.java index c41df9c249..2bb103d7d5 100644 --- a/group06/2415980327/CodeSE01/src/com/pxshuo/basic/Iterator.java +++ b/group06/2415980327/CodeSE01/src/com/pxshuo/se01/basic/Iterator.java @@ -1,4 +1,4 @@ -package com.pxshuo.basic; +package com.pxshuo.se01.basic; public interface Iterator { /** diff --git a/group06/2415980327/CodeSE01/src/com/pxshuo/basic/List.java b/group06/2415980327/CodeSE01/src/com/pxshuo/se01/basic/List.java similarity index 96% rename from group06/2415980327/CodeSE01/src/com/pxshuo/basic/List.java rename to group06/2415980327/CodeSE01/src/com/pxshuo/se01/basic/List.java index 615ee9419b..e20daa44cd 100644 --- a/group06/2415980327/CodeSE01/src/com/pxshuo/basic/List.java +++ b/group06/2415980327/CodeSE01/src/com/pxshuo/se01/basic/List.java @@ -1,4 +1,4 @@ -package com.pxshuo.basic; +package com.pxshuo.se01.basic; /** * 数组的接口 * @author Pxshuo diff --git a/group06/2415980327/CodeSE01/src/com/pxshuo/basic/TreeData.java b/group06/2415980327/CodeSE01/src/com/pxshuo/se01/basic/TreeData.java similarity index 91% rename from group06/2415980327/CodeSE01/src/com/pxshuo/basic/TreeData.java rename to group06/2415980327/CodeSE01/src/com/pxshuo/se01/basic/TreeData.java index f20a3765f1..25b8b1d733 100644 --- a/group06/2415980327/CodeSE01/src/com/pxshuo/basic/TreeData.java +++ b/group06/2415980327/CodeSE01/src/com/pxshuo/se01/basic/TreeData.java @@ -1,4 +1,4 @@ -package com.pxshuo.basic; +package com.pxshuo.se01.basic; public class TreeData implements Comparable { private int data; diff --git a/group06/2415980327/CodeSE01/src/com/pxshuo/basic/impl/ArrayList.java b/group06/2415980327/CodeSE01/src/com/pxshuo/se01/basic/impl/ArrayList.java similarity index 96% rename from group06/2415980327/CodeSE01/src/com/pxshuo/basic/impl/ArrayList.java rename to group06/2415980327/CodeSE01/src/com/pxshuo/se01/basic/impl/ArrayList.java index 68108e41a2..ae64aca982 100644 --- a/group06/2415980327/CodeSE01/src/com/pxshuo/basic/impl/ArrayList.java +++ b/group06/2415980327/CodeSE01/src/com/pxshuo/se01/basic/impl/ArrayList.java @@ -1,7 +1,7 @@ -package com.pxshuo.basic.impl; +package com.pxshuo.se01.basic.impl; -import com.pxshuo.basic.Iterator; -import com.pxshuo.basic.List; +import com.pxshuo.se01.basic.Iterator; +import com.pxshuo.se01.basic.List; /** * 实现一个ArrayList diff --git a/group06/2415980327/CodeSE01/src/com/pxshuo/basic/impl/BinaryTree.java b/group06/2415980327/CodeSE01/src/com/pxshuo/se01/basic/impl/BinaryTree.java similarity index 93% rename from group06/2415980327/CodeSE01/src/com/pxshuo/basic/impl/BinaryTree.java rename to group06/2415980327/CodeSE01/src/com/pxshuo/se01/basic/impl/BinaryTree.java index 7ea54eae78..69bee72af0 100644 --- a/group06/2415980327/CodeSE01/src/com/pxshuo/basic/impl/BinaryTree.java +++ b/group06/2415980327/CodeSE01/src/com/pxshuo/se01/basic/impl/BinaryTree.java @@ -1,6 +1,6 @@ -package com.pxshuo.basic.impl; +package com.pxshuo.se01.basic.impl; -import com.pxshuo.basic.Iterator; +import com.pxshuo.se01.basic.Iterator; /** * 排序二叉树 diff --git a/group06/2415980327/CodeSE01/src/com/pxshuo/basic/impl/BinaryTreeNode.java b/group06/2415980327/CodeSE01/src/com/pxshuo/se01/basic/impl/BinaryTreeNode.java similarity index 98% rename from group06/2415980327/CodeSE01/src/com/pxshuo/basic/impl/BinaryTreeNode.java rename to group06/2415980327/CodeSE01/src/com/pxshuo/se01/basic/impl/BinaryTreeNode.java index d028dc5f48..57cf2da9e1 100644 --- a/group06/2415980327/CodeSE01/src/com/pxshuo/basic/impl/BinaryTreeNode.java +++ b/group06/2415980327/CodeSE01/src/com/pxshuo/se01/basic/impl/BinaryTreeNode.java @@ -1,4 +1,4 @@ -package com.pxshuo.basic.impl; +package com.pxshuo.se01.basic.impl; public class BinaryTreeNode { diff --git a/group06/2415980327/CodeSE01/src/com/pxshuo/basic/impl/LinkedList.java b/group06/2415980327/CodeSE01/src/com/pxshuo/se01/basic/impl/LinkedList.java similarity index 96% rename from group06/2415980327/CodeSE01/src/com/pxshuo/basic/impl/LinkedList.java rename to group06/2415980327/CodeSE01/src/com/pxshuo/se01/basic/impl/LinkedList.java index 7711e72a86..eeded51514 100644 --- a/group06/2415980327/CodeSE01/src/com/pxshuo/basic/impl/LinkedList.java +++ b/group06/2415980327/CodeSE01/src/com/pxshuo/se01/basic/impl/LinkedList.java @@ -1,9 +1,9 @@ -package com.pxshuo.basic.impl; +package com.pxshuo.se01.basic.impl; import java.time.Period; -import com.pxshuo.basic.Iterator; -import com.pxshuo.basic.List; +import com.pxshuo.se01.basic.Iterator; +import com.pxshuo.se01.basic.List; public class LinkedList implements List { diff --git a/group06/2415980327/CodeSE01/src/com/pxshuo/basic/impl/Queue.java b/group06/2415980327/CodeSE01/src/com/pxshuo/se01/basic/impl/Queue.java similarity index 94% rename from group06/2415980327/CodeSE01/src/com/pxshuo/basic/impl/Queue.java rename to group06/2415980327/CodeSE01/src/com/pxshuo/se01/basic/impl/Queue.java index b042f1d18c..5d9f4eee31 100644 --- a/group06/2415980327/CodeSE01/src/com/pxshuo/basic/impl/Queue.java +++ b/group06/2415980327/CodeSE01/src/com/pxshuo/se01/basic/impl/Queue.java @@ -1,4 +1,4 @@ -package com.pxshuo.basic.impl; +package com.pxshuo.se01.basic.impl; /** * 基本数据结构-队列 diff --git a/group06/2415980327/CodeSE01/src/com/pxshuo/basic/impl/Stack.java b/group06/2415980327/CodeSE01/src/com/pxshuo/se01/basic/impl/Stack.java similarity index 96% rename from group06/2415980327/CodeSE01/src/com/pxshuo/basic/impl/Stack.java rename to group06/2415980327/CodeSE01/src/com/pxshuo/se01/basic/impl/Stack.java index f3f837e117..e6237fa7e8 100644 --- a/group06/2415980327/CodeSE01/src/com/pxshuo/basic/impl/Stack.java +++ b/group06/2415980327/CodeSE01/src/com/pxshuo/se01/basic/impl/Stack.java @@ -1,4 +1,4 @@ -package com.pxshuo.basic.impl; +package com.pxshuo.se01.basic.impl; /** * 基本数据结构-栈 diff --git a/group06/2415980327/CodeSE01/src/com/pxshuo/basic/impl/package-info.java b/group06/2415980327/CodeSE01/src/com/pxshuo/se01/basic/impl/package-info.java similarity index 82% rename from group06/2415980327/CodeSE01/src/com/pxshuo/basic/impl/package-info.java rename to group06/2415980327/CodeSE01/src/com/pxshuo/se01/basic/impl/package-info.java index e87dca3a61..5d2c270af8 100644 --- a/group06/2415980327/CodeSE01/src/com/pxshuo/basic/impl/package-info.java +++ b/group06/2415980327/CodeSE01/src/com/pxshuo/se01/basic/impl/package-info.java @@ -11,4 +11,4 @@ * @author Pxshuo * */ -package com.pxshuo.basic.impl; \ No newline at end of file +package com.pxshuo.se01.basic.impl; \ No newline at end of file diff --git a/group06/2415980327/CodeSE01/src/com/pxshuo/se02/array/ArrayUtil.java b/group06/2415980327/CodeSE01/src/com/pxshuo/se02/array/ArrayUtil.java new file mode 100644 index 0000000000..e2d5a07eed --- /dev/null +++ b/group06/2415980327/CodeSE01/src/com/pxshuo/se02/array/ArrayUtil.java @@ -0,0 +1,226 @@ +package com.pxshuo.se02.array; + +import java.util.ArrayList; +import java.util.List; + +public class ArrayUtil { + + /** + * 给定一个整形数组a , 对该数组的值进行置换 + 例如: a = [7, 9 , 30, 3] , 置换后为 [3, 30, 9,7] + 如果 a = [7, 9, 30, 3, 4] , 置换后为 [4,3, 30 , 9,7] + * @param origin + * @return + */ + public void reverseArray(int[] origin){ + int[] result = new int[origin.length]; + for(int i = 0;i resultList = new ArrayList<>(); + for(int i = 0,j = 0;i array2[j]){ + resultList.add(array2[j++]); + } + else if (array1[i] < array2[j]) { + resultList.add(array1[i++]); + } else { + j++; + } + } + + int[] result = new int[resultList.size()]; + for(int i = 0;i < resultList.size();i++){ + result[i] = resultList.get(i); + } + return result; + } + /** + * 把一个已经存满数据的数组 oldArray的容量进行扩展, 扩展后的新数据大小为oldArray.length + size + * 注意,老数组的元素在新数组中需要保持 + * 例如 oldArray = [2,3,6] , size = 3,则返回的新数组为 + * [2,3,6,0,0,0] + * @param oldArray + * @param size + * @return + */ + public int[] grow(int [] oldArray, int size){ + int[] result = new int[oldArray.length+size]; + System.arraycopy(oldArray, 0, result, 0, oldArray.length); + return result; + } + + /** + * 斐波那契数列为:1,1,2,3,5,8,13,21...... ,给定一个最大值, 返回小于该值的数列 + * 例如, max = 15 , 则返回的数组应该为 [1,1,2,3,5,8,13] + * max = 1, 则返回空数组 [] + * @param max + * @return + */ + public int[] fibonacci(int max){ + List resultList = new ArrayList<>(); + resultList.add(1); + resultList.add(1); + int fibon = 1,fibonPrev1 = 1,fibonPrev2 = 1; + while(fibon < max){ + fibonPrev2 = fibon; + fibon = fibonPrev1 + fibonPrev2; + fibonPrev1 = fibonPrev2; + resultList.add(fibon); + } + resultList.remove(resultList.size()-1); + + int[] result = new int[resultList.size()]; + for(int i = 0;i < resultList.size();i++){ + result[i] = resultList.get(i); + } + return result; + } + + /** + * 返回小于给定最大值max的所有素数数组 + * 例如max = 23, 返回的数组为[2,3,5,7,11,13,17,19] + * @param max + * @return + */ + public int[] getPrimes(int max){ + if (max < 2) { + return null; + }else if (max < 4) { + return new int[]{2}; + } + if (max < 6) { + return new int[]{2,3}; + } + List primeList = new ArrayList<>(); + primeList.add(2); + primeList.add(3); + boolean isPrime = true; + /** + * 非2偶数肯定不是素数 + */ + for(int i = 5;i < max; i = i + 2){ + isPrime =true; + for(int j = 1;j= max) { + primeList.remove(primeList.size() - 1); + } + + int[] result = new int[primeList.size()]; + for(int i = 0;i < primeList.size();i++){ + result[i] = primeList.get(i); + } + return result; + } + + /** + * 所谓“完数”, 是指这个数恰好等于它的因子之和,例如6=1+2+3 + * 给定一个最大值max, 返回一个数组, 数组中是小于max 的所有完数 + * @param max + * @return + */ + public int[] getPerfectNumbers(int max){ + if (max < 7) { + return null; + } + List perfectList = new ArrayList<>(); + int sum = 1; + + for (int i = 2; i < max; i++) { + sum = 1; + for(int j = 2;j < i; j++){ + if (i%j == 0) { + sum += j; + } + } + if (sum == i) { + perfectList.add(sum); + } + } + + if (perfectList.get(perfectList.size() - 1) >= max) { + perfectList.remove(perfectList.size() - 1); + } + + int[] result = new int[perfectList.size()]; + for(int i = 0;i < perfectList.size();i++){ + result[i] = perfectList.get(i); + } + return result; + } + + /** + * 用seperator 把数组 array给连接起来 + * 例如array= [3,8,9], seperator = "-" + * 则返回值为"3-8-9" + * @param array + * @param s + * @return + */ + public String join(int[] array, String seperator){ + String result = ""; + for (int i = 0; i < array.length; i++) { + result = result + array[i] + seperator; + } + if (result.endsWith(seperator)) { + result = result.substring(0, result.length()-1); + } + return result; + } + + +} diff --git a/group06/2415980327/CodeSE01/src/com/pxshuo/se02/litestruts/LoginAction.java b/group06/2415980327/CodeSE01/src/com/pxshuo/se02/litestruts/LoginAction.java new file mode 100644 index 0000000000..067a2875b1 --- /dev/null +++ b/group06/2415980327/CodeSE01/src/com/pxshuo/se02/litestruts/LoginAction.java @@ -0,0 +1,39 @@ +package com.pxshuo.se02.litestruts; + +/** + * 这是一个用来展示登录的业务类, 其中的用户名和密码都是硬编码的。 + * @author liuxin + * + */ +public class LoginAction{ + private String name ; + private String password; + private String message; + + public String getName() { + return name; + } + + public String getPassword() { + return password; + } + + public String execute(){ + if("test".equals(name) && "1234".equals(password)){ + this.message = "login successful"; + return "success"; + } + this.message = "login failed,please check your user/pwd"; + return "fail"; + } + + public void setName(String name){ + this.name = name; + } + public void setPassword(String password){ + this.password = password; + } + public String getMessage(){ + return this.message; + } +} diff --git a/group06/2415980327/CodeSE01/src/com/pxshuo/se02/litestruts/Struts.java b/group06/2415980327/CodeSE01/src/com/pxshuo/se02/litestruts/Struts.java new file mode 100644 index 0000000000..6801a838d7 --- /dev/null +++ b/group06/2415980327/CodeSE01/src/com/pxshuo/se02/litestruts/Struts.java @@ -0,0 +1,151 @@ +package com.pxshuo.se02.litestruts; + +import java.io.InputStream; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.dom4j.Document; +import org.dom4j.DocumentException; +import org.dom4j.Element; +import org.dom4j.io.SAXReader; + + + +public class Struts { + + public static View runAction(String actionName, Map parameters) { + + /* + + 0. 读取配置文件struts.xml + + 1. 根据actionName找到相对应的class , 例如LoginAction, 通过反射实例化(创建对象) + 据parameters中的数据,调用对象的setter方法, 例如parameters中的数据是 + ("name"="test" , "password"="1234") , + 那就应该调用 setName和setPassword方法 + + 2. 通过反射调用对象的exectue 方法, 并获得返回值,例如"success" + + 3. 通过反射找到对象的所有getter方法(例如 getMessage), + 通过反射来调用, 把值和属性形成一个HashMap , 例如 {"message": "登录成功"} , + 放到View对象的parameters + + 4. 根据struts.xml中的 配置,以及execute的返回值, 确定哪一个jsp, + 放到View对象的jsp字段中。 + + */ + Element struts = strutsFactory("struts.xml"); + List actions = struts.elements(); + List resultRefs = new ArrayList<>();//action下面的结果跳转 + String actionClass = "";//获取action的类型 + for (Element element : actions) { + if (actionName.equals(element.attributeValue("name"))) { + actionClass = element.attributeValue("class"); + resultRefs = element.elements();//获取结果跳转 + } + } + + Iterator> iterator = parameters.entrySet().iterator();//规范化传递进来的数据 + + try { + //反射实例化一个对象 + Object action = Class.forName(actionClass).newInstance(); + while (iterator.hasNext()) {//执行set方法 + Map.Entry entry = (Map.Entry) iterator.next(); + Method setMethod = action.getClass().getDeclaredMethod("set" + Tools.upperFirst(entry.getKey()) + ,String.class);//这里的类型值不知道怎么取 + setMethod.invoke(action, entry.getValue()); + } + + //调用exectue + Method exectue = action.getClass().getDeclaredMethod("execute"); + String result = (String)exectue.invoke(action); + + //生成返回列表 + Map actionParam = new HashMap<>(); + Method[] methods = action.getClass().getDeclaredMethods(); + for (Method method : methods) { + if (method.getName().startsWith("get")) { + String methodName = Tools.lowerFirst(method.getName().substring(3)); + String methodValue = (String)method.invoke(action); + actionParam.put(methodName, methodValue); + } + } + + //返回的视图 + View view = new View(); + view.setParameters(actionParam); + for(Element element:resultRefs){ + if (result.equals(element.attributeValue("name"))) { + view.setJsp((String)element.getData()); + } + } + + return view; + } catch (InstantiationException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IllegalAccessException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (ClassNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (NoSuchMethodException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (SecurityException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IllegalArgumentException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (InvocationTargetException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + + return null; + } + + public static Element strutsFactory(String filename) { + //读配置文件 + InputStream inputStream = Struts.class.getResourceAsStream(filename); + SAXReader reader = new SAXReader(); + Document document = null; + + try { + document = reader.read(inputStream); + + Element struts = document.getRootElement(); + return struts; + } catch (DocumentException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + public static void main(String[] args) { + //strutsFactory("struts.xml"); + //runAction(null, null); + String actionName = "login"; + Element struts = strutsFactory("struts.xml"); + List actions = struts.elements(); + for (Element element : actions) { + if (actionName.equals(element.attributeValue("name"))) { + System.out.println(element.attributeValue("class")); + + for(Element element1:(List)element.elements()){ + System.out.println(element1.getData()); + } + } + } + } +} diff --git a/group06/2415980327/CodeSE01/src/com/pxshuo/se02/litestruts/StrutsTest.java b/group06/2415980327/CodeSE01/src/com/pxshuo/se02/litestruts/StrutsTest.java new file mode 100644 index 0000000000..7ed32c89f6 --- /dev/null +++ b/group06/2415980327/CodeSE01/src/com/pxshuo/se02/litestruts/StrutsTest.java @@ -0,0 +1,43 @@ +package com.pxshuo.se02.litestruts; + +import java.util.HashMap; +import java.util.Map; + +import org.junit.Assert; +import org.junit.Test; + + + + + +public class StrutsTest { + + @Test + public void testLoginActionSuccess() { + + String actionName = "login"; + + Map params = new HashMap(); + params.put("name","test"); + params.put("password","1234"); + + + View view = Struts.runAction(actionName,params); + + Assert.assertEquals("/jsp/homepage.jsp", view.getJsp()); + Assert.assertEquals("login successful", view.getParameters().get("message")); + } + + @Test + public void testLoginActionFailed() { + String actionName = "login"; + Map params = new HashMap(); + params.put("name","test"); + params.put("password","123456"); //密码和预设的不一致 + + View view = Struts.runAction(actionName,params); + + Assert.assertEquals("/jsp/showLogin.jsp", view.getJsp()); + Assert.assertEquals("login failed,please check your user/pwd", view.getParameters().get("message")); + } +} diff --git a/group06/2415980327/CodeSE01/src/com/pxshuo/se02/litestruts/Tools.java b/group06/2415980327/CodeSE01/src/com/pxshuo/se02/litestruts/Tools.java new file mode 100644 index 0000000000..66acb26157 --- /dev/null +++ b/group06/2415980327/CodeSE01/src/com/pxshuo/se02/litestruts/Tools.java @@ -0,0 +1,33 @@ +package com.pxshuo.se02.litestruts; + +public class Tools { + /** + * 将第一个字母转为大写 + * @param string + * @return + */ + public static String upperFirst(String string) { + if (string == null || ("").equals(string)) { + return ""; + } + string = string.substring(0,1).toUpperCase() + string.substring(1); + return string; + } + + /** + * 将第一个字母转为大写 + * @param string + * @return + */ + public static String lowerFirst(String string) { + if (string == null || ("").equals(string)) { + return ""; + } + string = string.substring(0,1).toLowerCase() + string.substring(1); + return string; + } + + public static void main(String[] args) { + upperFirst("1ame"); + } +} diff --git a/group06/2415980327/CodeSE01/src/com/pxshuo/se02/litestruts/View.java b/group06/2415980327/CodeSE01/src/com/pxshuo/se02/litestruts/View.java new file mode 100644 index 0000000000..5f017e9a8a --- /dev/null +++ b/group06/2415980327/CodeSE01/src/com/pxshuo/se02/litestruts/View.java @@ -0,0 +1,23 @@ +package com.pxshuo.se02.litestruts; + +import java.util.Map; + +public class View { + private String jsp; + private Map parameters; + + public String getJsp() { + return jsp; + } + public View setJsp(String jsp) { + this.jsp = jsp; + return this; + } + public Map getParameters() { + return parameters; + } + public View setParameters(Map parameters) { + this.parameters = parameters; + return this; + } +} diff --git a/group06/2415980327/CodeSE01/src/com/pxshuo/se02/litestruts/struts.xml b/group06/2415980327/CodeSE01/src/com/pxshuo/se02/litestruts/struts.xml new file mode 100644 index 0000000000..227b855f45 --- /dev/null +++ b/group06/2415980327/CodeSE01/src/com/pxshuo/se02/litestruts/struts.xml @@ -0,0 +1,11 @@ + + + + /jsp/homepage.jsp + /jsp/showLogin.jsp + + + /jsp/welcome.jsp + /jsp/error.jsp + + \ No newline at end of file diff --git a/group06/2415980327/CodeSE01/src/com/pxshuo/test/Test.java b/group06/2415980327/CodeSE01/src/com/pxshuo/test/Test.java index c40ddac87d..9737d269e8 100644 --- a/group06/2415980327/CodeSE01/src/com/pxshuo/test/Test.java +++ b/group06/2415980327/CodeSE01/src/com/pxshuo/test/Test.java @@ -1,13 +1,13 @@ package com.pxshuo.test; -import com.pxshuo.basic.Iterator; -import com.pxshuo.basic.TreeData; -import com.pxshuo.basic.impl.ArrayList; -import com.pxshuo.basic.impl.BinaryTree; -import com.pxshuo.basic.impl.LinkedList; -import com.pxshuo.basic.impl.Queue; -import com.pxshuo.basic.impl.Stack; +import com.pxshuo.se01.basic.Iterator; +import com.pxshuo.se01.basic.TreeData; +import com.pxshuo.se01.basic.impl.ArrayList; +import com.pxshuo.se01.basic.impl.BinaryTree; +import com.pxshuo.se01.basic.impl.LinkedList; +import com.pxshuo.se01.basic.impl.Queue; +import com.pxshuo.se01.basic.impl.Stack; public class Test { public static void main(String[] args) { diff --git a/group06/2415980327/CodeSE01/src/test/com/pxshuo/basic/impl/ArrayListTest.java b/group06/2415980327/CodeSE01/src/test/com/pxshuo/se01/basic/impl/ArrayListTest.java similarity index 89% rename from group06/2415980327/CodeSE01/src/test/com/pxshuo/basic/impl/ArrayListTest.java rename to group06/2415980327/CodeSE01/src/test/com/pxshuo/se01/basic/impl/ArrayListTest.java index 4249574817..26b7b977e6 100644 --- a/group06/2415980327/CodeSE01/src/test/com/pxshuo/basic/impl/ArrayListTest.java +++ b/group06/2415980327/CodeSE01/src/test/com/pxshuo/se01/basic/impl/ArrayListTest.java @@ -1,9 +1,9 @@ -package test.com.pxshuo.basic.impl; +package test.com.pxshuo.se01.basic.impl; import org.junit.Assert; import org.junit.Test; -import com.pxshuo.basic.impl.ArrayList; +import com.pxshuo.se01.basic.impl.ArrayList; public class ArrayListTest { ArrayList object = new ArrayList(); diff --git a/group06/2415980327/CodeSE01/src/test/com/pxshuo/basic/impl/BinaryTreeTest.java b/group06/2415980327/CodeSE01/src/test/com/pxshuo/se01/basic/impl/BinaryTreeTest.java similarity index 81% rename from group06/2415980327/CodeSE01/src/test/com/pxshuo/basic/impl/BinaryTreeTest.java rename to group06/2415980327/CodeSE01/src/test/com/pxshuo/se01/basic/impl/BinaryTreeTest.java index a9d67f7ba1..dc53c5988d 100644 --- a/group06/2415980327/CodeSE01/src/test/com/pxshuo/basic/impl/BinaryTreeTest.java +++ b/group06/2415980327/CodeSE01/src/test/com/pxshuo/se01/basic/impl/BinaryTreeTest.java @@ -1,10 +1,10 @@ -package test.com.pxshuo.basic.impl; +package test.com.pxshuo.se01.basic.impl; import org.junit.Assert; import org.junit.Test; -import com.pxshuo.basic.TreeData; -import com.pxshuo.basic.impl.BinaryTree; +import com.pxshuo.se01.basic.TreeData; +import com.pxshuo.se01.basic.impl.BinaryTree; public class BinaryTreeTest { BinaryTree object = new BinaryTree(); diff --git a/group06/2415980327/CodeSE01/src/test/com/pxshuo/basic/impl/LinkedListTest.java b/group06/2415980327/CodeSE01/src/test/com/pxshuo/se01/basic/impl/LinkedListTest.java similarity index 84% rename from group06/2415980327/CodeSE01/src/test/com/pxshuo/basic/impl/LinkedListTest.java rename to group06/2415980327/CodeSE01/src/test/com/pxshuo/se01/basic/impl/LinkedListTest.java index 72fd2c49f1..21fea9680f 100644 --- a/group06/2415980327/CodeSE01/src/test/com/pxshuo/basic/impl/LinkedListTest.java +++ b/group06/2415980327/CodeSE01/src/test/com/pxshuo/se01/basic/impl/LinkedListTest.java @@ -1,10 +1,10 @@ -package test.com.pxshuo.basic.impl; +package test.com.pxshuo.se01.basic.impl; import org.junit.Assert; import org.junit.Test; -import com.pxshuo.basic.impl.ArrayList; -import com.pxshuo.basic.impl.LinkedList; +import com.pxshuo.se01.basic.impl.ArrayList; +import com.pxshuo.se01.basic.impl.LinkedList; public class LinkedListTest { LinkedList object = new LinkedList(); diff --git a/group06/2415980327/CodeSE01/src/test/com/pxshuo/basic/impl/QueueTest.java b/group06/2415980327/CodeSE01/src/test/com/pxshuo/se01/basic/impl/QueueTest.java similarity index 85% rename from group06/2415980327/CodeSE01/src/test/com/pxshuo/basic/impl/QueueTest.java rename to group06/2415980327/CodeSE01/src/test/com/pxshuo/se01/basic/impl/QueueTest.java index 4f2b5735e4..edd3bfd73a 100644 --- a/group06/2415980327/CodeSE01/src/test/com/pxshuo/basic/impl/QueueTest.java +++ b/group06/2415980327/CodeSE01/src/test/com/pxshuo/se01/basic/impl/QueueTest.java @@ -1,9 +1,9 @@ -package test.com.pxshuo.basic.impl; +package test.com.pxshuo.se01.basic.impl; import org.junit.Assert; import org.junit.Test; -import com.pxshuo.basic.impl.Queue; +import com.pxshuo.se01.basic.impl.Queue; public class QueueTest { public Queue object = new Queue(); diff --git a/group06/2415980327/CodeSE01/src/test/com/pxshuo/basic/impl/StackTest.java b/group06/2415980327/CodeSE01/src/test/com/pxshuo/se01/basic/impl/StackTest.java similarity index 80% rename from group06/2415980327/CodeSE01/src/test/com/pxshuo/basic/impl/StackTest.java rename to group06/2415980327/CodeSE01/src/test/com/pxshuo/se01/basic/impl/StackTest.java index df1e254595..fc3f450e01 100644 --- a/group06/2415980327/CodeSE01/src/test/com/pxshuo/basic/impl/StackTest.java +++ b/group06/2415980327/CodeSE01/src/test/com/pxshuo/se01/basic/impl/StackTest.java @@ -1,10 +1,10 @@ -package test.com.pxshuo.basic.impl; +package test.com.pxshuo.se01.basic.impl; import org.junit.Assert; import org.junit.Test; -import com.pxshuo.basic.impl.Queue; -import com.pxshuo.basic.impl.Stack; +import com.pxshuo.se01.basic.impl.Queue; +import com.pxshuo.se01.basic.impl.Stack; public class StackTest { public Stack object = new Stack(); diff --git a/group06/2415980327/CodeSE01/src/test/com/pxshuo/se02/array/ArrayUntilTest.java b/group06/2415980327/CodeSE01/src/test/com/pxshuo/se02/array/ArrayUntilTest.java new file mode 100644 index 0000000000..6a6e3d4229 --- /dev/null +++ b/group06/2415980327/CodeSE01/src/test/com/pxshuo/se02/array/ArrayUntilTest.java @@ -0,0 +1,72 @@ +package test.com.pxshuo.se02.array; + +import org.junit.Assert; +import org.junit.Test; + +import com.pxshuo.se02.array.*; + +public class ArrayUntilTest { + private ArrayUtil obj = new ArrayUtil(); + + @Test + public void reverseArrayTest() { + int[] origin = {3, 30, 9,7}; + obj.reverseArray(origin); + int[] expect = {7,9,30,3}; + Assert.assertArrayEquals(expect, origin); + } + + @Test + public void removeZeroTest() { + int[] origin = {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}; + int[] actual = obj.removeZero(origin); + int[] expect = {1,3,4,5,6,6,5,4,7,6,7,5}; + Assert.assertArrayEquals(expect, actual); + } + + @Test + public void mergeTest() { + int[] array1 = {3, 5, 7,8}; + int[] array2 = {4, 5, 6,7}; + int[] actual = obj.merge(array2,array1); + int[] expect = {3,4,5,6,7,8}; + Assert.assertArrayEquals(expect, actual); + } + + @Test + public void growTest() { + int[] origin = {2,3,6}; + int[] actual = obj.grow(origin,3); + int[] expect = {2,3,6,0,0,0}; + Assert.assertArrayEquals(expect, actual); + } + + @Test + public void fibonacciTest() { + int[] actual = obj.fibonacci(15); + int[] expect = {1,1,2,3,5,8,13}; + Assert.assertArrayEquals(expect, actual); + } + + @Test + public void getPrimesTest() { + int[] actual = obj.getPrimes(23); + int[] expect = {2,3,5,7,11,13,17,19}; + Assert.assertArrayEquals(expect, actual); + } + + @Test + public void getPerfectNumbersTest() { + int[] actual = obj.getPerfectNumbers(1000); + int[] expect = {6,28,496}; + Assert.assertArrayEquals(expect, actual); + } + + @Test + public void joinTest() { + int[] origin = {3,8,9}; + String actual = obj.join(origin, "-"); + String expect = "3-8-9"; + Assert.assertEquals(expect, actual); + } +}