Ejemplo n.º 1
0
def test_loa_params():
    params = {
        "N": 0.2,
        "P": 4,
        "S": 0.8,
        "R": 0.2,
        "I": 0.4,
        "Ma": 0.3,
        "Mu": 0.2
    }

    new_loa = loa.LOA(params=params)

    assert new_loa.N == 0.2

    assert new_loa.P == 4

    assert new_loa.S == 0.8

    assert new_loa.R == 0.2

    assert new_loa.I == 0.4

    assert new_loa.Ma == 0.3

    assert new_loa.Mu == 0.2
Ejemplo n.º 2
0
def test_loa_compile():
    search_space = search.SearchSpace(n_agents=10,
                                      n_variables=2,
                                      lower_bound=[0, 0],
                                      upper_bound=[10, 10])

    new_loa = loa.LOA()
    new_loa.compile(search_space)
Ejemplo n.º 3
0
def test_loa_moving_safe_place():
    search_space = search.SearchSpace(n_agents=100,
                                      n_variables=2,
                                      lower_bound=[0, 0],
                                      upper_bound=[10, 10])

    new_loa = loa.LOA()
    new_loa.compile(search_space)

    prides = new_loa._get_pride_lions(search_space.agents)

    new_loa._moving_safe_place(prides)
Ejemplo n.º 4
0
def test_loa_update():
    def square(x):
        return np.sum(x**2)

    search_space = search.SearchSpace(n_agents=100,
                                      n_variables=2,
                                      lower_bound=[0, 0],
                                      upper_bound=[10, 10])

    new_loa = loa.LOA()
    new_loa.compile(search_space)

    new_loa.update(search_space, square)
Ejemplo n.º 5
0
def test_loa_migrating():
    search_space = search.SearchSpace(n_agents=100,
                                      n_variables=2,
                                      lower_bound=[0, 0],
                                      upper_bound=[10, 10])

    new_loa = loa.LOA()
    new_loa.compile(search_space)

    nomads = new_loa._get_nomad_lions(search_space.agents)
    prides = new_loa._get_pride_lions(search_space.agents)

    new_nomads, new_prides = new_loa._migrating(nomads, prides)
Ejemplo n.º 6
0
def test_loa_equilibrium():
    search_space = search.SearchSpace(n_agents=100,
                                      n_variables=2,
                                      lower_bound=[0, 0],
                                      upper_bound=[10, 10])

    new_loa = loa.LOA()
    new_loa.compile(search_space)

    nomads = new_loa._get_nomad_lions(search_space.agents)
    prides = new_loa._get_pride_lions(search_space.agents)
    prides[0] = prides[0] + prides[0]

    new_nomads, new_prides = new_loa._equilibrium(nomads, prides, 100)
Ejemplo n.º 7
0
def test_loa_check_prides_for_males():
    search_space = search.SearchSpace(n_agents=100,
                                      n_variables=2,
                                      lower_bound=[0, 0],
                                      upper_bound=[10, 10])

    new_loa = loa.LOA()
    new_loa.compile(search_space)

    prides = new_loa._get_pride_lions(search_space.agents)

    for agent in prides[0]:
        agent.female = True

    new_loa._check_prides_for_males(prides)
Ejemplo n.º 8
0
def test_loa_nomad_mating():
    def square(x):
        return np.sum(x**2)

    search_space = search.SearchSpace(n_agents=100,
                                      n_variables=2,
                                      lower_bound=[0, 0],
                                      upper_bound=[10, 10])

    new_loa = loa.LOA()
    new_loa.compile(search_space)

    nomads = new_loa._get_nomad_lions(search_space.agents)

    new_loa._nomad_mating(nomads, square)
Ejemplo n.º 9
0
def test_loa_mating_operator():
    def square(x):
        return np.sum(x**2)

    search_space = search.SearchSpace(n_agents=100,
                                      n_variables=2,
                                      lower_bound=[0, 0],
                                      upper_bound=[10, 10])

    new_loa = loa.LOA()
    new_loa.compile(search_space)
    new_loa.Mu = 1

    nomads = new_loa._get_nomad_lions(search_space.agents)
    males_nomads = [nomad for nomad in nomads if not nomad.female]

    a1, a2 = new_loa._mating_operator(search_space.agents[0], males_nomads,
                                      square)

    assert type(a1).__name__ == "Lion"
    assert type(a2).__name__ == "Lion"
Ejemplo n.º 10
0
def test_loa_params_setter():
    new_loa = loa.LOA()

    try:
        new_loa.N = "a"
    except:
        new_loa.N = 0.2

    assert new_loa.N == 0.2

    try:
        new_loa.N = -1
    except:
        new_loa.N = 0.2

    assert new_loa.N == 0.2

    try:
        new_loa.P = "b"
    except:
        new_loa.P = 4

    assert new_loa.P == 4

    try:
        new_loa.P = -1
    except:
        new_loa.P = 4

    assert new_loa.P == 4

    try:
        new_loa.S = "c"
    except:
        new_loa.S = 0.8

    assert new_loa.S == 0.8

    try:
        new_loa.S = -1
    except:
        new_loa.S = 0.8

    assert new_loa.S == 0.8

    try:
        new_loa.R = "d"
    except:
        new_loa.R = 0.2

    assert new_loa.R == 0.2

    try:
        new_loa.R = -1
    except:
        new_loa.R = 0.2

    assert new_loa.R == 0.2

    try:
        new_loa.I = "e"
    except:
        new_loa.I = 0.4

    assert new_loa.I == 0.4

    try:
        new_loa.I = -1
    except:
        new_loa.I = 0.4

    assert new_loa.I == 0.4

    try:
        new_loa.Ma = "f"
    except:
        new_loa.Ma = 0.3

    assert new_loa.Ma == 0.3

    try:
        new_loa.Ma = -1
    except:
        new_loa.Ma = 0.3

    assert new_loa.Ma == 0.3

    try:
        new_loa.Mu = "g"
    except:
        new_loa.Mu = 0.2

    assert new_loa.Mu == 0.2

    try:
        new_loa.Mu = -1
    except:
        new_loa.Mu = 0.2

    assert new_loa.Mu == 0.2