File: test_adjacencylist.py

package info (click to toggle)
fenics-dolfinx 1%3A0.10.0.post5-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,952 kB
  • sloc: cpp: 36,535; python: 25,391; makefile: 223; sh: 174; xml: 55
file content (28 lines) | stat: -rw-r--r-- 836 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
# Copyright (C) 2021 Garth N. Wells
#
# This file is part of DOLFINx (https://www.fenicsproject.org)
#
# SPDX-License-Identifier:    LGPL-3.0-or-later

import numpy as np
import pytest

from dolfinx.graph import adjacencylist


@pytest.mark.parametrize("dtype", [np.int32, np.int64])
def test_create_adj2d(dtype):
    data = np.zeros([2, 4], dtype=dtype)
    adj = adjacencylist(data)
    num_nodes, num_links = data.shape[0], data.shape[1]
    assert np.array_equal(
        adj.offsets, np.arange(0, num_nodes * num_links + num_links, num_links, dtype=np.int32)
    )

    data = np.arange(20, dtype=dtype)
    offsets = np.array([0, 5, 15, 20], dtype=np.int32)
    adj = adjacencylist(data, offsets)
    assert adj.num_nodes == 3
    assert len(adj.links(0)) == 5
    assert len(adj.links(1)) == 10
    assert len(adj.links(2)) == 5