From f304ff5a6385954ad3ea89c8798551a608616b93 Mon Sep 17 00:00:00 2001 From: coderfengyun Date: Thu, 3 Jul 2014 09:04:02 +0800 Subject: [PATCH] refactor refactor --- .../java/org/bench4q/agent/test/LRUCache.java | 113 --------------- .../java/org/bench4q/agent/test/Solution.java | 132 ++++++------------ .../bench4q/master/domain/entity/Agent.java | 12 +- .../communication/Test_AgentMessenger.java | 3 +- .../master/unitTest/entity/Test_Agent.java | 2 +- .../unitTest/entity/Test_RunningAgent.java | 4 +- .../unitTest/entity/Test_RunningScript.java | 4 +- .../master/unitTest/entity/Test_TestPlan.java | 2 +- .../Test_highAvailableWithMockMessenger.java | 8 +- .../repository/Test_AgentRepository.java | 4 +- .../unitTest/service/Test_AgentService.java | 2 +- .../service/Test_MonitorResultService.java | 8 +- .../unitTest/service/Test_TestPlanEngine.java | 8 +- .../transaction/Test_ScriptLoadCommand.java | 2 +- .../test/java/stubs/HighAvailableImpl.java | 3 +- 15 files changed, 72 insertions(+), 235 deletions(-) delete mode 100644 Bench4Q-Agent/src/test/java/org/bench4q/agent/test/LRUCache.java diff --git a/Bench4Q-Agent/src/test/java/org/bench4q/agent/test/LRUCache.java b/Bench4Q-Agent/src/test/java/org/bench4q/agent/test/LRUCache.java deleted file mode 100644 index 077acb64..00000000 --- a/Bench4Q-Agent/src/test/java/org/bench4q/agent/test/LRUCache.java +++ /dev/null @@ -1,113 +0,0 @@ -package org.bench4q.agent.test; - -import static org.junit.Assert.*; - -import java.util.HashMap; -import java.util.LinkedList; -import java.util.Map; - -import org.junit.Test; - -public class LRUCache { - private int capacity; - private ListNode vHead; - private int last; - private Map keyNodes; - - public LRUCache(int capacity) { - vHead = new ListNode(-1, -1, null, null); - this.keyNodes = new HashMap(capacity); - this.capacity = capacity; - } - - public int get(int key) { - if (this.keyNodes.containsKey(key)) { - ListNode node = this.keyNodes.get(key); - delete(node); - offerFirst(node); - return node.val; - } - return -1; - } - - private void delete(ListNode node) { - if (node.key == this.last) { - if (this.keyNodes.size() <= 1) { - this.last = Integer.MAX_VALUE; - } else { - this.last = node.previous.key; - } - } - node.previous.next = node.next; - if (node.next != null) { - node.next.previous = node.previous; - } - node.previous = null; - node.next = null; - this.keyNodes.remove(node.key); - } - - private void offerFirst(ListNode node) { - node.next = vHead.next; - if (vHead.next != null) { - vHead.next.previous = node; - } - node.previous = vHead; - vHead.next = node; - if (this.keyNodes.size() == 0) { - this.last = node.key; - } - this.keyNodes.put(node.key, node); - } - - public void set(int key, int value) { - ListNode valNode = null; - if (this.keyNodes.containsKey(key)) { - valNode = this.keyNodes.get(key); - valNode.val = value; - delete(valNode); - } else { - if (isFull()) { - delete(this.keyNodes.get(this.last)); - } - valNode = new ListNode(key, value, null, null); - } - offerFirst(valNode); - } - - private boolean isFull() { - return this.keyNodes.size() == this.capacity; - } - - private class ListNode { - int key; - int val; - ListNode previous; - ListNode next; - - public ListNode(int key, int val, ListNode previous, ListNode next) { - this.key = key; - this.val = val; - this.previous = previous; - this.next = next; - } - } - - public static void main(String[] args) { - LRUCache cache = new LRUCache(3); - cache.set(1, 1); - cache.set(2, 2); - cache.set(3, 3); - cache.set(4, 4); - System.out.println(cache.get(4)); - System.out.println(cache.get(3)); - System.out.println(cache.get(2)); - System.out.println(cache.get(1)); - cache.set(5, 5); - System.out.println(cache.get(1)); - System.out.println(cache.get(2)); - System.out.println(cache.get(3)); - System.out.println(cache.get(4)); - System.out.println(cache.get(5)); - } -} \ No newline at end of file diff --git a/Bench4Q-Agent/src/test/java/org/bench4q/agent/test/Solution.java b/Bench4Q-Agent/src/test/java/org/bench4q/agent/test/Solution.java index f96b65d1..69756d4e 100644 --- a/Bench4Q-Agent/src/test/java/org/bench4q/agent/test/Solution.java +++ b/Bench4Q-Agent/src/test/java/org/bench4q/agent/test/Solution.java @@ -1,110 +1,64 @@ package org.bench4q.agent.test; +import static org.junit.Assert.*; + +import java.util.LinkedList; + import org.junit.Test; -class ListNode { - int val; - ListNode next; - - ListNode(int x) { - val = x; - next = null; - } -} - public class Solution { - private static boolean FIRST = true; - private static boolean SECOND = false; - public void reorderList(ListNode head) { - if (head == null || head.next == null || head.next.next == null) { - return; + public int candy(int[] ratings) { + if (ratings == null || ratings.length == 0) { + return 0; } - ListNode startOfSecondHalf = findStartNodeOfSecondHalf(head); - startOfSecondHalf = reverse(startOfSecondHalf); - merge(head, startOfSecondHalf); + int result = ratings.length, minIndex = findMinIndex(ratings); + // Left part + for (int i = minIndex - 1; i >= 0; i--) { + } + // Right Part + for (int i = minIndex + 1; i <= ratings.length; i++) { + } + return result; } - private ListNode findStartNodeOfSecondHalf(ListNode head) { - ListNode vHead = new ListNode(-1); - vHead.next = head; - ListNode runner = head, walker = head, walkerPre = vHead; - while (runner != null && runner.next != null) { - runner = runner.next; - runner = runner.next; - walkerPre = walkerPre.next; - walker = walker.next; - } - walkerPre.next = null; - return walker; - } - - private ListNode reverse(ListNode start) { - ListNode vHead = new ListNode(-1), current = start, next = start.next; - while (current != null) { - current.next = vHead.next; - vHead.next = current; - current = next; - if (next == null) { - break; + private int findMinIndex(int[] target) { + int i = 0, maxValue = Integer.MIN_VALUE, result = -1; + while (i < target.length) { + if (target[i] > maxValue) { + maxValue = target[i]; + result = i; } - next = next.next; } - return vHead.next; + return result; } - private void merge(ListNode head, ListNode head2) { - ListNode current = head, firstCurrent = head.next, secondCurrent = head2, firstNext = firstCurrent != null ? firstCurrent.next - : null, secondNext = head2.next; - boolean currentTurn = SECOND; - while (firstCurrent != null && secondCurrent != null) { - if (currentTurn == FIRST) { - firstCurrent.next = null; - current.next = firstCurrent; - firstCurrent = firstNext; - if (firstNext != null) { - firstNext = firstNext.next; - } - currentTurn = SECOND; - } else { - secondCurrent.next = null; - current.next = secondCurrent; - secondCurrent = secondNext; - if (secondNext != null) { - secondNext = secondNext.next; - } - currentTurn = FIRST; - } - current = current.next; - } - - current.next = firstCurrent == null ? secondCurrent : firstCurrent; + private int sumOfZeroTo(int target) { + return target * (target + 1) / 2; } @Test - public void test() { - ListNode list = new ListNode(1); - list.next = new ListNode(2); - list.next.next = new ListNode(3); - list.next.next.next = new ListNode(4); - list.next.next.next.next = new ListNode(5); - reorderList(list); - print(list); - } - - private void print(ListNode list) { - while (list != null) { - System.out.println(list.val); - list = list.next; - } + public void testAscending() { + assertEquals(15, this.candy(new int[] { 1, 2, 3, 4, 5 })); } @Test - public void test1() { - ListNode list = new ListNode(1); - list.next = new ListNode(2); - list.next.next = new ListNode(3); - reorderList(list); - print(list); + public void testAllEquals() { + assertEquals(5, this.candy(new int[] { 2, 2, 2, 2, 2 })); + } + + @Test + public void testAscendingAndEquals() { + assertEquals(18, this.candy(new int[] { 1, 2, 3, 4, 4, 4 })); + } + + @Test + public void testEqualsAndAscending() { + assertEquals(12, this.candy(new int[] { 1, 1, 1, 3, 4, 5 })); + } + + @Test + public void testAscendingAndDescending() { + assertEquals(16, this.candy(new int[] { 1, 2, 3, 4, 3, 2, 1 })); } } \ No newline at end of file diff --git a/Bench4Q-Master/src/main/java/org/bench4q/master/domain/entity/Agent.java b/Bench4Q-Master/src/main/java/org/bench4q/master/domain/entity/Agent.java index fe2706e6..2279888c 100644 --- a/Bench4Q-Master/src/main/java/org/bench4q/master/domain/entity/Agent.java +++ b/Bench4Q-Master/src/main/java/org/bench4q/master/domain/entity/Agent.java @@ -87,20 +87,10 @@ public class Agent { agentWithoutInitial.getMaxLoad()); } else { return createAgentWithoutId(agentWithoutInitial.getHostName(), - agentWithoutInitial.getPort()); + agentWithoutInitial.getPort(), 500); } } - public static Agent createAgentWithoutId(String hostName, int port) { - Agent agent = new Agent(); - agent.setCurrentEnumStatus(AgentStatus.InIdle); - agent.setHostName(hostName); - agent.setMaxLoad(500); - agent.setPort(port); - agent.setRemainLoad(500); - return agent; - } - public static Agent createAgentWithoutId(String hostName, int port, int maxLoad) { Agent agent = new Agent(); diff --git a/Bench4Q-Master/src/test/java/org/bench4q/master/integrated/communication/Test_AgentMessenger.java b/Bench4Q-Master/src/test/java/org/bench4q/master/integrated/communication/Test_AgentMessenger.java index 07df9bf2..ab6cf4ef 100644 --- a/Bench4Q-Master/src/test/java/org/bench4q/master/integrated/communication/Test_AgentMessenger.java +++ b/Bench4Q-Master/src/test/java/org/bench4q/master/integrated/communication/Test_AgentMessenger.java @@ -63,7 +63,8 @@ public class Test_AgentMessenger extends TestBase_MakeUpTestPlan { FileUtils.readFileToString(scenarioFile)); inputModel.setPoolSize(20); - Agent agent = Agent.createAgentWithoutId(Test_HOSTNAME, Test_PORT); + Agent agent = Agent + .createAgentWithoutId(Test_HOSTNAME, Test_PORT, 1000); RunScenarioResultModel model = this.getAgentMessenger().bookTest(agent, 20); assertNotNull(model); diff --git a/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/entity/Test_Agent.java b/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/entity/Test_Agent.java index 2b8b6e7b..e0b773ad 100644 --- a/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/entity/Test_Agent.java +++ b/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/entity/Test_Agent.java @@ -12,7 +12,7 @@ import org.bench4q.share.models.master.AgentModel; import org.junit.Test; public class Test_Agent { - private Agent agent = Agent.createAgentWithoutId("127.0.0.1", 6565); + private Agent agent = Agent.createAgentWithoutId("127.0.0.1", 6565, 1000); public Agent getAgentForTest() { return agent; diff --git a/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/entity/Test_RunningAgent.java b/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/entity/Test_RunningAgent.java index 25f28189..2e18e07c 100644 --- a/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/entity/Test_RunningAgent.java +++ b/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/entity/Test_RunningAgent.java @@ -29,8 +29,8 @@ public class Test_RunningAgent extends TestBase_MakeUpTestPlan { private List testcase2 = new ArrayList(); { - testcase2.add(Agent.createAgentWithoutId("127.0.0.1", 6565)); - testcase2.add(Agent.createAgentWithoutId("127.0.0.2", 6565)); + testcase2.add(Agent.createAgentWithoutId("127.0.0.1", 6565, 500)); + testcase2.add(Agent.createAgentWithoutId("127.0.0.2", 6565, 500)); } @Before diff --git a/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/entity/Test_RunningScript.java b/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/entity/Test_RunningScript.java index 8d90ea19..2a07c149 100644 --- a/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/entity/Test_RunningScript.java +++ b/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/entity/Test_RunningScript.java @@ -22,8 +22,8 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; public class Test_RunningScript extends TestBase_MakeUpTestPlan { private List testcase2 = new ArrayList(); { - testcase2.add(Agent.createAgentWithoutId("127.0.0.1", 6565)); - testcase2.add(Agent.createAgentWithoutId("127.0.0.2", 6565)); + testcase2.add(Agent.createAgentWithoutId("127.0.0.1", 6565, 500)); + testcase2.add(Agent.createAgentWithoutId("127.0.0.2", 6565, 500)); } @Before diff --git a/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/entity/Test_TestPlan.java b/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/entity/Test_TestPlan.java index 57b4453e..6b7eac6d 100644 --- a/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/entity/Test_TestPlan.java +++ b/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/entity/Test_TestPlan.java @@ -35,7 +35,7 @@ public class Test_TestPlan extends TestBase_MakeUpTestPlan { { Random random = new Random(212); testcase2.add(Agent.createAgentWithoutId( - random.nextInt(256) + ".0.0.2", 6565)); + random.nextInt(256) + ".0.0.2", 6565, 500)); } private TestPlanService testPlanService; private TestPlanFactory testPlanFactory; diff --git a/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/infrastructure/ha/Test_highAvailableWithMockMessenger.java b/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/infrastructure/ha/Test_highAvailableWithMockMessenger.java index bffb88e4..b43fc1e6 100644 --- a/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/infrastructure/ha/Test_highAvailableWithMockMessenger.java +++ b/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/infrastructure/ha/Test_highAvailableWithMockMessenger.java @@ -27,11 +27,11 @@ public class Test_highAvailableWithMockMessenger extends { testCase1.add(Agent.createAgentWithoutId("127.0.0.1", 6565, 500)); - Agent agent = Agent.createAgentWithoutId("127.0.0.2", 6565); + Agent agent = Agent.createAgentWithoutId("127.0.0.2", 6565, 500); agent.setCurrentEnumStatus(AgentStatus.BreakDown); testCase1.add(agent); - Agent agent2 = Agent.createAgentWithoutId("127.0.0.3", 6565); + Agent agent2 = Agent.createAgentWithoutId("127.0.0.3", 6565, 500); agent2.setCurrentEnumStatus(AgentStatus.InRunning); agent2.bookTest(10); testCase1.add(agent2); @@ -39,8 +39,8 @@ public class Test_highAvailableWithMockMessenger extends private List testcase2 = new ArrayList(); { - testcase2.add(Agent.createAgentWithoutId("127.0.0.1", 6565)); - testcase2.add(Agent.createAgentWithoutId("127.0.0.2", 6565)); + testcase2.add(Agent.createAgentWithoutId("127.0.0.1", 6565, 500)); + testcase2.add(Agent.createAgentWithoutId("127.0.0.2", 6565, 500)); } @Autowired diff --git a/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/repository/Test_AgentRepository.java b/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/repository/Test_AgentRepository.java index 291df99b..63b1d4cc 100644 --- a/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/repository/Test_AgentRepository.java +++ b/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/repository/Test_AgentRepository.java @@ -31,12 +31,12 @@ public class Test_AgentRepository { String hostNameForTest = "133.133.12.95"; int portForTest = 6565; assertTrue(this.getAgentRepoitory().attach( - Agent.createAgentWithoutId(hostNameForTest, portForTest))); + Agent.createAgentWithoutId(hostNameForTest, portForTest, 1000))); Agent agent = this.getAgentRepoitory().getAgentBy(hostNameForTest); assertNotNull(agent); assertEquals(hostNameForTest, agent.getHostName()); assertEquals(portForTest, agent.getPort()); - assertEquals(500, agent.getMaxLoad()); + assertEquals(1000, agent.getMaxLoad()); assertEquals(AgentStatus.InIdle, agent.getCurrentEnumStatus()); System.out.println(AgentStatus.InIdle.ordinal()); assertTrue(this.getAgentRepoitory().detach(agent.getId())); diff --git a/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/service/Test_AgentService.java b/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/service/Test_AgentService.java index ada2be33..f1dd3ce9 100644 --- a/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/service/Test_AgentService.java +++ b/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/service/Test_AgentService.java @@ -63,7 +63,7 @@ public class Test_AgentService { private boolean doAddAgent() { return this.getAgentService().addAgentToPool( - Agent.createAgentWithoutId(hostNameForTest, 6565)); + Agent.createAgentWithoutId(hostNameForTest, 6565, 500)); } @Before diff --git a/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/service/Test_MonitorResultService.java b/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/service/Test_MonitorResultService.java index 88d39553..5e862ffd 100644 --- a/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/service/Test_MonitorResultService.java +++ b/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/service/Test_MonitorResultService.java @@ -76,7 +76,7 @@ public class Test_MonitorResultService extends TestBase_MakeUpTestPlan { public void makeUpTestPlanAndTestPlanScriptAndTestPlanScriptResult() throws JAXBException { this.agentService.addAgentToPool(Agent.createAgentWithoutId( - "127.0.0.1", 6565)); + "127.0.0.1", 6565, 500)); prepareForTestPlanRunning(); } @@ -89,8 +89,10 @@ public class Test_MonitorResultService extends TestBase_MakeUpTestPlan { @Test public void testLoadMemoryResults() throws InterruptedException, Bench4QException { - assertNotNull(this.getAgentMessenger().getStatus( - Agent.createAgentWithoutId(Test_AGENT_HOSTNAME, TEST_PORT))); + assertNotNull(this.getAgentMessenger() + .getStatus( + Agent.createAgentWithoutId(Test_AGENT_HOSTNAME, + TEST_PORT, 500))); User user = this.getUserRepository().getUser("admin"); int scriptId = getUserFirstScript(user); this.getHaPool().checkAllHeartBeat(); diff --git a/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/service/Test_TestPlanEngine.java b/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/service/Test_TestPlanEngine.java index b883aeca..519b8bf0 100644 --- a/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/service/Test_TestPlanEngine.java +++ b/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/service/Test_TestPlanEngine.java @@ -34,7 +34,7 @@ public class Test_TestPlanEngine extends TestBase_MakeUpTestPlan { synchronized (Test_TestPlanEngine.class) { this.getAgentRepository().detach("147.0.0.1"); this.agentService.addAgentToPool(Agent.createAgentWithoutId( - "147.0.0.1", 6565)); + "147.0.0.1", 6565, 500)); prepareForTestPlanRunning(); submitATestPlanWithOneScript(); } @@ -59,8 +59,10 @@ public class Test_TestPlanEngine extends TestBase_MakeUpTestPlan { @Test public void testRunTestPlanRightly() throws InterruptedException { - assertNotNull(this.getAgentMessenger().getStatus( - Agent.createAgentWithoutId(Test_AGENT_HOSTNAME, TEST_PORT))); + assertNotNull(this.getAgentMessenger() + .getStatus( + Agent.createAgentWithoutId(Test_AGENT_HOSTNAME, + TEST_PORT, 500))); User user = this.getUserRepository().getUser("admin"); int scriptId = getUserFirstScript(user); this.getHaPool().checkAllHeartBeat(); diff --git a/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/transaction/Test_ScriptLoadCommand.java b/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/transaction/Test_ScriptLoadCommand.java index a15bc856..fd0df93c 100644 --- a/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/transaction/Test_ScriptLoadCommand.java +++ b/Bench4Q-Master/src/test/java/org/bench4q/master/unitTest/transaction/Test_ScriptLoadCommand.java @@ -39,7 +39,7 @@ public class Test_ScriptLoadCommand extends TestBase_MakeUpTestPlan { @Before public void prepare() { this.getAgentService().addAgentToPool( - Agent.createAgentWithoutId("127.0.0.1", 6565)); + Agent.createAgentWithoutId("127.0.0.1", 6565, 500)); } @After diff --git a/Bench4Q-Master/src/test/java/stubs/HighAvailableImpl.java b/Bench4Q-Master/src/test/java/stubs/HighAvailableImpl.java index 6c9a0820..e7c0cf98 100644 --- a/Bench4Q-Master/src/test/java/stubs/HighAvailableImpl.java +++ b/Bench4Q-Master/src/test/java/stubs/HighAvailableImpl.java @@ -19,7 +19,8 @@ public class HighAvailableImpl implements HighAvailablePool { public HighAvailableImpl() { String hostName = "127.0.0.1"; - this.pool.put(hostName, Agent.createAgentWithoutId(hostName, 6565)); + this.pool + .put(hostName, Agent.createAgentWithoutId(hostName, 6565, 500)); } @Override