diff --git a/src/opensesim/gui/AssetEditor/AssetEditorDialog.java b/src/opensesim/gui/AssetEditor/AssetEditorDialog.java index e652457..f8b866a 100644 --- a/src/opensesim/gui/AssetEditor/AssetEditorDialog.java +++ b/src/opensesim/gui/AssetEditor/AssetEditorDialog.java @@ -37,7 +37,7 @@ import opensesim.gui.util.EscDialog; import opensesim.gui.Globals; import opensesim.gui.util.Json; import opensesim.gui.util.Json.Export; -import opensesim.util.IDGenerator.Id; + import org.json.JSONException; import org.json.JSONObject; diff --git a/src/opensesim/gui/SeSimApplication.java b/src/opensesim/gui/SeSimApplication.java index 6131e9b..5735660 100644 --- a/src/opensesim/gui/SeSimApplication.java +++ b/src/opensesim/gui/SeSimApplication.java @@ -67,7 +67,7 @@ import org.json.JSONObject; import opensesim.old_sesim.AutoTraderInterface; import opensesim.old_sesim.Exchange; import opensesim.old_sesim.Scheduler; -import opensesim.util.IDGenerator.Id; + import opensesim.util.XClassLoader; /** diff --git a/src/opensesim/sesim/interfaces/Asset.java b/src/opensesim/sesim/interfaces/Asset.java index b1eef09..00814e3 100644 --- a/src/opensesim/sesim/interfaces/Asset.java +++ b/src/opensesim/sesim/interfaces/Asset.java @@ -28,8 +28,8 @@ package opensesim.sesim.interfaces; import java.util.HashMap; import javax.swing.JPanel; import opensesim.world.World; -import opensesim.util.IDGenerator; -import opensesim.util.IDGenerator.Id; +import opensesim.util.idgenerator.IDGenerator; +import opensesim.util.idgenerator.Id; /** * diff --git a/src/opensesim/util/IDGenerator.java b/src/opensesim/util/idgenerator/IDGenerator.java similarity index 64% rename from src/opensesim/util/IDGenerator.java rename to src/opensesim/util/idgenerator/IDGenerator.java index d2e9ffe..44cb553 100644 --- a/src/opensesim/util/IDGenerator.java +++ b/src/opensesim/util/idgenerator/IDGenerator.java @@ -23,11 +23,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ -package opensesim.util; - -import java.util.Objects; - - +package opensesim.util.idgenerator; /** * Implementation of a simple ID generator to create uniqe IDs of type long @@ -35,45 +31,6 @@ import java.util.Objects; * @author 7u83 <7u83@mail.ru> */ public class IDGenerator { - - - public static class Id implements Comparable{ - final Long value; - - public Id(String id) { - value =Long.parseLong(id); - } - - @Override - public boolean equals(Object o) { - if (o.getClass() != Id.class) - return false; - return Objects.equals(value, ((Id)o).value); - } - - @Override - public int hashCode() { - int hash = 3; - hash = 47 * hash + Objects.hashCode(this.value); - return hash; - } - - @Override - public String toString() { - return value.toString(); - } - - @Override - public int compareTo(Id o) { - if (this.value>o.value) - return 1; - if (this.value(next_id++); } } diff --git a/src/opensesim/util/idgenerator/Id.java b/src/opensesim/util/idgenerator/Id.java new file mode 100644 index 0000000..d1f7cd2 --- /dev/null +++ b/src/opensesim/util/idgenerator/Id.java @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2018, 7u83 <7u83@mail.ru> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +package opensesim.util.idgenerator; + +import java.util.Objects; + +/** + * + * @author 7u83 <7u83@mail.ru> + */ +public class Id implements Comparable { + + final T value; + + Id(T id) { + value = id; + } + + @Override + public boolean equals(Object o) { + if (o.getClass() != Id.class) { + return false; + } + return Objects.equals(value, ((Id) o).value); + } + + @Override + public int hashCode() { + int hash = 3; + hash = 47 * hash + Objects.hashCode(this.value); + return hash; + } + + @Override + public String toString() { + return value.toString(); + } + + @Override + public int compareTo(Id o) { + return value.compareTo(o); + } + +} + + + diff --git a/src/opensesim/world/AbstractAsset.java b/src/opensesim/world/AbstractAsset.java index 6d345b5..1dba758 100644 --- a/src/opensesim/world/AbstractAsset.java +++ b/src/opensesim/world/AbstractAsset.java @@ -30,7 +30,8 @@ import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JPanel; import opensesim.sesim.interfaces.Configurable; -import opensesim.util.IDGenerator.Id; +import opensesim.util.idgenerator.Id; + import org.json.JSONException; import org.json.JSONObject; diff --git a/src/opensesim/world/Order.java b/src/opensesim/world/Order.java index 50a34eb..0ca3b1a 100644 --- a/src/opensesim/world/Order.java +++ b/src/opensesim/world/Order.java @@ -28,8 +28,9 @@ package opensesim.world; import opensesim.world.Account; import opensesim.world.World; import opensesim.sesim.AssetPair; -import opensesim.util.IDGenerator; -import opensesim.util.IDGenerator.Id; +import opensesim.util.idgenerator.IDGenerator; +import opensesim.util.idgenerator.Id; + /** * diff --git a/src/opensesim/world/World.java b/src/opensesim/world/World.java index 6147e31..56a9f3c 100644 --- a/src/opensesim/world/World.java +++ b/src/opensesim/world/World.java @@ -32,8 +32,8 @@ import java.util.HashMap; import java.util.HashSet; import opensesim.sesim.AssetPair; import opensesim.sesim.interfaces.Configurable; -import opensesim.util.IDGenerator; -import opensesim.util.IDGenerator.Id; +import opensesim.util.idgenerator.IDGenerator; +import opensesim.util.idgenerator.Id; import opensesim.util.SeSimException; import org.json.JSONArray; import org.json.JSONObject; diff --git a/test/opensesim/util/idgenerator/IDGeneratorTest.java b/test/opensesim/util/idgenerator/IDGeneratorTest.java new file mode 100644 index 0000000..b5ceec3 --- /dev/null +++ b/test/opensesim/util/idgenerator/IDGeneratorTest.java @@ -0,0 +1,87 @@ +/* + * Copyright (c) 2018, 7u83 <7u83@mail.ru> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +package opensesim.util.idgenerator; + +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import static org.junit.Assert.*; + +/** + * + * @author 7u83 <7u83@mail.ru> + */ +public class IDGeneratorTest { + + public IDGeneratorTest() { + } + + @BeforeClass + public static void setUpClass() { + } + + @AfterClass + public static void tearDownClass() { + } + + @Before + public void setUp() { + } + + @After + public void tearDown() { + } + + /** + * Test of reset method, of class IDGenerator. + */ + @Test + public void testReset() { + System.out.println("reset"); + IDGenerator instance = new IDGenerator(); + instance.reset(); + // TODO review the generated test code and remove the default call to fail. + // fail("The test case is a prototype."); + } + + /** + * Test of getNext method, of class IDGenerator. + */ + @Test + public void testGetNext() { + System.out.println("getNext"); + IDGenerator instance = new IDGenerator(7L); + + Id expResult = new Id(0L); + Id result = instance.getNext(); + assertEquals(expResult, result); + // TODO review the generated test code and remove the default call to fail. + // fail("The test case is a prototype."); + } + +} diff --git a/test/opensesim/world/OrderTest.java b/test/opensesim/world/OrderTest.java new file mode 100644 index 0000000..3d61bce --- /dev/null +++ b/test/opensesim/world/OrderTest.java @@ -0,0 +1,115 @@ +/* + * Copyright (c) 2018, 7u83 <7u83@mail.ru> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +package opensesim.world; + +import opensesim.util.idgenerator.IDGenerator; +import org.json.JSONObject; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import static org.junit.Assert.*; + +/** + * + * @author 7u83 <7u83@mail.ru> + */ +public class OrderTest { + + public OrderTest() { + } + + @BeforeClass + public static void setUpClass() { + } + + @AfterClass + public static void tearDownClass() { + } + + World world; + + @Before + public void setUp() { + world = new World(new JSONObject("{}")); + } + + @After + public void tearDown() { + } + + + /** + * Test of getVolume method, of class Order. + */ + @Test + public void testGetVolume() { + System.out.println("getVolume"); + + double expResult = 13.7; + Order instance = new opensesim.world.Order(world, null, null, Order.Type.BUY, expResult, 0.0); + double result = instance.getVolume(); + assertEquals(expResult, result, 0.0); + // TODO review the generated test code and remove the default call to // fail. + // fail("The test case is a prototype."); + } + + /** + * Test of getLimit method, of class Order. + */ + @Test + public void testGetLimit() { + System.out.println("getLimit"); + Order instance = new opensesim.world.Order(world, null, null, Order.Type.BUY, 0, 17.4); + double expResult = 0.0; + double result = instance.getLimit(); + assertEquals(expResult, result, 17.4); + // TODO review the generated test code and remove the default call to // fail. + // fail("The test case is a prototype."); + } + + /** + * Test of getType method, of class Order. + */ + @Test + public void testGetType() { + System.out.println("getType"); + Order.Type expResult = Order.Type.BUY; + Order instance = new opensesim.world.Order(world, null, null, expResult, 0, 17.4); + Order.Type result = instance.getType(); + assertEquals(expResult, result); + // TODO review the generated test code and remove the default call to // fail. + // fail("The test case is a prototype."); + } + + + + + + + +}