コード例 #1
0
def test_serialization():
    plasm = ecto.Plasm()
    gen = ecto_test.Generate("Gen", step=1.0, start=0.0)
    inc = ecto_test.Increment("Increment 0", delay=2)
    plasm.connect(gen, "out", inc, "in")
    for j in range(5): # one has already been added
        inc_next = ecto_test.Increment("Increment_%u" % (j+1), delay=2)
        plasm.connect(inc, "out", inc_next, "in")
        inc = inc_next

    printer = ecto_test.Printer("Printy")
    plasm.connect(inc, "out", printer, "in")
    plasm.save('python_graph.ecto')
    plasm.execute(4);
コード例 #2
0
def test_dual_line_plasm(nlevels):
    plasm = ecto.Plasm()

    gen = ecto_test.Generate(step=1.0, start=0.0)
    incl, incr = ecto_test.Increment(), ecto_test.Increment()

    plasm.connect(gen, "out", incl, "in")
    plasm.connect(gen, "out", incr, "in")

    for j in range(nlevels-1): # one set of incs has already been added
        print j
        inc_nextl, inc_nextr = ecto_test.Increment(), ecto_test.Increment()
        plasm.connect(incl, "out", inc_nextl, "in")
        plasm.connect(incr, "out", inc_nextr, "in")
        incl, incr = inc_nextl, inc_nextr

    add = ecto_test.Add()
    plasm.connect(incl, "out", add, "left")
    plasm.connect(incr, "out", add, "right")
    printer = ecto_test.Printer()
    plasm.connect(add, "out", printer, "in")
    
    sched = ecto.schedulers.Threadpool(plasm)
    sched.execute(niter=1, nthreads=int(nlevels/2))
    result = add.outputs.out
    print "result=", result
    assert(result == nlevels * 2)

    sched.execute(niter=2, nthreads=int(nlevels/2))
    result = add.outputs.out
    print "iter2 result=", result
    assert result == (nlevels + 2) * 2

    sched.execute(niter=3, nthreads=int(nlevels/2))
    result = add.outputs.out
    print "iter3 result=", result
    assert result == (nlevels + 5) * 2
コード例 #3
0
def test_plasm(Sched, nthreads, niter, n_nodes, incdelay):
    plasm = ecto.Plasm()

    gen = ecto_test.Generate("Gen", step=1.0, start=0.0)
    inc = ecto_test.Increment("Increment 0", delay=incdelay)

    plasm.connect(gen, "out", inc, "in")

    for j in range(n_nodes-1): # one has already been added
        inc_next = ecto_test.Increment("Increment_%u" % (j+1), delay=incdelay)
        plasm.connect(inc, "out", inc_next, "in")
        inc = inc_next

    printer = ecto_test.Printer("Printy")
    plasm.connect(inc, "out", printer, "in")
#
#    o = open('graph.dot', 'w')
#    print >>o, plasm.viz()
#    o.close()
#    print "\n", plasm.viz(), "\n"
    sched = Sched(plasm)
    sched.execute(niter, nthreads)

    print "RESULT:", inc.outputs.out
    shouldbe = float(n_nodes + niter - 1)
    print "expected:", shouldbe
    assert inc.outputs.out == shouldbe

    #sched.execute(nthreads, niter)
    #result = inc.outputs.out
    #print "RESULT:", result

    #shouldbe = float(n_nodes + (niter*2 - 1))
    #assert result == shouldbe

    return
コード例 #4
0
#!/usr/bin/env python
import ecto, ecto_test, sys

plasm = ecto.Plasm()

gen = ecto_test.Generate("Gen", step=1.0, start=0.0)
inc = ecto_test.Increment("Increment 0", delay=100)
printer = ecto_test.Printer("Printy")

plasm.connect(gen[:] >> inc[:], inc[:] >> printer[:])

sched = ecto.schedulers.Threadpool(plasm)
ecto.log_to_file("ectolog.txt")
sched.execute_async(niter=100)

from IPython.Shell import IPShellEmbed
ipshell = IPShellEmbed()
ipshell()
コード例 #5
0
# 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.
#
import ecto
import ecto_test
import sys

n_nodes = 5
incdelay= 1
plasm = ecto.Plasm()

gen = ecto_test.Generate("Gen", step=1.0, start=0.0)
inc = ecto_test.Increment("Increment 0", delay=incdelay)

plasm.connect(gen, "out", inc, "in")

for j in range(n_nodes-1): # one has already been added
    inc_next = ecto_test.Increment("Increment_%u" % (j+1), delay=incdelay)
    plasm.connect(inc, "out", inc_next, "in")
    inc = inc_next

printer = ecto_test.Printer("Printy")
plasm.connect(inc, "out", printer, "in")
plasm.save(sys.argv[1])



コード例 #6
0
#!/usr/bin/python
import ecto
import ecto_test

plasm = ecto.Plasm()

gen = ecto_test.Generate()
inc = ecto_test.Increment()
mul = ecto_test.Multiply()
add = ecto_test.Add()

plasm.connect(
    gen[:] >> inc[:],
    gen[:] >> mul[:],
    mul[:] >> add['left'],
    inc[:] >> add['right'],
)