-
Notifications
You must be signed in to change notification settings - Fork 47
/
Copy pathCausalDensityDimension.wlt
102 lines (86 loc) · 2.8 KB
/
CausalDensityDimension.wlt
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
<|
"CausalDensityDimension" -> <|
"init" -> (
Attributes[Global`testUnevaluated] = {HoldAll};
Global`testUnevaluated[args___] := SetReplace`PackageScope`testUnevaluated[VerificationTest, args];
),
"tests" -> {
With[{
dag = Graph[{1 -> 2, 2 -> 3}],
loopGraph = Graph[{1 -> 1, 1 -> 2}],
undirectedGraph = Graph[{1 <-> 2, 2 <-> 3}],
cyclicGraph = Graph[{1 -> 2, 2 -> 1}]
},
{
(* Verification tests *)
VerificationTest[
CausalDensityDimension[Graph[{1 -> 2, 2 -> 3}], {1, 2}],
2,
SameTest -> Equal
],
Module[{d},
{
VerificationTest[
CausalDensityDimension[DirectedGraph[PathGraph[Range[100]], "Acyclic"], {1, 90}],
Replace[d, FindRoot[
(Gamma[d + 1] * Gamma[d / 2]) / (4 Gamma[3 d / 2]) == Binomial[90, 2] / (90^2), {d, 1, 5}]],
SameTest -> Equal
],
VerificationTest[
CausalDensityDimension[IndexGraph[Graph[Join["i" -> # & /@ Range[1000], # -> "o" & /@ Range[1000]]]],
{1, 1002}], Replace[d, FindRoot[
(Gamma[d + 1] * Gamma[d / 2]) / (4 Gamma[3 d / 2]) == (2 * (1002 - 2) + 1)/(1002^2), {d, 1, 10}]],
SameTest -> Equal
]
}
],
VerificationTest[
CausalDensityDimension[Graph[{1 -> 2, 2 -> 3, 4 -> 5}],{1, 5}],
Infinity
],
VerificationTest[
CausalDensityDimension[Graph[{1 -> 2, 2 -> 3}], {1, 1}],
Infinity
],
(* unevaluated *)
(* argument count *)
testUnevaluated[
CausalDensityDimension[],
{CausalDensityDimension::argrx}
],
testUnevaluated[
CausalDensityDimension[dag],
{CausalDensityDimension::argr}
],
(* First argument *)
testUnevaluated[
CausalDensityDimension[loopGraph, {1, 2}],
{CausalDensityDimension::invalidGraph}
],
testUnevaluated[
CausalDensityDimension[undirectedGraph, {1, 2}],
{CausalDensityDimension::invalidGraph}
],
testUnevaluated[
CausalDensityDimension[cyclicGraph, {1, 2}],
{CausalDensityDimension::invalidGraph}
],
(* Second argument *)
testUnevaluated[
CausalDensityDimension[dag, {}],
{CausalDensityDimension::invalidVertexList}
],
testUnevaluated[
CausalDensityDimension[dag, {1, 50}],
{CausalDensityDimension::invalidVertex}
],
testUnevaluated[
CausalDensityDimension[dag, {50, 1}],
{CausalDensityDimension::invalidVertex}
]
}
]
},
"options" -> <|"Parallel" -> False|>
|>
|>