diff --git a/.tool-versions b/.tool-versions new file mode 100644 index 0000000..9ff7c58 --- /dev/null +++ b/.tool-versions @@ -0,0 +1 @@ +nim 2.0.0 diff --git a/config.nims b/config.nims index 5ee5a15..e69de29 100644 --- a/config.nims +++ b/config.nims @@ -1 +0,0 @@ -switch("path", "$projectDir/") diff --git a/swarmsim.nim b/swarmsim.nim index 560bc73..1331ef4 100644 --- a/swarmsim.nim +++ b/swarmsim.nim @@ -1,5 +1,8 @@ # This is just an example to get you started. A typical binary package # uses this file as the main entry point of the application. -import ./swarmsim/schedulable -import ./swarmsim/eventdrivenengine +import ./swarmsim/engine/schedulableevent +import ./swarmsim/engine/eventdrivenengine + +export schedulableevent +export eventdrivenengine diff --git a/swarmsim/codex/dhttracker.nim b/swarmsim/codex/dhttracker.nim index d9004ab..d19b438 100644 --- a/swarmsim/codex/dhttracker.nim +++ b/swarmsim/codex/dhttracker.nim @@ -1,13 +1,10 @@ -import ../engine/protocol -import ../engine/network -import ../engine/schedulableevent -import ../timeutils - import std/times import std/options import std/algorithm import std/tables -import sequtils +import std/sequtils + +import ../engine export protocol export options diff --git a/swarmsim/engine.nim b/swarmsim/engine.nim new file mode 100644 index 0000000..87939d0 --- /dev/null +++ b/swarmsim/engine.nim @@ -0,0 +1,6 @@ +import engine/protocol +import engine/network +import engine/schedulableevent +import timeutils + +export protocol, network, schedulableevent, timeutils \ No newline at end of file diff --git a/swarmsim/engine/network.nim b/swarmsim/engine/network.nim index 96e307d..11f046e 100644 --- a/swarmsim/engine/network.nim +++ b/swarmsim/engine/network.nim @@ -9,7 +9,7 @@ export options export sets export peer export eventdrivenengine -export Network +export types type MessageSend = ref object of SchedulableEvent diff --git a/tests/all_tests.nim b/tests/all_tests.nim index 8fb10fb..d686df5 100644 --- a/tests/all_tests.nim +++ b/tests/all_tests.nim @@ -1,8 +1,8 @@ -import ./swarmsim/engine/eventdrivenengine -import ./swarmsim/engine/schedulableevent -import ./swarmsim/engine/network -import ./swarmsim/engine/peer -import ./swarmsim/codex/dhttracker +import engine/teventdrivenengine +import engine/tschedulableevent +import engine/tnetwork +import engine/tpeer +import codex/tdhttracker {.warning[UnusedImport]: off.} diff --git a/tests/swarmsim/codex/dhttracker.nim b/tests/codex/tdhttracker.nim similarity index 100% rename from tests/swarmsim/codex/dhttracker.nim rename to tests/codex/tdhttracker.nim diff --git a/tests/nim.cfg b/tests/config.nims similarity index 100% rename from tests/nim.cfg rename to tests/config.nims diff --git a/tests/swarmsim/engine/eventdrivenengine.nim b/tests/engine/teventdrivenengine.nim similarity index 85% rename from tests/swarmsim/engine/eventdrivenengine.nim rename to tests/engine/teventdrivenengine.nim index cf980a5..cf9501c 100644 --- a/tests/swarmsim/engine/eventdrivenengine.nim +++ b/tests/engine/teventdrivenengine.nim @@ -4,8 +4,8 @@ import sugar import std/algorithm -import pkg/swarmsim/engine/schedulableevent -import pkg/swarmsim/engine/eventdrivenengine +import swarmsim/engine/schedulableevent +import swarmsim/engine/eventdrivenengine type TestSchedulable = ref object of SchedulableEvent @@ -16,7 +16,7 @@ suite "event driven engine tests": test "should run schedulables at the right time": - let times = @[1, 10, 5].map(time => uint64(time)) + let times = @[1'u64, 10, 5] let schedulables = times.map(time => TestSchedulable(time: time)) let engine = EventDrivenEngine() @@ -30,8 +30,8 @@ suite "event driven engine tests": check(engine.nextStep().isNone) test "should allow clients to wait until a scheduled event happens": - let times = @[1, 2, 3, 4, 5, 6, 7, 8] - let schedulables = times.map(time => TestSchedulable(time: uint64(time))) + let times = @[1'u64, 2, 3, 4, 5, 6, 7, 8] + let schedulables = times.map(time => TestSchedulable(time: time)) let engine = EventDrivenEngine() let handles = schedulables.map(schedulable => @@ -46,8 +46,8 @@ suite "event driven engine tests": check(engine.currentTime == 8) test "should allow clients run until the desired simulation time": - let times = @[50, 100, 150] - let schedulables = times.map(time => TestSchedulable(time: uint64(time))) + let times = @[50'u64, 100, 150] + let schedulables = times.map(time => TestSchedulable(time: time)) let engine = EventDrivenEngine() engine.scheduleAll(schedulables) diff --git a/tests/swarmsim/engine/network.nim b/tests/engine/tnetwork.nim similarity index 90% rename from tests/swarmsim/engine/network.nim rename to tests/engine/tnetwork.nim index f1558fa..95e88a8 100644 --- a/tests/swarmsim/engine/network.nim +++ b/tests/engine/tnetwork.nim @@ -1,9 +1,9 @@ import unittest -import pkg/swarmsim/engine/eventdrivenengine -import pkg/swarmsim/engine/network -import pkg/swarmsim/engine/peer -import pkg/swarmsim/engine/protocol +import swarmsim/engine/eventdrivenengine +import swarmsim/engine/network +import swarmsim/engine/peer +import swarmsim/engine/protocol type FakeProtocol = ref object of Protocol diff --git a/tests/swarmsim/engine/peer.nim b/tests/engine/tpeer.nim similarity index 92% rename from tests/swarmsim/engine/peer.nim rename to tests/engine/tpeer.nim index 73f76da..76a67a7 100644 --- a/tests/swarmsim/engine/peer.nim +++ b/tests/engine/tpeer.nim @@ -1,7 +1,7 @@ import std/unittest import std/sets -import pkg/swarmsim/engine/peer +import swarmsim/engine/peer suite "peer": test "should allow inclusion and membership tests on a HashSet": diff --git a/tests/swarmsim/engine/schedulableevent.nim b/tests/engine/tschedulableevent.nim similarity index 82% rename from tests/swarmsim/engine/schedulableevent.nim rename to tests/engine/tschedulableevent.nim index 5bfd762..370d581 100644 --- a/tests/swarmsim/engine/schedulableevent.nim +++ b/tests/engine/tschedulableevent.nim @@ -1,6 +1,6 @@ import unittest -import pkg/swarmsim/engine/schedulableevent +import swarmsim/engine/schedulableevent suite "schedulable event": test "should be ordered by time":