File: test_speed.py

package info (click to toggle)
python-dmsh 0.2.19-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 480 kB
  • sloc: python: 1,893; makefile: 5
file content (43 lines) | stat: -rw-r--r-- 1,071 bytes parent folder | download | duplicates (2)
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
import numpy as np
#import perfplot
import pytest
from matplotlib import path

from dmsh.geometry import pypathlib


@pytest.mark.skip(reason="fails on gh-actions for some reason")
def test_speed(n=3):
    path_pts = [[0, 0], [0, 1], [1, 1], [1, 0]]
    path0 = path.Path(path_pts)
    path1 = pypathlib.ClosedPath(path_pts)

    def _mpl_path(pts):
        return path0.contains_points(pts)

    def _pypathlib_contains_points(pts):
        return path1.contains_points(pts)

    np.random.seed(0)

#    perfplot.show(
#        setup=lambda n: np.random.rand(n, 2),
#        kernels=[_mpl_path, _pypathlib_contains_points],
#        n_range=[2**k for k in range(n)],
#        labels=["matplotlib.path.contains_points", "pypathlib.contains_points"],
#        logx=True,
#        logy=True,
#        xlabel="num points",
#    )


def benchmark():
    path_pts = [[0, 0], [0, 1], [1, 1], [1, 0]]
    path1 = pypathlib.ClosedPath(path_pts)
    pts = np.random.rand(5000000, 2)
    path1.contains_points(pts)


if __name__ == "__main__":
    # test_speed(20)
    benchmark()