Exemple #1
0
import matplotlib.pyplot as plt
import matplotlib.animation as an
from forager import Forager
from landscape import Landscape
from foraging import foraging, display


def update(_):
    global l, f
    if not f.is_dead:
        foraging(l, f)
    return display(l, f),


l = Landscape(30, 30, 15)
f = Forager(0, 0)

fig = plt.figure(figsize=(6, 6))
ax = fig.add_axes([0, 0, 1, 1], frameon=False, aspect=1)

animation = an.FuncAnimation(fig, update, interval=1, blit=True, frames=200)
plt.show()

print('Total move = %d' % f.total_move)
print('Total eaten = %d' % f.total_eaten)
Exemple #2
0
from forager import Forager
import pytest

forager = Forager(0, 0)


def test_is_dead():
    forager.stock = 1
    assert not forager.is_dead
    forager.stock = 0
    assert forager.is_dead


def test_quantity_which_can_be_eat():
    forager.stock = Forager.STOCK_MAX - 2
    assert forager.quantity_which_can_be_eaten == 2
    forager.stock = Forager.STOCK_MAX - Forager.EAT_MAX_BY_DAY * 2
    assert forager.quantity_which_can_be_eaten == Forager.EAT_MAX_BY_DAY


def test_eat():
    forager.stock = Forager.STOCK_MAX - 10
    forager.total_eaten = 10
    forager.eat(5)
    assert forager.stock == Forager.STOCK_MAX - 5
    assert forager.total_eaten == 15
    forager.stock = Forager.STOCK_MAX - 10
    forager.total_eaten = 10
    forager.eat(15)
    assert forager.stock == Forager.STOCK_MAX
    assert forager.total_eaten == 20
Exemple #3
0
from forager import Forager
from landscape import Landscape
from foraging import eat, is_moving, move, foraging

x = 2
y = 2
nb_patches = 0
x_forager = 0
y_forager = 0
landscape = Landscape(x, y, nb_patches)
forager = Forager(x_forager, y_forager)


def test_eat():
    forager.stock = Forager.STOCK_MAX - Forager.EAT_MAX_BY_DAY + 2
    landscape.land[x_forager, y_forager] = Forager.EAT_MAX_BY_DAY
    eat(landscape, forager)
    assert landscape.land[x_forager, y_forager] == 2
    assert forager.stock == Forager.STOCK_MAX
    forager.stock = Forager.STOCK_MAX - Forager.EAT_MAX_BY_DAY - 2
    landscape.land[x_forager, y_forager] = Forager.EAT_MAX_BY_DAY
    eat(landscape, forager)
    assert landscape.land[x_forager, y_forager] == 0
    assert forager.stock == Forager.STOCK_MAX - 2


def test_is_moving():
    landscape.land[x_forager, y_forager] = 0
    assert is_moving(landscape, forager)
    landscape.land[x_forager, y_forager] = Forager.EAT_MAX_BY_DAY - 1
    forager.stock = 0