1+ r"""
2+ Tester for MCl generator.
3+ """
4+
5+ # Copyright (c) 2024 Thinklab@SJTU
6+ # ML4CO-Kit is licensed under Mulan PSL v2.
7+ # You can use this software according to the terms and conditions of the Mulan PSL v2.
8+ # You may obtain a copy of Mulan PSL v2 at:
9+ # http://license.coscl.org.cn/MulanPSL2
10+ # THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
11+ # EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
12+ # MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
13+ # See the Mulan PSL v2 for more details.
14+
15+
16+ from ml4co_kit import MClGenerator , GRAPH_TYPE
17+ from ml4co_kit .generator .graph .base import (
18+ GraphWeightGenerator , GRAPH_WEIGHT_TYPE
19+ )
20+ from tests .generator_test .base import GenTesterBase
21+
22+
23+ class MClGenTester (GenTesterBase ):
24+ def __init__ (self ):
25+ super (MClGenTester , self ).__init__ (
26+ test_gen_class = MClGenerator ,
27+ test_args_list = [
28+ # Uniform (w uniform weighted)
29+ {
30+ "distribution_type" : GRAPH_TYPE .ER ,
31+ "node_weighted" : True ,
32+ "node_weighted_gen" : GraphWeightGenerator (
33+ weighted_type = GRAPH_WEIGHT_TYPE .UNIFORM ),
34+ },
35+ # Uniform (w gaussian weighted)
36+ {
37+ "distribution_type" : GRAPH_TYPE .ER ,
38+ "node_weighted" : True ,
39+ "node_weighted_gen" : GraphWeightGenerator (
40+ weighted_type = GRAPH_WEIGHT_TYPE .GAUSSIAN ),
41+ },
42+ # Uniform (w poisson weighted)
43+ {
44+ "distribution_type" : GRAPH_TYPE .ER ,
45+ "node_weighted" : True ,
46+ "node_weighted_gen" : GraphWeightGenerator (
47+ weighted_type = GRAPH_WEIGHT_TYPE .POISSON ),
48+ },
49+ # Uniform (w exponential weighted)
50+ {
51+ "distribution_type" : GRAPH_TYPE .ER ,
52+ "node_weighted" : True ,
53+ "node_weighted_gen" : GraphWeightGenerator (
54+ weighted_type = GRAPH_WEIGHT_TYPE .EXPONENTIAL ),
55+ },
56+ # Uniform (w lognormal weighted)
57+ {
58+ "distribution_type" : GRAPH_TYPE .ER ,
59+ "node_weighted" : True ,
60+ "node_weighted_gen" : GraphWeightGenerator (
61+ weighted_type = GRAPH_WEIGHT_TYPE .LOGNORMAL ),
62+ },
63+ # Uniform (w powerlaw weighted)
64+ {
65+ "distribution_type" : GRAPH_TYPE .ER ,
66+ "node_weighted" : True ,
67+ "node_weighted_gen" : GraphWeightGenerator (
68+ weighted_type = GRAPH_WEIGHT_TYPE .POWERLAW ),
69+ },
70+ # Uniform (w binomial weighted)
71+ {
72+ "distribution_type" : GRAPH_TYPE .ER ,
73+ "node_weighted" : True ,
74+ "node_weighted_gen" : GraphWeightGenerator (
75+ weighted_type = GRAPH_WEIGHT_TYPE .BINORMIAL ),
76+ },
77+ # Watts-Strogatz (w/o weighted)
78+ {
79+ "distribution_type" : GRAPH_TYPE .WS ,
80+ "node_weighted" : False ,
81+ },
82+ # Barabasi-Albert (w/o weighted)
83+ {
84+ "distribution_type" : GRAPH_TYPE .BA ,
85+ "node_weighted" : False ,
86+ },
87+ # Holme-Kim (w/o weighted)
88+ {
89+ "distribution_type" : GRAPH_TYPE .HK ,
90+ "node_weighted" : False ,
91+ },
92+ # RB (w/o weighted)
93+ {
94+ "distribution_type" : GRAPH_TYPE .RB ,
95+ "node_weighted" : False ,
96+ },
97+ ]
98+ )
0 commit comments