File: test_singleobj_return.py

package info (click to toggle)
pyswarms 1.3.0-9
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 33,708 kB
  • sloc: python: 4,108; makefile: 240; sh: 32
file content (151 lines) | stat: -rw-r--r-- 3,909 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
#!/usr/bin/env python
# -*- coding: utf-8 -*-

# Import standard library
from collections import namedtuple

# Import modules
import numpy as np
import pytest

# Import from pyswarms
from pyswarms.utils.functions import single_obj as fx


def test_ackley_output(common_minima):
    """Tests ackley function output."""
    assert np.isclose(fx.ackley(common_minima), np.zeros(3)).all()


def test_beale_output(common_minima2):
    """Tests beale function output."""
    assert np.isclose(fx.beale([3, 0.5] * common_minima2), np.zeros(3)).all()


def test_booth_output(common_minima2):
    """Test booth function output."""
    assert np.isclose(fx.booth([1, 3] * common_minima2), np.zeros(3)).all()


def test_bukin6_output(common_minima2):
    """Test bukin function output."""
    assert np.isclose(fx.bukin6([-10, 1] * common_minima2), np.zeros(3)).all()


@pytest.mark.parametrize(
    "x",
    [
        np.array(
            [
                [1.34941, -1.34941],
                [1.34941, 1.34941],
                [-1.34941, 1.34941],
                [-1.34941, -1.34941],
            ]
        )
    ],
)
@pytest.mark.parametrize(
    "minima", [np.array([-2.06261, -2.06261, -2.06261, -2.06261])]
)
def test_crossintray_output(x, minima):
    """Tests crossintray function output."""
    assert np.isclose(fx.crossintray(x), minima).all()


def test_easom_output(common_minima2):
    """Tests easom function output."""
    assert np.isclose(
        fx.easom([np.pi, np.pi] * common_minima2), (-1 * np.ones(3))
    ).all()


def test_eggholder_output(common_minima2):
    """Tests eggholder function output."""
    assert np.isclose(
        fx.eggholder([512, 404.3219] * common_minima2),
        (-959.6407 * np.ones(3)),
    ).all()


def test_goldstein_output(common_minima2):
    """Tests goldstein-price function output."""
    assert np.isclose(
        fx.goldstein([0, -1] * common_minima2), (3 * np.ones(3))
    ).all()


@pytest.mark.parametrize(
    "x",
    [
        np.array(
            [
                [3.0, 2.0],
                [-2.805118, 3.131312],
                [-3.779310, -3.283186],
                [3.584428, -1.848126],
            ]
        )
    ],
)
def test_himmelblau_output(x):
    """Tests himmelblau function output."""
    assert np.isclose(fx.himmelblau(x), np.zeros(4)).all()


@pytest.mark.parametrize(
    "x",
    [
        np.array(
            [
                [8.05502, 9.66459],
                [-8.05502, 9.66459],
                [8.05502, -9.66459],
                [-8.05502, -9.66459],
            ]
        )
    ],
)
@pytest.mark.parametrize(
    "minima", [np.array([-19.2085, -19.2085, -19.2085, -19.2085])]
)
def test_holdertable_output(x, minima):
    """Tests holdertable function output."""
    assert np.isclose(fx.holdertable(x), minima).all()


def test_levi_output(common_minima2):
    """Test levi function output."""
    assert np.isclose(fx.levi(common_minima2), np.zeros(3)).all()


def test_matyas_output(common_minima):
    """Test matyas function output."""
    assert np.isclose(fx.matyas(common_minima), np.zeros(3)).all()


def test_rastrigin_output(common_minima):
    """Tests rastrigin function output."""
    assert np.array_equal(fx.rastrigin(common_minima), np.zeros(3))


def test_rosenbrock_output(common_minima2):
    """Tests rosenbrock function output."""
    assert np.array_equal(
        fx.rosenbrock(common_minima2).all(), np.zeros(3).all()
    )


def test_schaffer2_output(common_minima):
    """Test schaffer2 function output."""
    assert np.isclose(fx.schaffer2(common_minima), np.zeros(3)).all()


def test_sphere_output(common_minima):
    """Tests sphere function output."""
    assert np.array_equal(fx.sphere(common_minima), np.zeros((3,)))


def test_threehump_output(common_minima):
    """Tests threehump function output."""
    assert np.array_equal(fx.threehump(common_minima), np.zeros(3))