This file is dynamically maintained by a bot, please do not edit this by hand. It represents various code metrics , such as cyclomatic complexity, maintainability index, and so on.
The StateNet.Tests.csproj project file contains:
5 namespaces.
10 named types.
980 total lines of source code.
Approximately 255 lines of executable code.
The highest cyclomatic complexity is 2 ✔️.
StateNet.Tests.Network.Data ✔️
The StateNet.Tests.Network.Data namespace contains 1 named types.
1 named types.
34 total lines of source code.
Approximately 3 lines of executable code.
The highest cyclomatic complexity is 1 ✔️.
StateNetwork_Constructor_TestData ✔️
The StateNetwork_Constructor_TestData contains 3 members.
32 total lines of source code.
Approximately 3 lines of executable code.
The highest cyclomatic complexity is 1 ✔️.
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Field
10
81
0 ✔️
0
7
18 / 1
Method
30
100
1 ✔️
0
3
4 / 1
Method
35
100
1 ✔️
0
2
4 / 1
🔗 to StateNetwork_Constructor_TestData class diagram
🔝 back to StateNet.Tests.Network.Data
StateNet.Tests.Engine ✔️
The StateNet.Tests.Engine namespace contains 2 named types.
2 named types.
344 total lines of source code.
Approximately 108 lines of executable code.
The highest cyclomatic complexity is 1 ✔️.
Engine_Tests ✔️
The Engine_Tests contains 15 members.
271 total lines of source code.
Approximately 89 lines of executable code.
The highest cyclomatic complexity is 1 ✔️.
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Field
17
93
0 ✔️
0
2
1 / 1
Method
20
77
1 ✔️
0
6
15 / 4
Method
36
77
1 ✔️
0
6
15 / 4
Method
53
65
1 ✔️
0
9
22 / 9
Method
76
61
1 ✔️
0
9
26 / 11
Method
104
66
1 ✔️
0
8
20 / 8
Method
125
71
1 ✔️
0
6
15 / 6
Method
141
59
1 ✔️
0
8
36 / 12
Method
178
75
1 ✔️
0
6
13 / 4
Method
192
77
1 ✔️
0
4
13 / 4
Method
206
75
1 ✔️
0
6
14 / 4
Method
221
78
1 ✔️
0
4
13 / 4
Method
235
77
1 ✔️
0
6
15 / 4
Method
252
69
1 ✔️
0
6
16 / 7
Method
269
69
1 ✔️
0
4
17 / 7
🔗 to Engine_Tests class diagram
🔝 back to StateNet.Tests.Engine
TransitionHistory_Tests ✔️
The TransitionHistory_Tests contains 5 members.
69 total lines of source code.
Approximately 19 lines of executable code.
The highest cyclomatic complexity is 1 ✔️.
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Method
13
93
1 ✔️
0
3
11 / 2
Method
25
73
1 ✔️
0
6
13 / 5
Method
41
73
1 ✔️
0
5
15 / 5
Method
55
76
1 ✔️
0
5
12 / 4
Method
68
81
1 ✔️
0
5
11 / 3
🔗 to TransitionHistory_Tests class diagram
🔝 back to StateNet.Tests.Engine
StateNet.Tests.Network.Helpers ✔️
The StateNet.Tests.Network.Helpers namespace contains 3 named types.
3 named types.
273 total lines of source code.
Approximately 48 lines of executable code.
The highest cyclomatic complexity is 2 ✔️.
StateNetwork_Helpers ✔️
The StateNetwork_Helpers contains 13 members.
55 total lines of source code.
Approximately 24 lines of executable code.
The highest cyclomatic complexity is 2 ✔️.
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Property
52
94
2 ✔️
0
6
3 / 2
Field
12
93
0 ✔️
0
2
1 / 1
Property
47
94
2 ✔️
0
6
3 / 2
Property
43
94
2 ✔️
0
6
3 / 2
Property
39
94
2 ✔️
0
6
3 / 2
Property
35
94
2 ✔️
0
6
3 / 2
Property
55
94
2 ✔️
0
6
3 / 2
Property
59
94
2 ✔️
0
6
3 / 2
Property
16
90
2 ✔️
0
4
5 / 2
Property
31
93
2 ✔️
0
7
3 / 2
Property
21
89
2 ✔️
0
4
4 / 2
Property
26
89
2 ✔️
0
5
4 / 2
Field
10
93
0 ✔️
0
0
1 / 1
🔗 to StateNetwork_Helpers class diagram
🔝 back to StateNet.Tests.Network.Helpers
StateNetworkBuilder_Helpers ✔️
The StateNetworkBuilder_Helpers contains 4 members.
15 total lines of source code.
Approximately 7 lines of executable code.
The highest cyclomatic complexity is 2 ✔️.
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Property
16
100
2 ✔️
0
2
2 / 2
Field
9
93
0 ✔️
0
2
1 / 1
Property
12
91
2 ✔️
0
4
3 / 2
Property
19
100
2 ✔️
0
2
2 / 2
🔗 to StateNetworkBuilder_Helpers class diagram
🔝 back to StateNet.Tests.Network.Helpers
StateNetworkDictionary_Helpers ✔️
The StateNetworkDictionary_Helpers contains 9 members.
197 total lines of source code.
Approximately 17 lines of executable code.
The highest cyclomatic complexity is 2 ✔️.
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Property
196
100
2 ✔️
0
4
3 / 2
Field
13
93
0 ✔️
0
2
1 / 1
Property
168
90
2 ✔️
0
10
27 / 2
Property
140
90
2 ✔️
0
10
27 / 2
Property
112
89
2 ✔️
0
7
27 / 2
Property
76
89
2 ✔️
0
7
35 / 2
Property
45
89
2 ✔️
0
7
30 / 2
Property
17
90
2 ✔️
0
7
27 / 2
Property
200
100
2 ✔️
0
4
8 / 2
🔗 to StateNetworkDictionary_Helpers class diagram
🔝 back to StateNet.Tests.Network.Helpers
StateNet.Tests.Network ✔️
The StateNet.Tests.Network namespace contains 2 named types.
2 named types.
269 total lines of source code.
Approximately 89 lines of executable code.
The highest cyclomatic complexity is 1 ✔️.
StateNetwork_Tests ✔️
The StateNetwork_Tests contains 9 members.
109 total lines of source code.
Approximately 26 lines of executable code.
The highest cyclomatic complexity is 1 ✔️.
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Field
16
93
0 ✔️
0
2
1 / 1
Method
20
81
1 ✔️
0
9
14 / 3
Method
34
77
1 ✔️
0
4
11 / 4
Method
46
80
1 ✔️
0
4
12 / 3
Method
60
80
1 ✔️
0
4
12 / 3
Method
73
79
1 ✔️
0
4
11 / 3
Method
85
79
1 ✔️
0
4
12 / 3
Method
99
81
1 ✔️
0
4
12 / 3
Method
112
80
1 ✔️
0
4
11 / 3
🔗 to StateNetwork_Tests class diagram
🔝 back to StateNet.Tests.Network
StateNetworkBuilder_Tests ✔️
The StateNetworkBuilder_Tests contains 11 members.
156 total lines of source code.
Approximately 63 lines of executable code.
The highest cyclomatic complexity is 1 ✔️.
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Field
15
100
0 ✔️
0
1
1 / 0
Method
19
73
1 ✔️
0
7
16 / 4
Method
35
88
1 ✔️
0
4
10 / 2
Method
46
66
1 ✔️
0
6
15 / 8
Method
62
62
1 ✔️
0
6
19 / 11
Method
82
62
1 ✔️
0
6
19 / 11
Method
102
62
1 ✔️
0
6
19 / 11
Field
12
93
0 ✔️
0
2
1 / 1
Method
122
65
1 ✔️
0
6
17 / 9
Method
140
80
1 ✔️
0
4
11 / 3
Method
152
80
1 ✔️
0
4
11 / 3
🔗 to StateNetworkBuilder_Tests class diagram
🔝 back to StateNet.Tests.Network
StateNet.Tests.Network.Validator ✔️
The StateNet.Tests.Network.Validator namespace contains 2 named types.
2 named types.
60 total lines of source code.
Approximately 7 lines of executable code.
The highest cyclomatic complexity is 1 ✔️.
StateNetworkValidator_TestData ✔️
The StateNetworkValidator_TestData contains 3 members.
41 total lines of source code.
Approximately 3 lines of executable code.
The highest cyclomatic complexity is 1 ✔️.
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Field
10
79
0 ✔️
0
4
27 / 1
Method
39
100
1 ✔️
0
3
4 / 1
Method
44
100
1 ✔️
0
2
4 / 1
🔗 to StateNetworkValidator_TestData class diagram
🔝 back to StateNet.Tests.Network.Validator
StateNetworkValidator_Tests ✔️
The StateNetworkValidator_Tests contains 1 members.
15 total lines of source code.
Approximately 4 lines of executable code.
The highest cyclomatic complexity is 1 ✔️.
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Method
11
78
1 ✔️
0
5
12 / 4
🔗 to StateNetworkValidator_Tests class diagram
🔝 back to StateNet.Tests.Network.Validator
🔝 back to StateNet.Tests
The StateNet.csproj project file contains:
9 namespaces.
26 named types.
923 total lines of source code.
Approximately 290 lines of executable code.
The highest cyclomatic complexity is 8 ⚠️ .
System.Runtime.CompilerServices ❓
The System.Runtime.CompilerServices namespace contains 1 named types.
1 named types.
4 total lines of source code.
Approximately 0 lines of executable code.
The highest cyclomatic complexity is 0 ❓.
IsExternalInit ❓
The IsExternalInit contains 0 members.
3 total lines of source code.
Approximately 0 lines of executable code.
The highest cyclomatic complexity is 0 ❓.
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
🔗 to IsExternalInit class diagram
🔝 back to System.Runtime.CompilerServices
Aptacode.StateNet.Engine ✔️
The Aptacode.StateNet.Engine namespace contains 1 named types.
1 named types.
73 total lines of source code.
Approximately 25 lines of executable code.
The highest cyclomatic complexity is 7 ✔️.
StateNetEngine ✔️
The StateNetEngine contains 9 members.
71 total lines of source code.
Approximately 25 lines of executable code.
The highest cyclomatic complexity is 7 ✔️.
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Field
12
100
0 ✔️
0
1
1 / 0
Field
13
100
0 ✔️
0
1
1 / 0
Method
17
72
3 ✔️
0
6
8 / 4
Method
40
53
7 ✔️
0
13
40 / 19
Property
26
100
2 ✔️
0
0
1 / 0
Method
35
91
1 ✔️
0
3
4 / 1
Method
30
93
1 ✔️
0
2
4 / 1
Event
28
100
0 ✔️
0
3
1 / 0
Field
15
100
0 ✔️
0
1
1 / 0
🔗 to StateNetEngine class diagram
🔝 back to Aptacode.StateNet.Engine
Aptacode.StateNet.PatternMatching.Expressions ✔️
The Aptacode.StateNet.PatternMatching.Expressions namespace contains 7 named types.
7 named types.
98 total lines of source code.
Approximately 7 lines of executable code.
The highest cyclomatic complexity is 1 ✔️.
Matches ✔️
The Matches contains 3 members.
7 total lines of source code.
Approximately 1 lines of executable code.
The highest cyclomatic complexity is 1 ✔️.
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Method
7
100
1 ✔️
0
3
7 / 0
Method
9
93
1 ✔️
0
4
4 / 1
Property
7
100
0 ✔️
0
1
1 / 0
🔗 to Matches class diagram
🔝 back to Aptacode.StateNet.PatternMatching.Expressions
StateCount ✔️
The StateCount contains 2 members.
15 total lines of source code.
Approximately 1 lines of executable code.
The highest cyclomatic complexity is 1 ✔️.
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Method
9
94
1 ✔️
0
3
7 / 0
Method
17
100
1 ✔️
0
2
4 / 1
🔗 to StateCount class diagram
🔝 back to Aptacode.StateNet.PatternMatching.Expressions
StateCountFromEnd ✔️
The StateCountFromEnd contains 2 members.
12 total lines of source code.
Approximately 1 lines of executable code.
The highest cyclomatic complexity is 1 ✔️.
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Method
11
92
1 ✔️
0
6
4 / 0
Method
16
100
1 ✔️
0
2
4 / 1
🔗 to StateCountFromEnd class diagram
🔝 back to Aptacode.StateNet.PatternMatching.Expressions
StateCountStart ✔️
The StateCountStart contains 2 members.
13 total lines of source code.
Approximately 1 lines of executable code.
The highest cyclomatic complexity is 1 ✔️.
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Method
11
92
1 ✔️
0
5
5 / 0
Method
17
100
1 ✔️
0
2
4 / 1
🔗 to StateCountStart class diagram
🔝 back to Aptacode.StateNet.PatternMatching.Expressions
TransitionCount ✔️
The TransitionCount contains 2 members.
11 total lines of source code.
Approximately 1 lines of executable code.
The highest cyclomatic complexity is 1 ✔️.
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Method
9
92
1 ✔️
0
3
3 / 0
Method
13
100
1 ✔️
0
2
4 / 1
🔗 to TransitionCount class diagram
🔝 back to Aptacode.StateNet.PatternMatching.Expressions
TransitionCountFromEnd ✔️
The TransitionCountFromEnd contains 2 members.
13 total lines of source code.
Approximately 1 lines of executable code.
The highest cyclomatic complexity is 1 ✔️.
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Method
11
91
1 ✔️
0
6
5 / 0
Method
17
100
1 ✔️
0
2
4 / 1
🔗 to TransitionCountFromEnd class diagram
🔝 back to Aptacode.StateNet.PatternMatching.Expressions
TransitionCountFromStart ✔️
The TransitionCountFromStart contains 2 members.
13 total lines of source code.
Approximately 1 lines of executable code.
The highest cyclomatic complexity is 1 ✔️.
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Method
11
91
1 ✔️
0
5
5 / 0
Method
17
100
1 ✔️
0
2
4 / 1
🔗 to TransitionCountFromStart class diagram
🔝 back to Aptacode.StateNet.PatternMatching.Expressions
Aptacode.StateNet.Network ⚠️
The Aptacode.StateNet.Network namespace contains 4 named types.
4 named types.
348 total lines of source code.
Approximately 128 lines of executable code.
The highest cyclomatic complexity is 8 ⚠️ .
Connection ✔️
The Connection contains 3 members.
1 total lines of source code.
Approximately 0 lines of executable code.
The highest cyclomatic complexity is 1 ✔️.
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Method
6
100
1 ✔️
0
2
1 / 0
Property
6
100
0 ✔️
0
2
1 / 0
Property
6
100
0 ✔️
0
0
1 / 0
🔗 to Connection class diagram
🔝 back to Aptacode.StateNet.Network
NetworkBuilder ✔️
The NetworkBuilder contains 22 members.
208 total lines of source code.
Approximately 91 lines of executable code.
The highest cyclomatic complexity is 7 ✔️.
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Field
13
100
0 ✔️
0
3
1 / 0
Field
14
100
0 ✔️
0
1
1 / 0
Field
15
100
0 ✔️
0
2
1 / 0
Field
17
100
0 ✔️
0
0
1 / 0
Field
16
100
0 ✔️
0
1
1 / 0
Method
19
74
1 ✔️
0
6
8 / 5
Method
64
72
1 ✔️
0
6
10 / 5
Method
51
89
1 ✔️
0
2
5 / 2
Method
119
83
2 ✔️
0
3
9 / 3
Method
37
89
1 ✔️
0
2
5 / 2
Method
192
66
4 ✔️
0
6
17 / 7
Method
75
72
3 ✔️
0
5
10 / 5
Method
86
74
2 ✔️
0
5
10 / 5
Method
97
72
3 ✔️
0
5
10 / 5
Method
108
74
2 ✔️
0
5
10 / 5
Method
139
50
7 ✔️
0
15
52 / 27
Property
28
100
2 ✔️
0
0
1 / 2
Method
57
81
1 ✔️
0
2
6 / 3
Method
129
83
2 ✔️
0
3
9 / 3
Method
43
78
1 ✔️
0
2
7 / 4
Method
210
75
1 ✔️
0
6
8 / 5
Method
30
81
1 ✔️
0
2
6 / 3
🔗 to NetworkBuilder class diagram
🔝 back to Aptacode.StateNet.Network
StateNetwork ⚠️
The StateNetwork contains 14 members.
120 total lines of source code.
Approximately 35 lines of executable code.
The highest cyclomatic complexity is 8 ⚠️ .
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Method
10
68
4 ✔️
0
9
19 / 7
Method
81
92
2 ✔️
0
0
6 / 1
Method
86
97
1 ✔️
0
0
4 / 1
Method
63
83
1 ✔️
0
4
4 / 3
Method
68
89
1 ✔️
0
4
4 / 2
Method
73
100
1 ✔️
0
4
4 / 1
Method
36
78
3 ✔️
0
5
9 / 3
Method
46
84
2 ✔️
0
5
6 / 2
Method
53
80
2 ✔️
0
5
9 / 3
Method
91
60
8 ⚠️
0
3
29 / 11
Method
121
94
1 ✔️
0
1
4 / 1
Property
32
100
2 ✔️
0
2
1 / 0
Property
34
100
2 ✔️
0
0
1 / 0
Property
30
100
2 ✔️
0
3
1 / 0
🔗 to StateNetwork class diagram
🔝 back to Aptacode.StateNet.Network
StateNetworkResult ✔️
The StateNetworkResult contains 6 members.
12 total lines of source code.
Approximately 2 lines of executable code.
The highest cyclomatic complexity is 1 ✔️.
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Method
3
100
1 ✔️
0
1
12 / 0
Method
5
92
1 ✔️
0
1
4 / 1
Property
3
100
0 ✔️
0
0
1 / 0
Property
3
100
0 ✔️
0
1
1 / 0
Method
10
92
1 ✔️
0
1
4 / 1
Property
3
100
0 ✔️
0
0
1 / 0
🔗 to StateNetworkResult class diagram
🔝 back to Aptacode.StateNet.Network
Aptacode.StateNet.PatternMatching ✔️
The Aptacode.StateNet.PatternMatching namespace contains 3 named types.
3 named types.
127 total lines of source code.
Approximately 37 lines of executable code.
The highest cyclomatic complexity is 7 ✔️.
Pattern ✔️
The Pattern contains 10 members.
56 total lines of source code.
Approximately 16 lines of executable code.
The highest cyclomatic complexity is 7 ✔️.
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Method
11
70
3 ✔️
0
3
11 / 6
Property
23
100
2 ✔️
0
2
1 / 0
Field
9
93
0 ✔️
0
0
1 / 1
Method
36
92
2 ✔️
0
0
4 / 1
Method
41
97
1 ✔️
0
0
4 / 1
Method
29
81
1 ✔️
0
3
8 / 3
Property
24
100
2 ✔️
0
2
1 / 0
Property
25
100
2 ✔️
0
0
1 / 0
Method
46
75
7 ✔️
0
3
9 / 3
Method
56
94
1 ✔️
0
1
4 / 1
🔗 to Pattern class diagram
🔝 back to Aptacode.StateNet.PatternMatching
PatternMatcher ✔️
The PatternMatcher contains 6 members.
42 total lines of source code.
Approximately 12 lines of executable code.
The highest cyclomatic complexity is 3 ✔️.
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Method
12
96
1 ✔️
0
1
4 / 1
Method
19
71
3 ✔️
0
3
16 / 5
Method
36
71
3 ✔️
0
4
11 / 5
Field
8
93
0 ✔️
0
1
1 / 1
Field
10
100
0 ✔️
0
1
1 / 0
Property
17
100
2 ✔️
0
0
1 / 0
🔗 to PatternMatcher class diagram
🔝 back to Aptacode.StateNet.PatternMatching
StringExtensions ✔️
The StringExtensions contains 1 members.
24 total lines of source code.
Approximately 9 lines of executable code.
The highest cyclomatic complexity is 3 ✔️.
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Method
5
62
3 ✔️
0
1
21 / 9
🔗 to StringExtensions class diagram
🔝 back to Aptacode.StateNet.PatternMatching
Aptacode.StateNet.Random ✔️
The Aptacode.StateNet.Random namespace contains 2 named types.
2 named types.
15 total lines of source code.
Approximately 2 lines of executable code.
The highest cyclomatic complexity is 1 ✔️.
IRandomNumberGenerator ✔️
The IRandomNumberGenerator contains 1 members.
4 total lines of source code.
Approximately 0 lines of executable code.
The highest cyclomatic complexity is 1 ✔️.
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Method
5
100
1 ✔️
0
0
1 / 0
🔗 to IRandomNumberGenerator class diagram
🔝 back to Aptacode.StateNet.Random
SystemRandomNumberGenerator ✔️
The SystemRandomNumberGenerator contains 2 members.
9 total lines of source code.
Approximately 2 lines of executable code.
The highest cyclomatic complexity is 1 ✔️.
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Method
7
94
1 ✔️
0
2
4 / 1
Field
5
93
0 ✔️
0
1
1 / 1
🔗 to SystemRandomNumberGenerator class diagram
🔝 back to Aptacode.StateNet.Random
Aptacode.StateNet ✔️
The Aptacode.StateNet namespace contains 1 named types.
1 named types.
17 total lines of source code.
Approximately 3 lines of executable code.
The highest cyclomatic complexity is 1 ✔️.
Resources ✔️
The Resources contains 9 members.
16 total lines of source code.
Approximately 3 lines of executable code.
The highest cyclomatic complexity is 1 ✔️.
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Field
7
93
0 ✔️
0
0
1 / 1
Field
8
93
0 ✔️
0
0
1 / 1
Field
6
93
0 ✔️
0
0
1 / 1
Method
14
96
1 ✔️
0
0
4 / 1
Field
12
93
0 ✔️
0
0
1 / 1
Field
11
93
0 ✔️
0
0
1 / 1
Field
9
93
0 ✔️
0
0
1 / 1
Field
5
93
0 ✔️
0
0
1 / 1
Field
10
93
0 ✔️
0
0
1 / 1
🔗 to Resources class diagram
🔝 back to Aptacode.StateNet
Aptacode.StateNet.Engine.Transitions ✔️
The Aptacode.StateNet.Engine.Transitions namespace contains 4 named types.
4 named types.
101 total lines of source code.
Approximately 31 lines of executable code.
The highest cyclomatic complexity is 4 ✔️.
Transition ✔️
The Transition contains 4 members.
1 total lines of source code.
Approximately 0 lines of executable code.
The highest cyclomatic complexity is 1 ✔️.
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Method
3
100
1 ✔️
0
0
1 / 0
Property
3
100
0 ✔️
0
0
1 / 0
Property
3
100
0 ✔️
0
0
1 / 0
Property
3
100
0 ✔️
0
0
1 / 0
🔗 to Transition class diagram
🔝 back to Aptacode.StateNet.Engine.Transitions
TransitionHistory ✔️
The TransitionHistory contains 11 members.
74 total lines of source code.
Approximately 27 lines of executable code.
The highest cyclomatic complexity is 4 ✔️.
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Field
10
100
0 ✔️
0
1
1 / 0
Field
13
93
0 ✔️
0
3
1 / 1
Field
15
93
0 ✔️
0
1
1 / 1
Field
16
93
0 ✔️
0
1
1 / 1
Method
18
69
4 ✔️
0
6
13 / 6
Method
59
63
2 ✔️
0
7
17 / 10
Method
34
74
2 ✔️
0
8
9 / 4
Method
49
81
2 ✔️
0
6
9 / 3
Method
44
100
1 ✔️
0
3
4 / 1
Method
77
96
1 ✔️
0
2
4 / 1
Property
32
100
2 ✔️
0
0
1 / 0
🔗 to TransitionHistory class diagram
🔝 back to Aptacode.StateNet.Engine.Transitions
TransitionHistoryExtensions ✔️
The TransitionHistoryExtensions contains 1 members.
8 total lines of source code.
Approximately 2 lines of executable code.
The highest cyclomatic complexity is 2 ✔️.
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Method
9
83
2 ✔️
0
2
5 / 2
🔗 to TransitionHistoryExtensions class diagram
🔝 back to Aptacode.StateNet.Engine.Transitions
TransitionResult ✔️
The TransitionResult contains 6 members.
12 total lines of source code.
Approximately 2 lines of executable code.
The highest cyclomatic complexity is 1 ✔️.
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Method
3
100
1 ✔️
0
1
12 / 0
Method
5
92
1 ✔️
0
1
4 / 1
Property
3
100
0 ✔️
0
0
1 / 0
Method
10
92
1 ✔️
0
1
4 / 1
Property
3
100
0 ✔️
0
0
1 / 0
Property
3
100
0 ✔️
0
1
1 / 0
🔗 to TransitionResult class diagram
🔝 back to Aptacode.StateNet.Engine.Transitions
Aptacode.StateNet.Network.Validator ⚠️
The Aptacode.StateNet.Network.Validator namespace contains 3 named types.
3 named types.
140 total lines of source code.
Approximately 57 lines of executable code.
The highest cyclomatic complexity is 8 ⚠️ .
MatchesVisitor ✔️
The MatchesVisitor contains 5 members.
29 total lines of source code.
Approximately 13 lines of executable code.
The highest cyclomatic complexity is 4 ✔️.
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Field
13
93
0 ✔️
0
2
1 / 1
Field
14
93
0 ✔️
0
2
1 / 1
Property
16
100
2 ✔️
0
4
1 / 2
Property
17
100
2 ✔️
0
4
1 / 2
Method
20
69
4 ✔️
0
10
19 / 7
🔗 to MatchesVisitor class diagram
🔝 back to Aptacode.StateNet.Network.Validator
StateNetworkExtensions ⚠️
The StateNetworkExtensions contains 3 members.
85 total lines of source code.
Approximately 40 lines of executable code.
The highest cyclomatic complexity is 8 ⚠️ .
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Method
59
86
1 ✔️
0
4
5 / 2
Method
65
62
3 ✔️
0
6
25 / 11
Method
8
49
8 ⚠️
0
11
50 / 27
🔗 to StateNetworkExtensions class diagram
🔝 back to Aptacode.StateNet.Network.Validator
StateNetworkValidationResult ✔️
The StateNetworkValidationResult contains 5 members.
21 total lines of source code.
Approximately 4 lines of executable code.
The highest cyclomatic complexity is 1 ✔️.
Member kind
Line number
Maintainability index
Cyclomatic complexity
Depth of inheritance
Class coupling
Lines of source / executable code
Method
5
85
1 ✔️
0
0
5 / 2
Method
14
94
1 ✔️
0
0
4 / 1
Property
11
100
1 ✔️
0
0
1 / 0
Method
19
94
1 ✔️
0
0
4 / 1
Property
12
100
1 ✔️
0
0
1 / 0
🔗 to StateNetworkValidationResult class diagram
🔝 back to Aptacode.StateNet.Network.Validator
🔝 back to StateNet
Maintainability index : Measures ease of code maintenance. Higher values are better.
Cyclomatic complexity : Measures the number of branches. Lower values are better.
Depth of inheritance : Measures length of object inheritance hierarchy. Lower values are better.
Class coupling : Measures the number of classes that are referenced. Lower values are better.
Lines of source code : Exact number of lines of source code. Lower values are better.
Lines of executable code : Approximates the lines of executable code. Lower values are better.
StateNetwork_Constructor_TestData class diagram
classDiagram
class StateNetwork_Constructor_TestData{
-List<object[]> _data
+GetEnumerator() IEnumerator<object[]>
+GetEnumerator() IEnumerator
}
Loading
Engine_Tests class diagram
classDiagram
class Engine_Tests{
-ExpressionFactory<TransitionHistory> _expressions
+CurrentStateChanges_After_SuccessfulTransition() void
+CurrentStateDoesNotChange_After_FailedTransition() void
+Engine_Chooses_CorrectConnection_GivenWeights() void
+Engine_Chooses_CorrectConnection_GivenWeights_NetworkWithMultipleBranches() void
+EngineReverseTransition() void
+EngineSingleTransition() void
+EngineTransitionHistory() void
+GetAvailableConnections_Returns_CorrectList_WhenConnectionsExistForCurrentStateAndInput() void
+GetAvailableConnections_Returns_EmptyList_WhenNoConnectionsExistsForCurrentStateAndInput() void
+GetAvailableInputs_Returns_CorrectList_WhenInputExistsForCurrentState() void
+GetAvailableInputs_Returns_EmptyList_WhenNoInputExistsForCurrentState() void
+InputNotDefined_ReturnsFailTransition() void
+OnTransition_Invoked_After_SuccessfulTransition() void
+OnTransition_NotInvoked_After_FailedTransition() void
}
Loading
TransitionHistory_Tests class diagram
classDiagram
class TransitionHistory_Tests{
+Constructor_Throws_ArgumentNullException_WhenStartStateIsNull() void
+GetMatches_Returns_CorrectMatches_SingleMatch() void
+ToString_Returns_CorrectHistory_WithMultipleTransitions() void
+ToString_Returns_CorrectHistory_WithOneTransition() void
+ToString_Returns_StartState_WhenNoTransition() void
}
Loading
StateNetwork_Helpers class diagram
classDiagram
class StateNetwork_Helpers{
-string StateB$
-ExpressionFactory<TransitionHistory> Expressions$
+StateNetwork Minimal_Valid_Connected_StaticWeight_Network$
+StateNetwork State_WithMultiple_Inputs_Network$
+StateNetwork State_WithMultiple_Inputs_WithPatterns_Network$
+StateNetwork Minimal_Valid_Connected_StaticWeight_Network_WithPattern$
+StateNetwork Invalid_StartState_Network$
+StateNetwork Invalid_ConnectionTargetState_Network$
+StateNetwork Invalid_ConnectionPatternState_Network$
+StateNetwork Invalid_ConnectionPatternInput_Network$
+StateNetwork Empty_Network$
+StateNetwork Invalid_Unreachable_State_Network$
+StateNetwork Invalid_UnusableInput_Network$
}
Loading
StateNetworkBuilder_Helpers class diagram
classDiagram
class StateNetworkBuilder_Helpers{
-ExpressionFactory<TransitionHistory> Expressions$
+NetworkBuilder Minimal_Valid_Connected_StaticWeight_NetworkBuilder$
+NetworkBuilder Empty_NetworkBuilder$
+NetworkBuilder SingleState_NetworkBuilder$
}
Loading
StateNetworkDictionary_Helpers class diagram
classDiagram
class StateNetworkDictionary_Helpers{
-ExpressionFactory<TransitionHistory> Expressions$
+Dictionary<string, Dictionary<string, IEnumerable<Connection>>> Minimal_Valid_Connected_StaticWeight_NetworkDictionary$
+Dictionary<string, Dictionary<string, IEnumerable<Connection>>> Invalid_UnusableInput_NetworkDictionary$
+Dictionary<string, Dictionary<string, IEnumerable<Connection>>> Invalid_Unreachable_State_NetworkDictionary$
+Dictionary<string, Dictionary<string, IEnumerable<Connection>>> Invalid_ConnectionTargetState_NetworkDictionary$
+Dictionary<string, Dictionary<string, IEnumerable<Connection>>> Invalid_ConnectionPatternState_NetworkDictionary$
+Dictionary<string, Dictionary<string, IEnumerable<Connection>>> Invalid_ConnectionPatternInput_NetworkDictionary$
+Dictionary<string, Dictionary<string, IEnumerable<Connection>>> Empty_NetworkDictionary$
+Dictionary<string, Dictionary<string, IEnumerable<Connection>>> SingleState_NetworkDictionary$
}
Loading
StateNetwork_Tests class diagram
classDiagram
class StateNetwork_Tests{
-ExpressionFactory<TransitionHistory> _expressions
+Constructor_Throws_Exception_Tests(Type exception, Dictionary<string, Dictionary<string, IEnumerable<Connection>>> networkDictionary, string start) void
+GetAllInputs_Successfully_Returns_ListOfInputs() void
+GetConnections_Returns_EmptyList_WhenInputIsNotDefinedForState() void
+GetConnections_Returns_EmptyList_WhenNoConnectionsExistForStateAndInput() void
+GetConnections_Returns_List_WhenConnectionsExistForStateAndInput() void
+GetConnections_Returns_List_WhenInputsAreDefined() void
+GetInputs_Returns_EmptyList_WhenStateDoesNotExist() void
+GetInputs_Returns_List_WhenStateDoesExist() void
}
Loading
StateNetworkBuilder_Tests class diagram
classDiagram
class StateNetworkBuilder_Tests{
-ExpressionFactory<TransitionHistory> Expressions$
-TransitionHistory _context
+AddConnection_SuccessfullyAddsConnection_AfterBuild() void
+Builder_Returns_FailMessage_WhenStartStateIsNotSet() void
+ClearConnectionsFromState_OfGivenInput_SuccessfullyClearsConnection_AfterBuild() void
+ClearConnectionsFromState_SuccessfullyClearsConnection_AfterBuild() void
+ClearConnectionsToState_OfGivenInput_SuccessfullyClearsConnection_AfterBuild() void
+ClearConnectionsToState_SuccessfullyClearsConnection_AfterBuild() void
+RemoveInput_SuccesfullyRemovesInput_AfterBuild() void
+RemoveState_SuccesfullyRemovesState_AfterBuild() void
+StartState_IsSet_AfterBuild() void
}
Loading
StateNetworkValidator_TestData class diagram
classDiagram
class StateNetworkValidator_TestData{
-List<object[]> _data
+GetEnumerator() IEnumerator<object[]>
+GetEnumerator() IEnumerator
}
Loading
StateNetworkValidator_Tests class diagram
classDiagram
class StateNetworkValidator_Tests{
+StateNetworkValidator_IsValidTests(StateNetwork stateNetwork, string message, bool isValid) void
}
Loading
IsExternalInit class diagram
classDiagram
class IsExternalInit{
}
Loading
StateNetEngine class diagram
classDiagram
class StateNetEngine{
-StateNetwork _network
-IRandomNumberGenerator _randomNumberGenerator
-TransitionHistory TransitionHistory
+string CurrentState
+.ctor(StateNetwork network, IRandomNumberGenerator randomNumberGenerator) StateNetEngine
+GetAvailableInputs() IEnumerable<string>
+GetAvailableConnections(string input) IEnumerable<Connection>
+Apply(string input) TransitionResult
}
Loading
classDiagram
IEquatable~Matches~ <|-- Matches : implements
class Matches{
+Pattern Pattern
+.ctor(Pattern Pattern) Matches
+Interpret(TransitionHistory context) int[]
}
Loading
classDiagram
IEquatable~StateCount~ <|-- StateCount : implements
class StateCount{
+.ctor(string state) StateCount
+Interpret(TransitionHistory context) int
}
Loading
StateCountFromEnd class diagram
classDiagram
IEquatable~StateCountFromEnd~ <|-- StateCountFromEnd : implements
class StateCountFromEnd{
+.ctor(string state, int takeLast) StateCountFromEnd
+Interpret(TransitionHistory context) int
}
Loading
StateCountStart class diagram
classDiagram
IEquatable~StateCountStart~ <|-- StateCountStart : implements
class StateCountStart{
+.ctor(string state, int takeFirst) StateCountStart
+Interpret(TransitionHistory context) int
}
Loading
TransitionCount class diagram
classDiagram
IEquatable~TransitionCount~ <|-- TransitionCount : implements
class TransitionCount{
+.ctor(string state, string input) TransitionCount
+Interpret(TransitionHistory context) int
}
Loading
TransitionCountFromEnd class diagram
classDiagram
IEquatable~TransitionCountFromEnd~ <|-- TransitionCountFromEnd : implements
class TransitionCountFromEnd{
+.ctor(string state, string input, int takeLast) TransitionCountFromEnd
+Interpret(TransitionHistory context) int
}
Loading
TransitionCountFromStart class diagram
classDiagram
IEquatable~TransitionCountFromStart~ <|-- TransitionCountFromStart : implements
class TransitionCountFromStart{
+.ctor(string state, string input, int takeFirst) TransitionCountFromStart
+Interpret(TransitionHistory context) int
}
Loading
classDiagram
IEquatable~Connection~ <|-- Connection : implements
class Connection{
+string Target
+IExpression<int, TransitionHistory> Expression
+.ctor(string Target, IExpression<int, TransitionHistory> Expression) Connection
}
Loading
NetworkBuilder class diagram
classDiagram
class NetworkBuilder{
-List<(string, string, Connection)> _connections
-HashSet<string> _inputs
-HashSet<Pattern> _patterns
-HashSet<string> _states
-string _startState
+NetworkBuilder New$
+.ctor() NetworkBuilder
+SetStartState(string startState) NetworkBuilder
+AddState(string state) NetworkBuilder
+RemoveState(string state) NetworkBuilder
+AddInput(string input) NetworkBuilder
+RemoveInputOnState(string input, string state) NetworkBuilder
+AddConnection(string source, string input, string destination, IExpression<int, TransitionHistory> expression) NetworkBuilder
+ClearConnectionsFromState(string state, string input) NetworkBuilder
+ClearConnectionsFromState(string state) NetworkBuilder
+ClearConnectionsToState(string state, string input) NetworkBuilder
+ClearConnectionsToState(string state) NetworkBuilder
+AddPattern(params Pattern[] patterns) NetworkBuilder
+RemovePattern(params Pattern[] patterns) NetworkBuilder
+CreateStateNetwork() StateNetworkResult
+Build() StateNetworkResult
+Reset() void
}
Loading
StateNetwork class diagram
classDiagram
class StateNetwork{
+Dictionary<string, Dictionary<string, IEnumerable<Connection>>> StateDictionary
+IEnumerable<Pattern> Patterns
+string StartState
+.ctor(string startState, Dictionary<string, Dictionary<string, IEnumerable<Connection>>> stateDictionary, IEnumerable<Pattern> patterns) StateNetwork
+GetConnections(string state, string input) IEnumerable<Connection>
+GetConnections(string state) IEnumerable<Connection>
+GetInputs(string state) IEnumerable<string>
+GetAllConnections() IEnumerable<Connection>
+GetAllInputs() IEnumerable<string>
+GetAllStates() IEnumerable<string>
+Equals(object obj) bool
+Equals(StateNetwork other) bool
+operator ==(StateNetwork lhs, StateNetwork rhs)$ bool
+operator !=(StateNetwork lhs, StateNetwork rhs)$ bool
}
Loading
StateNetworkResult class diagram
classDiagram
IEquatable~StateNetworkResult~ <|-- StateNetworkResult : implements
class StateNetworkResult{
+string Message
+bool Success
+StateNetwork? Network
+.ctor(string Message, bool Success, StateNetwork? Network) StateNetworkResult
+Fail(string message)$ StateNetworkResult
+Ok(StateNetwork network, string message)$ StateNetworkResult
}
Loading
classDiagram
class Pattern{
-Pattern Empty$
+IEnumerable<string?> Elements
+IEnumerable<int?> HashedElements
+int Length
+.ctor(params string[] elements) Pattern
+GetHashCode() int
+Equals(object obj) bool
+Equals(Pattern other) bool
+operator ==(Pattern lhs, Pattern rhs)$ bool
+operator !=(Pattern lhs, Pattern rhs)$ bool
}
Loading
PatternMatcher class diagram
classDiagram
class PatternMatcher{
-List<int> MatchList
-Pattern Pattern
+int PatternIndex
+.ctor(Pattern pattern) PatternMatcher
+Add(int index, int hashCode) void
+IsNextInPattern(int hashCode) bool
}
Loading
StringExtensions class diagram
classDiagram
class StringExtensions{
+GetDeterministicHashCode(string str)$ int
}
Loading
IRandomNumberGenerator class diagram
classDiagram
class IRandomNumberGenerator{
+Generate(int min, int max)* int
}
Loading
SystemRandomNumberGenerator class diagram
classDiagram
IRandomNumberGenerator <|-- SystemRandomNumberGenerator : implements
class SystemRandomNumberGenerator{
-Random RandomGenerator$
+Generate(int min, int max) int
}
Loading
classDiagram
class Resources{
-string UNSET_START_STATE$
-string INVALID_START_STATE$
-string INVALID_CONNECTION_TARGET$
-string INVALID_DEPENDENCY$
-string UNREACHABLE_STATES$
-string UNUSABLE_INPUTS$
-string SUCCESS$
-string NO_STATES$
+NO_AVAILABLE_CONNECTION(string currentState, string input)$ string
}
Loading
classDiagram
IEquatable~Transition~ <|-- Transition : implements
class Transition{
+string Source
+string Input
+string Destination
+.ctor(string Source, string Input, string Destination) Transition
}
Loading
TransitionHistory class diagram
classDiagram
class TransitionHistory{
-StateNetwork _network
-Dictionary<Pattern, PatternMatcher> _patternMatches
-List<string> _stringTransitionHistory
-List<int> _transitionHistory
+int TransitionCount
+.ctor(StateNetwork network) TransitionHistory
+CreateMatchTrackers() void
+GetTransitionHistory() IReadOnlyList<int>
+GetMatches(Pattern pattern) IEnumerable<int>
+Add(string input, string destination) void
+ToString() string
}
Loading
TransitionHistoryExtensions class diagram
classDiagram
class TransitionHistoryExtensions{
+TakeLast<T>(IEnumerable<T> source, int count)$ IEnumerable<T>
}
Loading
TransitionResult class diagram
classDiagram
IEquatable~TransitionResult~ <|-- TransitionResult : implements
class TransitionResult{
+string Message
+bool Success
+Transition? Transition
+.ctor(string Message, bool Success, Transition? Transition) TransitionResult
+Fail(string message)$ TransitionResult
+Ok(Transition transition, string message)$ TransitionResult
}
Loading
MatchesVisitor class diagram
classDiagram
class MatchesVisitor{
-HashSet<string?> _dependencies
-HashSet<Pattern> _patterns
+IReadOnlyList<string?> Dependencies
+IReadOnlyList<Pattern> Patterns
+Visit<TType>(TerminalListExpression<TType, TransitionHistory> expression) void
}
Loading
StateNetworkExtensions class diagram
classDiagram
class StateNetworkExtensions{
+IsValid(StateNetwork network)$ StateNetworkValidationResult
+GetUsableInputs(StateNetwork network, string state, IEnumerable<string> inputs)$ IEnumerable<string>
+GetVisitedStatesAndUsableInputs(StateNetwork network, string state, HashSet<string> visitedStates, HashSet<string> usableInputs)$ void
}
Loading
StateNetworkValidationResult class diagram
classDiagram
class StateNetworkValidationResult{
+string Message
+bool Success
+.ctor(string message, bool success) StateNetworkValidationResult
+Fail(string message)$ StateNetworkValidationResult
+Ok(string message)$ StateNetworkValidationResult
}
Loading
This file is maintained by a bot.