def test_capteurs():
    """ les capteurs sont des listes de valeurs distinctes dans 0..8 """
    _out = ''
    try:
        _a = tp00.Aspirateur([0])
        _out += '.'
    except Exception:
        _out += 'a'
    if has_failure(_out): return _out
    try:
        _a = tp00.Aspirateur(['a'])
        _out += 'b'
    except Exception:
        _out += '.'
    try:
        _a = tp00.Aspirateur([0, 0])
        if _a.capteurs == [0]: _out += '.'
        else: _out += 'c'
    except Exception:
        _out += '.'
    if has_failure(_out, 2): return _out
    _lc = random.sample(range(9), 4)
    _a = tp00.Aspirateur(_lc)

    _out += check_property(
        len(_a.capteurs) == len(_lc), "bad list of captors", 'd')
    _out += check_property(_a.capteurs == _lc, "bad list of captors", 'e')
    return _out
def test_getDecision():
    _out = ''
    _out += check_out(aspiSig, 'getDecision', [])
    _a = tp00.Aspirateur([], "A E I O U".split())
    for i in range(10):
        _ = _a.getDecision([])
        _out += check_property(_ in "AEIOU", "%s is not an action" % _, str(i))
    return _out
def test_getLastReward():
    _out = ''
    _out += check_out(aspiSig, 'getLastReward')
    _a = tp00.Aspirateur()
    _a.setReward(42)
    _out += check_property(42 == _a.getLastReward(),
                           "42 expected found %s" % _a.getLastReward())
    return _out
def test_vivant():
    _out = ''
    _a = tp00.Aspirateur()
    _out += check_property(isinstance(_a.vivant, bool), "boolean required",
                           '1')
    _out += check_property(_a.vivant, "should be alive, found %s" % _a.vivant,
                           '2')
    return _out
def test_actions():
    """
        actions renvoie la liste des actions disponibles
    """
    _out = ''
    try:
        _a = tp00.Aspirateur([], 1)
        _out += check_property(
            isinstance(_a.actions, (list, tuple)),
            "list or tuple expected found %s" % type(_a.actions), 'a')
    except Exception:
        _out += '.'
    if has_failure(_out): return _out
    _a = tp00.Aspirateur([], ['o', 'u', 't'])
    _out += check_property(
        len(_a.actions) == len("out"), "wrong number of actions", 'b')
    _out += check_property(
        sorted(_a.actions) == sorted("out"), "wrong actions", 'c')
    return _out
def test_agent():
    _out = ''
    try:
        _m = tp00.Monde(1)
        _out += '1'
    except:
        _out += '.'
    _a = tp00.Aspirateur()
    try:
        _m = tp00.Monde(_a)
        _out += '.'
    except:
        _out += 'b'
    _out += check_property(_a == _m.agent, "where is %s ?" % _a, 'c')
    return _out
def test_init_Aspirateur():
    """ tests sur le constructeur Aspirateur qui doit être 
        Aspirateur() == Aspirateur([],['Gauche''Droite','Aspirer'])
    """
    _out = ''
    _actions = "Droite Gauche Aspirer".split()
    try:
        _a = tp00.Aspirateur()
        _out += '.'
    except Exception:
        _out += 'a'
    if has_failure(_out): return _out
    _out += check_property(_a.capteurs == [],
                           'capteurs par défaut trouvé %s' % _a.capteurs, 'b')
    if has_failure(_out): return _out
    _out += check_property(
        len(_a.actions) == 3, 'wrong number of actions', 'c')
    _out += check_property(
        sorted(_a.actions) == sorted(_actions), "bad actions", 'd')
    return _out
 def __init__(self, nbl=1, nbc=2):
     self.aspi = tp00.Aspirateur()
     self.world = tp00.Monde(self.aspi, nbl, nbc)