Snej69420 6 месяцев назад
Родитель
Сommit
52ecdb3c2d

+ 1 - 1
benchmarks/Agents/Generator.jl

@@ -18,7 +18,7 @@ function internal_transition!(gen::Generator, model)
 end
 
 function time_advance(gen::Generator, model)
-    return gen.cycles >= 1 ? gen.period : Inf
+    return gen.cycles > 0 ? gen.period : Inf
 end
 
 function output!(gen::Generator, model)

+ 8 - 22
benchmarks/pythonpdevs-minimal/generator.py

@@ -1,36 +1,22 @@
-from typing import Any
-
 from pypdevs.minimal import AtomicDEVS
 from pypdevs.infinity import INFINITY
 
 
 class Generator(AtomicDEVS):
-
-    def __init__(self, name, num_outputs=1, period=None):
+    def __init__(self, name, output=1, period=1, cycles=1):
         super(Generator, self).__init__(name=name)
-        self.num_outputs = num_outputs
+        self.output = output
         self.period = period
-        self.state = "active"
+        self.state = cycles
         self.o_out = self.addOutPort("o_out")
 
     def intTransition(self):
-        if self.state == "active" and self.period is not None:
-            self.state = "waiting"
-        elif self.state == "waiting":
-            self.state = "active"
-        else:
-            self.state = "passive"
+        return self.state - 1
 
     def timeAdvance(self):
-        if self.state == "active":
-            return 0
-        elif self.state == "waiting":
-            return self.period
-        else:
-            return INFINITY
+        return self.period if self.state > 0 else INFINITY
 
     def outputFnc(self):
-        return {self.o_out: list(range(self.num_outputs))}
-
-    def extTransition(self, inputs):
-        pass
+        if self.state > 0:
+            return {self.o_out: list(range(self.output))}
+        return {}

+ 3 - 3
benchmarks/pythonpdevs/generator.py

@@ -7,16 +7,16 @@ class Generator(AtomicDEVS):
         super(Generator, self).__init__(name=name)
         self.output = output
         self.period = period
-        self.state = cycles
+        self.state = 1
         self.o_out = self.addOutPort("o_out")
 
     def intTransition(self):
         return self.state - 1
 
     def timeAdvance(self):
-        return self.period if self.state >= 1 else INFINITY
+        return self.period if self.state > 0 else INFINITY
 
     def outputFnc(self):
-        if self.state >= 1:
+        if self.state > 0:
             return {self.o_out: list(range(self.output))}
         return {}