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
|
## SPDX-License-Identifier: BSD-2-Clause
##
## Copyright 2020-2025 Inria & Université de Bordeaux
##
## Redistribution and use in source and binary forms, with or without
## modification, are permitted provided that the following conditions
## are met:
##
## 1. Redistributions of source code must retain the above copyright
## notice, this list of conditions and the following disclaimer.
##
## 2. Redistributions in binary form must reproduce the above
## copyright notice, this list of conditions and the following
## disclaimer in the documentation and/or other materials provided
## with the distribution.
##
## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
## CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES,
## INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
## DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS
## BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
## EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
## TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
## ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
## TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
## THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
## SUCH DAMAGE.
##
import numpy as np
import scotchpy
from scotchpy.common import proper_int as scotch_num
try:
graf = scotchpy.Graph()
except scotchpy.LibraryError:
self.fail("cannot initialize graph")
raise
# Example from Scotch user's manual, page 59
graf.build(baseval=1,
vertnbr=7,
edgenbr = 24,
verttab = np.array([1,4,10,13,16,19,22,25], dtype=scotch_num),
edgetab = np.array([3,2,6,3,4,1,7,6,5,1,2,4,2,7,3,7,2,6,2,1,5,5,2,4], dtype=scotch_num),
edlotab = np.array([1,1,1,2,2,1,2,3,3,1,2,2,2,1,2,1,3,3,3,1,3,1,2,1], dtype=scotch_num))
if scotchpy.graph._nx_found and scotchpy.graph._matplotlib_found:
parttab = np.zeros(graf.vertnbr, dtype=scotch_num)
graf.part(partnbr = 2, parttab = parttab)
try:
graf.draw(node_color = parttab, labels=dict(zip(range(1,8), [f'{i}' for i in range(1,8)])))
except ModuleNotFoundError:
pass
|