From 433955e2cf49226de677211ed80713724da22cce Mon Sep 17 00:00:00 2001 From: stefiosif Date: Mon, 8 Aug 2022 22:22:52 +0300 Subject: [PATCH] Minor project updates and add 2 example datasets --- algorithm/decremental_scc.h | 1 - graph/directed_acyclic_graph.h | 16 - resources/dag.txt | 1098 ++++++++++++++ resources/general.txt | 2615 ++++++++++++++++++++++++++++++++ test/decremental_test.cc | 100 +- test/{main.cc => doctest.cc} | 0 test/fully_dynamic_test.cc | 14 + 7 files changed, 3818 insertions(+), 26 deletions(-) delete mode 100644 graph/directed_acyclic_graph.h create mode 100644 resources/dag.txt create mode 100644 resources/general.txt rename test/{main.cc => doctest.cc} (100%) create mode 100644 test/fully_dynamic_test.cc diff --git a/algorithm/decremental_scc.h b/algorithm/decremental_scc.h index 1ab6234..bc56866 100644 --- a/algorithm/decremental_scc.h +++ b/algorithm/decremental_scc.h @@ -3,7 +3,6 @@ #include "algorithm/roditty_zwick.h" #include "algorithm/tarjan.h" -#include "algorithm/breadth_first_search.h" #include "tree/breadth_first_tree.h" using namespace graph; diff --git a/graph/directed_acyclic_graph.h b/graph/directed_acyclic_graph.h deleted file mode 100644 index 145f589..0000000 --- a/graph/directed_acyclic_graph.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef DIRECTED_ACYCLIC_GRAPH_H_ -#define DIRECTED_ACYCLIC_GRAPH_H_ - -#include "digraph.h" - -namespace graph { - -template -class DirectedAcyclicGraph { -public: - DirectedAcyclicGraph() = default; -}; - -} // namespace graph - -#endif \ No newline at end of file diff --git a/resources/dag.txt b/resources/dag.txt new file mode 100644 index 0000000..2c7f52c --- /dev/null +++ b/resources/dag.txt @@ -0,0 +1,1098 @@ +1 2 +1 3 +1 4 +1 5 +1 6 +1 7 +8 9 +8 10 +8 5 +8 11 +8 12 +13 14 +13 15 +13 16 +13 17 +13 18 +13 19 +20 21 +20 22 +20 23 +20 24 +20 25 +26 27 +26 28 +26 29 +26 30 +26 31 +26 32 +26 33 +34 15 +34 16 +34 35 +34 23 +21 36 +21 37 +21 38 +21 23 +21 25 +2 39 +2 40 +2 10 +2 41 +2 11 +2 42 +43 13 +43 44 +43 45 +43 36 +43 15 +43 46 +43 47 +43 11 +48 26 +48 29 +48 31 +48 49 +48 50 +48 51 +48 52 +9 40 +9 53 +9 10 +9 3 +27 26 +27 16 +27 54 +27 46 +27 55 +27 25 +56 14 +56 18 +56 57 +56 58 +59 13 +59 15 +59 60 +59 4 +59 61 +62 26 +62 15 +62 63 +62 64 +65 13 +65 15 +65 18 +65 11 +66 9 +66 40 +66 67 +66 12 +68 53 +68 57 +68 41 +68 69 +68 70 +71 40 +71 54 +71 28 +71 72 +71 73 +14 15 +14 17 +14 18 +14 74 +14 75 +44 48 +44 36 +44 46 +44 76 +44 64 +45 36 +45 47 +45 63 +45 10 +45 77 +45 76 +36 45 +36 78 +36 63 +36 76 +36 79 +80 45 +80 15 +80 23 +80 75 +81 82 +81 15 +81 63 +81 77 +81 24 +82 9 +82 83 +82 46 +82 84 +82 85 +78 86 +78 76 +78 38 +78 87 +78 88 +89 9 +89 40 +89 50 +89 5 +89 75 +89 11 +89 90 +15 13 +15 16 +15 18 +15 54 +15 74 +15 23 +15 12 +39 78 +39 5 +39 11 +39 12 +39 24 +16 15 +16 17 +16 19 +16 63 +83 15 +83 10 +83 91 +83 42 +22 13 +22 20 +22 15 +22 16 +22 17 +22 92 +22 4 +22 23 +93 45 +93 32 +93 69 +93 11 +93 24 +93 25 +17 13 +17 16 +17 19 +17 84 +17 74 +17 64 +40 9 +40 15 +40 94 +40 23 +40 73 +40 12 +18 56 +18 14 +18 15 +18 74 +95 20 +95 21 +95 25 +96 15 +96 16 +96 54 +97 19 +97 74 +97 12 +54 15 +54 40 +54 74 +54 10 +54 23 +46 84 +46 60 +46 87 +46 55 +35 18 +35 74 +35 92 +35 98 +35 33 +19 13 +19 36 +19 16 +19 17 +19 97 +19 63 +19 12 +84 46 +84 99 +84 73 +84 87 +74 13 +74 14 +74 18 +74 35 +74 100 +74 42 +101 14 +101 74 +101 3 +101 57 +101 87 +101 102 +67 66 +67 89 +67 103 +67 10 +67 98 +67 12 +67 42 +53 78 +53 89 +53 84 +53 63 +53 29 +103 41 +103 75 +103 98 +103 42 +47 13 +47 36 +47 16 +47 17 +47 97 +47 12 +47 64 +28 44 +28 18 +28 31 +28 100 +28 11 +28 12 +94 40 +94 10 +94 41 +94 11 +94 55 +94 102 +63 16 +63 19 +63 29 +63 51 +63 75 +63 52 +10 9 +10 89 +10 54 +10 91 +29 34 +29 15 +29 16 +29 104 +29 105 +29 57 +29 106 +29 23 +60 59 +60 15 +60 16 +60 74 +60 31 +60 33 +3 9 +3 101 +3 67 +3 41 +3 11 +3 42 +107 84 +107 108 +107 92 +107 87 +30 13 +30 27 +30 84 +30 100 +30 99 +30 55 +31 48 +31 109 +31 49 +31 41 +31 6 +86 13 +86 78 +86 18 +86 63 +86 106 +86 38 +86 55 +110 2 +110 58 +110 42 +108 74 +108 10 +108 107 +108 92 +108 12 +32 47 +32 28 +32 92 +32 4 +32 6 +77 81 +77 89 +77 10 +77 75 +109 26 +109 35 +109 31 +109 41 +109 4 +109 69 +109 33 +109 6 +104 29 +104 30 +104 4 +104 51 +104 58 +92 13 +92 16 +92 35 +92 107 +92 108 +92 24 +111 23 +112 20 +112 93 +112 3 +112 25 +112 102 +105 54 +105 35 +105 87 +113 93 +113 29 +113 60 +114 60 +114 51 +115 15 +115 54 +115 23 +85 9 +85 78 +85 40 +85 5 +76 45 +76 36 +76 78 +72 1 +72 45 +72 78 +72 67 +72 103 +72 42 +49 48 +49 68 +49 15 +49 16 +49 103 +49 31 +37 15 +37 40 +37 54 +37 23 +37 25 +100 97 +100 35 +100 74 +100 31 +100 49 +100 12 +57 14 +57 74 +57 101 +57 29 +41 2 +41 9 +41 68 +41 31 +41 69 +99 84 +99 73 +99 55 +116 48 +116 74 +116 4 +116 52 +79 36 +79 97 +79 47 +79 69 +79 11 +4 46 +4 74 +4 32 +4 6 +51 14 +5 9 +5 66 +5 45 +5 85 +5 4 +5 69 +5 91 +5 6 +106 36 +106 97 +106 74 +38 78 +38 101 +38 10 +38 77 +38 5 +38 69 +38 58 +69 9 +69 40 +69 101 +69 111 +69 98 +69 12 +23 40 +23 63 +23 111 +23 51 +23 102 +75 80 +75 89 +75 40 +75 19 +75 63 +75 12 +73 71 +73 40 +73 54 +73 72 +73 51 +73 69 +73 12 +98 97 +98 94 +98 111 +98 25 +98 91 +11 9 +11 15 +11 40 +11 12 +33 34 +33 15 +33 35 +33 28 +33 23 +12 28 +12 100 +12 75 +12 11 +87 84 +87 74 +87 101 +87 69 +87 11 +87 61 +55 46 +55 84 +55 32 +55 92 +55 99 +55 4 +55 87 +24 81 +24 39 +24 35 +24 32 +24 75 +24 90 +58 110 +58 99 +58 91 +58 42 +58 88 +70 9 +70 68 +70 10 +70 41 +25 20 +25 111 +25 41 +25 23 +117 20 +117 21 +117 95 +117 25 +102 40 +102 94 +102 10 +102 7 +91 83 +91 94 +91 3 +118 119 +118 120 +118 121 +118 122 +123 124 +123 125 +123 120 +123 126 +119 127 +119 125 +119 128 +119 129 +119 126 +124 123 +124 125 +124 126 +127 119 +127 125 +127 130 +127 131 +127 121 +127 129 +127 132 +127 133 +125 119 +125 127 +125 134 +125 121 +125 132 +135 136 +135 137 +135 121 +136 127 +136 120 +136 121 +136 138 +136 139 +136 126 +130 140 +130 141 +130 138 +120 118 +120 127 +120 136 +120 121 +120 132 +137 118 +137 127 +137 142 +137 143 +137 122 +137 126 +140 130 +140 144 +140 121 +140 138 +145 127 +145 141 +145 128 +145 132 +145 143 +145 146 +145 147 +148 127 +148 145 +148 149 +148 150 +148 121 +148 151 +142 127 +142 125 +142 137 +142 121 +142 132 +142 133 +149 127 +149 128 +149 152 +153 148 +153 152 +153 133 +153 154 +153 147 +131 118 +131 127 +131 121 +131 133 +150 127 +150 148 +150 152 +150 151 +150 155 +150 156 +157 127 +157 136 +157 149 +157 128 +157 158 +157 133 +159 127 +159 131 +159 121 +134 127 +134 144 +134 128 +134 132 +134 143 +144 127 +144 130 +144 140 +144 134 +144 132 +144 143 +144 156 +121 127 +121 136 +121 120 +121 129 +121 126 +160 123 +160 119 +160 124 +160 136 +160 121 +160 126 +141 127 +141 130 +141 144 +141 138 +141 129 +141 133 +138 130 +138 140 +138 144 +138 121 +138 141 +138 128 +138 129 +128 127 +128 121 +128 141 +128 129 +128 132 +128 133 +128 146 +161 127 +161 125 +161 120 +161 121 +161 126 +161 162 +129 127 +129 131 +129 121 +129 141 +129 128 +129 132 +129 155 +152 149 +152 128 +152 154 +158 119 +158 127 +158 149 +158 157 +158 121 +158 138 +158 129 +151 127 +151 130 +151 131 +151 121 +151 139 +151 147 +139 134 +139 152 +139 151 +139 162 +132 127 +132 121 +132 163 +133 153 +133 152 +133 154 +155 127 +155 150 +155 151 +155 162 +155 147 +164 131 +164 128 +164 152 +163 149 +163 121 +163 128 +163 132 +163 146 +165 159 +165 128 +165 162 +143 161 +143 151 +156 127 +156 128 +156 132 +156 133 +146 145 +146 128 +162 127 +162 121 +162 126 +166 167 +166 168 +166 169 +166 170 +166 171 +166 172 +166 173 +174 175 +174 167 +174 171 +174 176 +174 177 +178 167 +178 179 +178 180 +178 181 +182 183 +182 184 +182 185 +182 186 +182 187 +182 188 +182 189 +175 174 +175 190 +175 171 +175 183 +175 176 +175 191 +192 167 +192 170 +192 193 +192 183 +192 194 +192 195 +192 191 +192 189 +196 168 +196 171 +196 197 +196 194 +196 198 +196 199 +196 177 +167 178 +167 168 +167 171 +167 194 +168 167 +168 179 +168 185 +168 197 +168 194 +168 198 +168 200 +169 166 +169 170 +169 172 +169 197 +169 173 +201 192 +201 194 +201 200 +201 187 +190 167 +190 197 +190 194 +190 176 +170 166 +170 169 +170 193 +170 202 +170 185 +170 187 +170 188 +170 189 +193 185 +193 186 +193 188 +193 195 +193 191 +171 166 +171 167 +171 194 +171 199 +202 193 +202 183 +202 184 +202 185 +202 198 +202 195 +202 191 +202 189 +203 168 +203 179 +203 197 +203 194 +203 198 +183 192 +183 184 +183 186 +183 204 +183 195 +183 191 +179 168 +179 197 +179 194 +179 200 +179 188 +184 193 +184 183 +184 186 +184 188 +184 195 +185 182 +185 193 +185 186 +185 187 +185 195 +185 191 +172 166 +172 169 +172 171 +172 198 +172 200 +197 168 +197 171 +197 194 +197 177 +197 187 +197 195 +194 168 +194 171 +194 198 +194 200 +194 187 +176 190 +176 177 +186 193 +186 184 +186 176 +186 198 +186 187 +186 195 +198 192 +198 196 +198 168 +198 202 +198 194 +198 176 +198 186 +180 181 +205 197 +205 194 +205 198 +200 168 +200 201 +200 199 +200 187 +204 167 +204 170 +204 183 +204 184 +204 185 +173 166 +173 169 +173 170 +173 197 +173 188 +206 192 +206 177 +199 171 +199 194 +199 187 +207 208 +207 209 +207 210 +207 211 +207 212 +207 213 +214 209 +214 215 +214 210 +214 216 +214 213 +217 209 +217 218 +217 219 +217 220 +217 221 +217 222 +223 208 +223 210 +223 220 +223 221 +223 211 +223 224 +223 213 +208 209 +208 225 +208 210 +208 216 +209 217 +209 208 +209 226 +209 221 +209 211 +209 213 +226 217 +226 208 +226 209 +226 219 +226 220 +226 221 +226 224 +227 208 +227 228 +227 210 +227 224 +227 216 +227 229 +230 231 +230 216 +230 232 +230 213 +233 210 +233 220 +233 216 +233 234 +233 229 +233 213 +233 235 +215 226 +215 236 +215 231 +215 213 +215 237 +236 215 +236 231 +236 232 +236 237 +218 217 +218 209 +218 215 +218 221 +218 213 +218 222 +228 217 +228 208 +228 209 +228 219 +228 210 +228 220 +228 211 +228 216 +225 217 +225 208 +225 209 +225 228 +225 210 +225 220 +225 216 +238 215 +238 231 +238 232 +238 237 +239 232 +239 237 +231 208 +231 233 +231 215 +231 238 +231 232 +231 235 +231 237 +219 226 +219 228 +219 210 +219 220 +219 221 +219 224 +210 208 +210 209 +210 227 +210 220 +210 221 +210 211 +220 217 +220 208 +220 209 +220 226 +220 210 +220 221 +220 216 +221 208 +221 228 +221 225 +221 219 +221 220 +211 217 +211 223 +211 208 +211 209 +211 210 +211 240 +211 216 +211 234 +211 232 +224 223 +224 226 +224 219 +224 220 +224 221 +240 219 +240 234 +240 213 +240 235 +216 223 +216 208 +216 233 +216 225 +216 210 +234 219 +234 240 +234 213 +229 208 +229 209 +229 227 +229 231 +229 220 +229 241 +232 236 +232 231 +232 220 +232 237 +213 209 +213 240 +213 234 +213 229 +235 226 +235 219 +235 240 +235 216 +235 213 +235 241 diff --git a/resources/general.txt b/resources/general.txt new file mode 100644 index 0000000..f636159 --- /dev/null +++ b/resources/general.txt @@ -0,0 +1,2615 @@ +1 2 +2 3 +3 4 +4 5 +1 6 +6 7 +7 8 +8 9 +6 10 +10 11 +11 12 +4 13 +2 14 +14 15 +15 16 +16 17 +2 18 +18 19 +1 20 +20 18 +6 21 +21 22 +22 19 +2 23 +23 22 +6 24 +24 25 +25 26 +15 26 +6 3 +3 27 +27 28 +10 29 +25 30 +6 31 +31 32 +32 33 +4 34 +21 35 +35 36 +2 37 +37 38 +6 37 +4 39 +4 40 +2 41 +41 42 +1 10 +10 43 +43 44 +3 45 +45 46 +46 43 +1 46 +4 47 +14 48 +48 49 +46 50 +50 49 +6 51 +51 52 +14 51 +1 14 +16 53 +53 54 +55 56 +56 57 +57 58 +58 59 +59 60 +60 61 +62 63 +63 64 +64 65 +65 66 +66 67 +67 68 +68 53 +53 69 +62 70 +70 71 +71 72 +72 73 +73 74 +74 75 +75 53 +63 52 +52 76 +68 77 +77 20 +73 78 +78 20 +20 79 +79 80 +52 81 +63 82 +82 83 +83 47 +47 84 +84 85 +85 5 +68 86 +73 87 +87 68 +62 88 +88 89 +89 90 +90 91 +91 92 +20 16 +68 93 +93 94 +73 95 +95 54 +54 96 +96 94 +88 97 +63 98 +98 99 +89 100 +82 101 +101 34 +34 102 +102 103 +103 104 +104 105 +82 106 +106 107 +68 108 +108 109 +71 110 +110 72 +72 111 +111 108 +67 112 +111 67 +104 113 +62 114 +114 34 +62 62 +62 66 +108 36 +67 115 +72 115 +34 116 +116 117 +117 118 +118 119 +63 120 +120 121 +121 122 +121 123 +106 124 +124 125 +63 126 +126 127 +127 128 +128 129 +129 130 +82 34 +113 131 +68 132 +132 133 +72 110 +110 132 +100 134 +132 110 +110 44 +52 135 +135 136 +124 116 +116 137 +91 138 +91 139 +88 140 +65 141 +141 113 +72 142 +142 143 +143 113 +91 144 +68 109 +109 116 +54 145 +145 146 +146 147 +147 69 +145 148 +148 149 +149 69 +54 116 +116 149 +54 93 +93 68 +54 150 +150 102 +102 53 +149 96 +96 151 +151 20 +79 152 +152 153 +54 102 +102 109 +116 113 +113 103 +104 118 +118 66 +102 154 +154 155 +146 155 +102 156 +94 157 +157 158 +158 159 +159 160 +160 12 +116 34 +34 161 +161 92 +34 101 +101 82 +106 162 +116 77 +94 26 +102 163 +163 99 +103 164 +161 100 +157 165 +165 28 +157 166 +166 167 +167 43 +43 29 +79 168 +168 169 +169 105 +102 77 +151 170 +170 109 +109 67 +54 171 +171 116 +116 172 +172 68 +68 173 +173 174 +174 175 +171 110 +110 176 +176 177 +177 178 +178 179 +179 175 +152 119 +119 10 +10 180 +109 113 +103 181 +181 182 +182 66 +153 38 +79 183 +183 184 +184 38 +54 110 +132 24 +24 50 +50 185 +185 123 +171 102 +154 73 +73 186 +186 187 +165 27 +27 188 +176 44 +34 189 +189 190 +190 89 +34 191 +191 190 +102 116 +34 192 +192 193 +193 89 +161 138 +161 139 +113 194 +194 195 +195 47 +186 196 +16 1 +197 198 +198 199 +199 200 +200 201 +201 145 +145 202 +202 109 +203 204 +204 205 +206 207 +207 208 +206 209 +209 210 +211 212 +212 213 +213 214 +214 215 +212 216 +216 217 +217 218 +218 219 +216 220 +220 221 +221 218 +218 222 +213 223 +223 224 +213 225 +225 226 +226 227 +226 228 +213 229 +229 230 +230 231 +231 232 +226 233 +213 234 +234 235 +235 236 +236 237 +213 238 +238 239 +213 240 +240 241 +241 242 +226 243 +238 244 +226 245 +241 246 +241 247 +226 248 +218 249 +212 68 +68 220 +220 250 +250 218 +218 221 +221 251 +251 252 +217 253 +253 221 +68 254 +254 252 +216 255 +218 256 +241 257 +238 258 +214 259 +220 260 +260 261 +261 262 +52 263 +263 76 +52 168 +168 85 +135 264 +264 9 +263 9 +263 265 +52 266 +266 134 +134 92 +52 120 +120 82 +162 267 +52 134 +134 90 +135 268 +268 269 +269 270 +270 271 +271 26 +270 272 +272 51 +51 273 +273 2 +51 46 +52 124 +124 274 +274 275 +275 97 +52 276 +276 277 +277 99 +81 278 +278 279 +279 280 +280 281 +281 282 +282 283 +283 61 +120 83 +83 82 +82 64 +52 125 +125 100 +52 127 +129 105 +168 105 +52 148 +148 108 +135 284 +284 285 +52 286 +286 287 +287 288 +288 8 +8 289 +289 27 +27 3 +3 290 +52 291 +291 43 +43 292 +292 293 +293 179 +162 294 +276 47 +47 66 +52 295 +295 119 +119 38 +52 296 +296 297 +297 38 +284 123 +52 128 +168 129 +274 298 +298 89 +263 124 +284 24 +24 299 +275 140 +148 300 +300 113 +82 301 +301 302 +302 303 +303 62 +304 305 +305 306 +179 307 +307 308 +309 310 +310 311 +312 313 +313 314 +314 315 +315 316 +316 317 +312 318 +318 319 +319 320 +320 321 +321 322 +322 323 +323 179 +179 324 +322 325 +325 326 +312 314 +315 327 +327 328 +312 329 +329 330 +330 331 +331 332 +314 333 +333 334 +334 335 +312 336 +336 337 +337 338 +338 339 +339 340 +322 341 +341 26 +312 342 +342 343 +343 344 +344 345 +345 346 +346 347 +347 348 +348 349 +312 350 +350 351 +351 352 +352 330 +330 353 +353 354 +354 355 +355 356 +329 343 +343 357 +357 358 +358 359 +359 360 +360 61 +343 361 +361 343 +343 362 +362 363 +363 364 +343 365 +365 366 +366 367 +367 368 +333 367 +365 335 +335 369 +369 370 +354 371 +343 372 +372 373 +373 371 +343 374 +374 375 +375 376 +318 203 +205 377 +377 172 +172 378 +378 105 +336 198 +374 379 +334 380 +366 381 +381 382 +312 383 +383 320 +322 384 +384 38 +312 385 +385 314 +314 386 +386 387 +387 388 +388 389 +312 390 +390 391 +391 392 +392 311 +311 393 +393 394 +394 57 +57 395 +320 86 +86 396 +396 187 +350 397 +397 398 +398 399 +399 400 +400 386 +386 401 +314 397 +397 402 +402 401 +312 343 +343 403 +397 345 +345 404 +404 405 +405 406 +312 407 +407 408 +199 340 +340 409 +409 410 +410 411 +411 109 +86 412 +412 176 +312 413 +413 414 +414 415 +415 416 +416 417 +417 418 +367 419 +144 420 +420 10 +10 421 +421 84 +144 91 +91 146 +146 422 +422 82 +146 423 +423 267 +91 90 +10 124 +124 135 +135 424 +424 73 +424 68 +68 20 +144 161 +161 425 +425 34 +34 426 +91 427 +427 97 +116 428 +428 99 +423 64 +91 100 +68 67 +423 294 +34 429 +424 66 +191 430 +430 118 +124 191 +10 134 +91 101 +101 431 +431 89 +90 432 +432 433 +433 427 +427 89 +427 140 +34 113 +425 47 +116 425 +144 134 +134 266 +266 52 +423 62 +49 46 +46 12 +46 29 +49 273 +49 434 +434 123 +49 185 +49 33 +33 18 +18 188 +49 435 +435 22 +22 289 +289 188 +49 436 +436 299 +49 14 +14 299 +49 24 +49 7 +7 6 +6 1 +262 261 +261 437 +437 218 +218 250 +250 252 +252 438 +438 439 +439 215 +437 440 +440 213 +218 441 +441 442 +442 224 +224 443 +443 439 +252 444 +444 445 +445 214 +224 446 +446 445 +261 235 +235 241 +241 250 +250 226 +235 447 +447 226 +261 448 +448 449 +449 450 +450 451 +451 231 +241 452 +452 453 +453 233 +450 239 +450 244 +450 258 +445 259 +362 454 +454 455 +455 456 +456 457 +457 458 +458 459 +459 306 +176 460 +460 461 +462 463 +463 464 +464 465 +47 120 +120 266 +266 281 +281 136 +136 466 +466 467 +467 468 +467 469 +66 72 +47 52 +47 470 +470 430 +430 365 +365 471 +471 472 +472 317 +47 473 +473 84 +470 119 +119 474 +474 358 +358 475 +475 476 +52 9 +132 68 +47 477 +477 478 +478 479 +479 155 +155 480 +480 340 +47 125 +125 92 +47 82 +467 481 +125 90 +47 482 +482 10 +124 435 +435 483 +483 90 +120 287 +287 484 +484 485 +485 486 +486 487 +487 19 +47 488 +488 489 +489 490 +490 491 +491 51 +51 50 +185 15 +50 24 +24 492 +47 34 +34 114 +114 493 +493 72 +75 94 +477 494 +494 201 +201 95 +95 495 +495 26 +479 200 +200 496 +496 201 +201 497 +497 411 +155 498 +498 499 +499 500 +500 501 +47 98 +98 502 +502 190 +190 97 +411 503 +266 81 +83 64 +81 281 +136 504 +504 278 +278 505 +500 506 +499 507 +507 508 +125 106 +114 66 +66 73 +73 509 +509 67 +119 291 +292 510 +510 179 +131 511 +511 512 +34 66 +507 513 +479 507 +513 514 +514 515 +515 516 +514 517 +517 382 +489 75 +75 119 +489 296 +47 83 +83 473 +473 127 +511 130 +136 518 +518 519 +519 466 +466 520 +291 521 +521 522 +522 523 +467 524 +479 525 +525 154 +73 526 +526 187 +474 206 +206 527 +527 401 +125 46 +46 134 +365 158 +158 528 +528 176 +46 91 +134 10 +10 144 +144 139 +47 163 +163 192 +193 140 +470 435 +435 51 +51 49 +134 144 +119 529 +529 25 +25 530 +530 531 +531 532 +532 312 +531 533 +533 312 +467 534 +116 54 +435 535 +535 4 +4 3 +3 1 +113 536 +536 537 +537 195 +195 266 +266 538 +538 539 +539 540 +540 541 +113 542 +542 543 +543 544 +544 545 +545 546 +546 547 +547 548 +548 549 +546 548 +549 466 +113 108 +108 68 +77 116 +149 148 +148 145 +145 550 +77 68 +113 551 +551 146 +146 552 +552 79 +79 553 +553 365 +113 554 +554 4 +4 555 +555 287 +287 81 +113 556 +556 557 +557 558 +558 544 +544 24 +24 81 +77 102 +558 559 +559 289 +289 560 +560 9 +551 561 +561 479 +155 146 +146 562 +562 205 +205 86 +113 119 +119 152 +152 35 +35 21 +21 6 +103 34 +103 102 +102 34 +116 124 +435 91 +66 82 +104 82 +161 90 +542 65 +65 114 +114 51 +51 563 +563 564 +564 565 +565 566 +113 297 +297 563 +563 485 +113 77 +53 75 +104 424 +68 190 +102 200 +563 567 +567 283 +66 568 +66 65 +65 64 +93 569 +435 100 +113 4 +3 6 +6 46 +113 570 +570 105 +113 195 +195 571 +571 107 +124 106 +544 572 +572 285 +113 67 +102 171 +79 573 +573 574 +574 43 +113 72 +113 102 +113 430 +65 575 +575 576 +571 125 +553 291 +102 73 +525 73 +161 134 +124 10 +110 577 +577 44 +544 121 +121 559 +559 548 +548 7 +7 136 +195 137 +536 578 +578 266 +266 137 +109 579 +579 580 +66 581 +544 299 +113 113 +161 144 +578 582 +582 52 +66 114 +114 302 +3 2 +2 1 +583 459 +584 585 +585 586 +586 587 +587 588 +588 589 +589 590 +590 591 +591 238 +586 592 +592 593 +593 594 +299 595 +595 76 +299 24 +50 566 +566 596 +596 326 +299 572 +285 9 +50 273 +2 16 +299 121 +299 597 +597 598 +598 135 +24 49 +273 1 +139 144 +144 10 +134 46 +46 421 +139 91 +91 435 +435 124 +139 161 +599 312 +312 320 +322 600 +600 175 +412 44 +601 602 +602 174 +601 603 +603 179 +604 605 +605 308 +308 314 +314 606 +606 607 +607 280 +280 608 +608 504 +604 609 +609 610 +610 611 +611 612 +612 613 +604 614 +614 476 +605 615 +615 392 +392 333 +604 361 +361 404 +404 616 +616 19 +604 617 +617 186 +186 341 +604 615 +615 315 +315 403 +403 345 +315 314 +333 618 +618 619 +315 392 +333 369 +604 620 +620 311 +618 376 +617 621 +621 378 +604 622 +622 397 +397 319 +319 623 +623 199 +605 361 +361 353 +353 624 +624 625 +625 626 +626 627 +617 601 +601 628 +628 175 +333 381 +604 319 +604 629 +629 630 +630 631 +631 632 +632 57 +395 633 +633 634 +601 635 +635 187 +604 636 +636 637 +637 638 +638 639 +639 401 +604 640 +640 641 +641 642 +642 643 +643 644 +644 645 +645 406 +174 412 +604 646 +646 647 +647 648 +648 312 +604 649 +649 604 +604 650 +650 312 +604 651 +651 312 +652 653 +653 454 +455 654 +654 61 +100 266 +89 110 +110 74 +72 67 +89 537 +537 135 +89 121 +121 120 +120 63 +110 78 +89 655 +655 430 +100 656 +656 76 +76 81 +76 263 +263 81 +89 657 +657 537 +537 47 +89 658 +658 126 +126 529 +529 119 +206 632 +632 358 +136 454 +454 362 +362 659 +281 81 +136 660 +660 661 +424 72 +89 662 +662 663 +663 71 +72 479 +89 82 +89 267 +658 120 +110 95 +89 664 +664 71 +72 201 +89 665 +665 64 +89 666 +666 667 +667 64 +530 668 +668 669 +669 415 +661 670 +291 636 +636 620 +657 102 +126 470 +470 83 +83 671 +671 168 +657 47 +47 672 +672 673 +673 128 +100 107 +661 674 +71 675 +675 67 +67 676 +676 109 +474 677 +677 387 +387 678 +669 391 +89 667 +667 666 +666 162 +110 71 +71 70 +70 141 +141 429 +365 621 +621 679 +679 680 +680 681 +681 383 +82 66 +68 141 +141 72 +47 127 +127 682 +682 683 +683 295 +126 489 +490 296 +658 489 +489 295 +658 121 +100 125 +660 456 +664 684 +684 110 +206 405 +405 685 +679 686 +686 408 +81 687 +687 598 +598 688 +81 689 +689 690 +690 691 +691 692 +68 148 +148 110 +63 135 +100 666 +666 137 +291 693 +693 694 +694 604 +537 425 +120 52 +68 116 +666 62 +695 696 +696 697 +697 312 +698 696 +696 699 +699 312 +137 52 +137 116 +106 82 +137 666 +666 134 +134 427 +52 270 +666 107 +107 700 +700 701 +701 97 +428 424 +137 702 +702 703 +703 704 +704 661 +661 660 +660 282 +89 64 +52 470 +470 127 +128 105 +8 705 +705 175 +89 162 +427 706 +134 707 +707 427 +701 140 +137 125 +125 47 +137 266 +89 708 +708 62 +136 263 +263 466 +136 398 +398 709 +709 710 +710 487 +136 711 +711 712 +712 713 +713 26 +711 714 +714 715 +715 27 +27 712 +136 687 +687 716 +716 61 +687 717 +717 718 +718 719 +719 720 +720 721 +721 722 +722 723 +136 135 +264 724 +724 725 +725 726 +726 727 +727 728 +728 105 +135 598 +598 729 +729 105 +398 690 +711 730 +730 50 +50 731 +731 109 +724 287 +287 101 +101 732 +732 296 +287 733 +733 38 +135 122 +598 185 +263 734 +734 389 +520 389 +714 735 +735 46 +46 176 +176 187 +690 121 +122 135 +135 736 +736 691 +136 597 +135 124 +124 737 +737 89 +466 734 +734 534 +259 738 +738 739 +739 659 +659 362 +362 670 +670 717 +717 740 +740 468 +740 469 +259 213 +213 217 +213 220 +259 741 +741 223 +213 742 +742 235 +259 743 +743 744 +744 745 +745 218 +218 746 +746 747 +747 748 +748 235 +213 212 +212 749 +259 238 +238 213 +742 748 +748 452 +748 750 +220 452 +250 241 +241 235 +212 751 +212 752 +212 753 +740 481 +212 754 +259 214 +214 239 +259 755 +755 756 +756 757 +757 58 +755 758 +758 462 +462 759 +759 760 +760 660 +456 761 +212 594 +214 244 +214 224 +224 252 +741 762 +762 252 +212 763 +763 764 +764 765 +212 766 +212 767 +763 768 +768 769 +741 770 +770 255 +213 770 +217 255 +768 771 +212 772 +670 773 +773 389 +740 524 +212 774 +214 258 +213 775 +775 776 +776 777 +250 260 +740 534 +212 211 +778 779 +779 465 +636 780 +780 647 +636 650 +636 651 +44 208 +208 781 +781 782 +782 165 +165 783 +783 784 +784 785 +785 23 +784 122 +122 467 +44 786 +786 157 +157 94 +94 75 +53 787 +787 69 +44 148 +148 208 +208 292 +292 668 +668 788 +788 68 +68 789 +44 176 +176 528 +528 158 +158 191 +191 35 +35 326 +44 577 +577 790 +790 157 +157 791 +791 191 +577 325 +44 792 +792 324 +324 286 +286 730 +50 793 +793 326 +44 46 +46 794 +794 795 +795 796 +796 797 +797 27 +27 289 +289 8 +46 51 +51 491 +491 798 +798 799 +799 5 +176 800 +800 801 +801 156 +44 802 +802 803 +803 804 +804 805 +805 806 +806 410 +411 497 +46 172 +44 110 +44 807 +807 94 +94 617 +617 79 +79 72 +72 808 +808 82 +46 127 +127 13 +157 17 +44 528 +158 17 +44 537 +537 158 +44 809 +809 157 +208 461 +461 810 +810 19 +157 26 +807 157 +804 811 +811 499 +501 812 +806 496 +68 711 +711 173 +173 813 +813 200 +802 711 +68 814 +814 711 +172 815 +786 208 +172 295 +295 814 +814 806 +806 805 +805 816 +816 500 +805 201 +506 817 +44 27 +811 507 +508 818 +818 819 +44 436 +436 43 +157 820 +820 821 +821 168 +44 822 +822 148 +148 823 +823 378 +822 54 +151 109 +148 824 +824 109 +109 112 +822 145 +552 67 +145 201 +201 552 +146 825 +825 826 +826 143 +143 429 +43 6 +6 2 +37 119 +43 10 +10 3 +41 119 +146 827 +827 512 +94 828 +828 53 +53 829 +829 512 +44 830 +830 831 +831 832 +832 833 +822 73 +73 66 +79 538 +538 109 +109 108 +108 103 +292 679 +806 507 +158 16 +16 786 +786 153 +807 790 +168 79 +157 384 +44 289 +783 834 +834 835 +835 836 +44 837 +837 621 +621 838 +292 839 +839 838 +145 73 +73 424 +201 72 +109 840 +840 89 +43 436 +43 272 +272 544 +201 826 +109 841 +841 47 +121 270 +272 52 +79 105 +105 842 +842 578 +110 171 +44 843 +843 75 +75 844 +844 110 +75 845 +845 148 +146 72 +10 6 +846 847 +847 465 +338 848 +848 86 +338 321 +321 16 +777 212 +849 615 +615 850 +850 851 +851 312 +852 853 +853 854 +854 855 +855 856 +856 135 +135 857 +852 858 +858 859 +859 860 +860 780 +780 850 +850 861 +861 862 +862 863 +852 864 +864 865 +865 315 +852 721 +721 866 +866 867 +867 868 +868 869 +853 870 +870 871 +871 872 +872 222 +852 659 +659 660 +660 873 +873 874 +874 875 +852 876 +876 877 +877 878 +878 660 +660 879 +879 874 +852 880 +880 881 +881 876 +876 882 +882 659 +659 883 +883 884 +884 23 +879 885 +885 886 +886 887 +871 888 +888 889 +889 756 +756 890 +890 233 +852 865 +865 864 +864 315 +858 891 +891 892 +892 358 +358 893 +893 894 +894 601 +601 788 +721 23 +23 895 +895 21 +21 896 +896 897 +897 898 +898 19 +866 209 +209 895 +895 896 +316 333 +852 899 +899 900 +900 901 +901 871 +871 902 +902 304 +304 903 +903 904 +853 905 +905 56 +56 906 +906 907 +907 908 +908 909 +909 904 +895 460 +460 910 +910 27 +27 911 +865 618 +618 348 +891 860 +860 636 +636 647 +647 312 +872 593 +873 912 +912 913 +913 914 +761 915 +915 916 +852 917 +917 918 +918 919 +919 920 +917 921 +921 922 +922 923 +923 924 +924 925 +925 926 +926 311 +917 629 +629 310 +780 927 +927 928 +928 929 +872 930 +930 249 +866 931 +931 932 +932 105 +853 56 +56 933 +933 903 +903 304 +304 632 +632 934 +934 871 +853 935 +935 59 +59 58 +58 933 +872 936 +936 252 +852 719 +719 606 +606 937 +937 690 +690 730 +858 938 +938 939 +939 625 +625 940 +940 627 +209 941 +941 942 +942 175 +629 943 +943 521 +521 944 +944 945 +891 358 +358 386 +386 894 +894 946 +946 383 +606 947 +947 486 +486 948 +948 38 +852 949 +949 670 +917 476 +476 393 +393 950 +950 522 +881 738 +738 951 +951 952 +952 221 +221 953 +953 306 +899 954 +954 955 +955 956 +956 957 +957 306 +858 958 +958 959 +959 960 +960 961 +961 187 +209 942 +942 187 +721 962 +962 963 +963 308 +308 387 +387 964 +386 965 +963 966 +966 405 +868 967 +967 692 +895 207 +207 968 +968 969 +969 44 +690 970 +970 52 +865 971 +971 972 +972 973 +973 604 +970 974 +974 726 +647 975 +975 976 +976 312 +497 977 +977 86 +497 201 +201 155 +155 978 +978 979 +979 495 +977 980 +980 322 +411 816 +411 981 +981 982 +982 86 +983 984 +984 19 +983 985 +985 968 +984 986 +986 960 +960 965 +985 965 +692 895 +895 987 +987 468 +987 469 +895 988 +988 989 +989 405 +405 990 +990 345 +345 397 +397 314 +692 991 +991 122 +263 992 +992 9 +987 481 +692 896 +896 993 +993 460 +405 994 +994 319 +319 346 +346 379 +346 995 +692 996 +996 868 +868 997 +997 998 +998 999 +999 1000 +1000 61 +692 1001 +1001 868 +868 1002 +1002 61 +345 312 +346 471 +997 354 +868 1003 +1003 1004 +1004 371 +991 1005 +1005 118 +118 736 +736 565 +565 932 +692 1005 +1005 991 +122 690 +692 1006 +1006 221 +221 1007 +1007 135 +135 627 +692 308 +308 689 +689 971 +971 1008 +1008 521 +944 1009 +1009 1010 +896 206 +206 1011 +1011 968 +968 148 +208 179 +968 958 +960 179 +991 947 +895 1012 +1012 389 +1006 308 +987 524 +1006 1013 +1013 308 +308 964 +1006 646 +646 405 +208 191 +191 830 +122 1014 +1014 1015 +1015 136 +122 121 +121 544 +544 1013 +1013 52 +987 534 +408 1016 +1016 340 +340 322 +340 1017 +1017 86 +1016 1018 +1018 321 +340 981 +981 816 +816 102 +102 1019 +1019 200 +408 1020 +1020 386 +386 893 +893 358 +358 372 +1020 1021 +1021 1022 +1022 361 +361 929 +1018 1023 +1023 205 +340 199 +408 340 +408 1024 +1024 319 +320 312 +312 848 +848 1025 +1025 1026 +1026 523 +319 1027 +1027 1028 +1028 397 +397 604 +340 848 +108 841 +258 238 +238 1029 +1029 1030 +1030 1031 +258 1032 +1032 1033 +1033 215 +258 1034 +1034 1035 +1035 214 +1030 1036 +258 450 +450 449 +449 448 +448 261 +261 218 +258 1037 +1037 1038 +1038 214 +214 213 +258 231 +261 230 +230 750 +750 452 +1030 1039 +450 748 +748 1040 +1040 252 +450 1041 +1041 1042 +1042 1043 +1043 224 +224 442 +442 441 +441 218 +218 255 +1030 1044 +213 712 +712 776 +1035 259 +258 449 +406 641 +641 868 +406 405 +685 1045 +1045 616 +406 994 +471 365 +406 1046 +1046 565 +405 1047 +1047 1048 +1048 206 +941 628 +406 895 +895 689 +689 947 +406 387 +387 401 +401 971 +406 1014 +1014 1049 +1049 1050 +1050 692 +774 212 +1051 82 +82 63 +51 435 +1051 70 +95 1052 +1052 93 +82 98 +98 47 +129 512 +126 435 +435 470 +1051 71 +110 830 +830 1053 +51 114 +1051 63 +435 50 +257 1054 +1054 1055 +1055 218 +218 440 +257 241 +218 745 +745 223 +224 1056 +1056 770 +257 1057 +1057 1058 +1058 1059 +1059 68 +68 212 +250 220 +221 212 +220 213 +1054 230 +230 261 +252 1041 +1041 450 +1054 742 +742 776 +776 754 +220 776 +224 214 +1058 1060 +1060 594 +218 252 +1055 1061 +1061 221 +250 221 +1058 764 +1058 768 +218 1062 +1062 1063 +1063 255 +776 772 +965 398 +398 1064 +1064 1065 +1065 1066 +1066 616 +965 1067 +1067 174 +965 1049 +401 1068 +1068 1069 +1069 868 +868 1070 +1070 1071 +1071 468 +401 387 +387 1072 +1072 469 +401 1073 +1073 350 +350 789 +1073 397 +401 1074 +1074 1075 +1075 361 +361 332 +1072 481 +401 625 +625 642 +642 148 +148 1064 +401 629 +629 1076 +1076 1077 +1077 1078 +1078 1079 +1079 56 +56 904 +1076 55 +401 1080 +1080 405 +405 1081 +1081 1082 +1082 783 +783 911 +911 26 +397 1083 +1083 337 +337 346 +379 348 +379 1084 +1084 349 +995 375 +375 619 +625 358 +372 350 +350 354 +356 61 +359 1002 +314 312 +401 308 +689 866 +866 932 +358 627 +642 894 +894 628 +401 361 +361 971 +1071 524 +894 635 +894 1067 +401 350 +397 1085 +1085 1086 +1086 1087 +1087 1088 +1088 312 +1072 534 +188 43 +41 326 +188 27 +27 685 +685 1089 +1089 12 +43 1090 +1090 160 +43 712 +713 17 +23 1091 +1091 1092 +1092 168 +1091 579 +579 109 +188 165 +165 30 +43 167 +167 1093 +1093 157 +157 30 +3 10 +10 293 +180 512 +43 46 +27 797 +797 1094 +1094 187 +436 44 +289 44 +27 18 +18 33 +33 49 +46 49 +27 165 +165 94 +94 96 +96 54 +53 1095 +1095 319 +1096 191 +191 1097 +1097 1098 +1098 1099 +1099 1085 +1085 1100 +1100 370 +1096 1101 +1101 321 +321 1102 +1102 409 +409 1103 +1103 1104 +1104 408 +964 1068 +964 387 +964 639 +964 720 +720 963 +963 999 +720 1105 +1105 354 +964 689 +866 565 +964 1106 +1106 135 +135 968 +1106 958 +388 1107 +179 187 +964 401 +401 386 +386 1108 +1108 408 +964 308 +308 967 +1071 534 +1109 1110 +1110 312 +1109 1111 +1111 312 +1109 1112 +1112 312 +1113 1114 +1114 465 +187 1094 +1094 797 +797 786 +797 830 +830 574 +436 544 +544 76 +187 176 +187 577 +187 792 +8 572 +572 544 +187 802 +830 797 +187 173 +173 86 +187 323 +323 86 +187 1115 +1115 1116 +1116 86 +187 843 +146 82 +577 110 +110 1117 +1117 617 +208 786 +786 1118 +1118 461 +187 168 +168 1119 +1119 157 +187 845 +845 735 +735 157 +187 1120 +1120 790 +187 1121 +1121 460 +460 895 +895 209 +209 362 +187 210 +210 958 +958 968 +797 28 +187 797 +797 574 +845 75 +75 110 +110 844 +844 132 +148 1122 +1122 116 +116 96 +843 735 +735 1123 +1123 158 +153 152 +825 827 +830 43 +1117 828 +830 1124 +1124 832 +109 34 +187 174 +174 1125 +1125 668 +668 292 +824 36 +151 36 +109 36 +803 1126 +1126 479 +830 537 +157 24 +24 158 +208 783 +783 710 +710 20 +20 122 +792 1127 +1127 1128 +1128 895 +797 188 +210 1129 +1129 173 +173 986 +960 894 +894 965 +986 983 +187 830 +8 7 +51 272 +830 110 +110 1130 +1130 1131 +187 822 +424 1132 +783 1133 +145 1134 +171 54 +145 54 +1135 1136 +1136 1137 +1137 1138 +1138 976 +306 1139 +1139 393 +393 391 +391 615 +306 1140 +1140 1141 +1141 1142 +1142 334 +306 1143 +1143 866 +306 393 +393 311 +311 391 +403 1084 +403 348 +306 456 +456 455 +392 369 +311 392 +306 660 +660 1144 +1144 947 +947 606 +306 899 +899 721 +721 937 +937 606 +306 739 +306 1145 +1145 1146 +1146 1141 +1141 1147 +1147 1148 +1148 523 +660 659 +454 52 +52 737 +523 1149 +1149 1008 +1008 971 +971 358 +358 963 +963 1150 +1150 868 +868 1151 +963 1072 +523 1152 +1152 1153 +1153 1154 +1154 1155 +1155 1156 +1156 1157 +1157 906 +906 1141 +1149 617 +617 604 +604 1158 +1158 1159 +1159 1160 +1160 332 +523 1161 +1161 1162 +1162 1163 +1163 1164 +617 311 +311 689 +971 404 +523 1165 +1165 1166 +1166 1167 +1167 1168 +1168 1169 +1169 904 +523 1009 +1009 1170 +1170 1171 +1171 1172 +1172 1173 +1173 328 +328 1084 +1009 1174 +1174 1168 +1168 849 +849 1175 +1175 315 +328 348 +523 1176 +1176 1177 +1177 1178 +1178 855 +855 1179 +1179 1180 +1180 1181 +1181 1182 +523 1183 +1183 1184 +1184 1185 +1185 60 +523 1140 +1140 1186 +1186 1187 +1187 1188 +1188 1189 +523 1190 +1190 1191 +1191 1186 +1188 920 +1171 1192 +1192 1193 +1193 1194 +1194 369 +1186 1195 +1195 1149 +1149 68 +68 1196 +1196 311 +1181 1197 +1184 1198 +1198 1199 +1199 371 +523 1025 +1025 848 +848 312 +312 203 +312 198 +523 1200 +1200 1201 +1201 945 +1193 1202 +1202 335 +335 381 +621 384 +523 1203 +1203 1204 +1204 521 +521 1008 +963 388 +523 1205 +1205 1206 +1206 1207 +1207 848 +848 1208 +1208 1209 +1209 306 +971 1210 +1210 401 +971 689 +1149 1211 +1211 391 +391 1212 +895 1128 +1128 899 +954 1213 +1213 738 +738 955 +133 132 +24 156 +24 157 +156 102 +68 815 +24 1214 +1214 172 +157 507 +133 68 +68 1215 +1215 1216 +68 73 +954 1217 +1217 1218 +1218 311 +1107 1219 +1219 1220 +1220 1221 +1221 963 +963 917 +917 475 +1107 312 +365 1222 +1222 333 +1107 1223 +1223 868 +868 308 +1107 1224 +1224 1225 +1225 937 +963 1226 +1226 135 +135 678 +678 627 diff --git a/test/decremental_test.cc b/test/decremental_test.cc index adcca69..e7d14d2 100644 --- a/test/decremental_test.cc +++ b/test/decremental_test.cc @@ -1,7 +1,8 @@ #include #include "algorithm/decremental_scc.h" -#include "algorithm/decremental_tc.h" +#include "algorithm/frigioni.h" +#include "algorithm/italiano.h" using namespace graph; @@ -95,7 +96,7 @@ TEST_SUITE("Decremental algorithms") { } } - TEST_CASE("Decremental maintenance of the TC 1") { + TEST_CASE("Italiano 1") { // 1 --> 2 --> 5 --> 7 --> 2 // 1 --> 4 --> 3 --> 1 // 4 --> 6 --> 3 @@ -112,19 +113,19 @@ TEST_SUITE("Decremental algorithms") { REQUIRE_EQ(G.adjMatrix.size(), 7); - algo::DecrementalTC rz(G); + algo::Italiano rz(G); rz.init(); - SUBCASE("DecrementalTC::query") { + SUBCASE("Italiano::query") { } - SUBCASE("DecrementalTC::remove") { + SUBCASE("Italiano::remove") { } } - TEST_CASE("Decremental maintenance of the TC 2") { + TEST_CASE("Italiano 2") { // 1 --> 2 --> 3 --> 1 // 3 --> 4 --> 5 --> 3 // 2 --> 6 --> 7 --> 8 --> 6 @@ -152,15 +153,96 @@ TEST_SUITE("Decremental algorithms") { REQUIRE_EQ(G.adjMatrix.size(), 13); - algo::DecrementalTC rz(G); + algo::Italiano rz(G); rz.init(); - SUBCASE("DecrementalTC::query") { + SUBCASE("Italiano::query") { } - SUBCASE("DecrementalTC::remove") { + SUBCASE("Italiano::remove") { } } + + TEST_CASE("Frigioni 1") { + // 1 --> 2 --> 3 --> 1 + // 3 --> 4 --> 5 --> 3 + // 2 --> 6 --> 7 --> 8 --> 6 + // 6 --> 9 --> 10 --> 11 --> 12 --> 13 --> 9 + // 12 --> 10 + Digraph G; + G.insert(1, 2); + G.insert(2, 3); + G.insert(3, 1); + G.insert(3, 4); + G.insert(4, 5); + G.insert(5, 3); + G.insert(2, 6); + G.insert(6, 7); + G.insert(7, 8); + G.insert(7, 9); + G.insert(8, 6); + G.insert(6, 9); + G.insert(9, 10); + G.insert(10, 11); + G.insert(11, 12); + G.insert(12, 13); + G.insert(13, 9); + G.insert(12, 10); + + REQUIRE_EQ(G.adjMatrix.size(), 13); + + algo::Frigioni rz(G); + rz.init(); + + SUBCASE("Frigioni::query") { + + } + + SUBCASE("Frigioni::remove") { + + } + } + + TEST_CASE("Frigioni 2") { + // 1 --> 2 --> 3 --> 1 + // 3 --> 4 --> 5 --> 3 + // 2 --> 6 --> 7 --> 8 --> 6 + // 6 --> 9 --> 10 --> 11 --> 12 --> 13 --> 9 + // 12 --> 10 + Digraph G; + G.insert(1, 2); + G.insert(2, 3); + G.insert(3, 1); + G.insert(3, 4); + G.insert(4, 5); + G.insert(5, 3); + G.insert(2, 6); + G.insert(6, 7); + G.insert(7, 8); + G.insert(7, 9); + G.insert(8, 6); + G.insert(6, 9); + G.insert(9, 10); + G.insert(10, 11); + G.insert(11, 12); + G.insert(12, 13); + G.insert(13, 9); + G.insert(12, 10); + + REQUIRE_EQ(G.adjMatrix.size(), 13); + + algo::Frigioni rz(G); + rz.init(); + + SUBCASE("Frigioni::query") { + + } + + SUBCASE("Frigioni::remove") { + + } + } + } \ No newline at end of file diff --git a/test/main.cc b/test/doctest.cc similarity index 100% rename from test/main.cc rename to test/doctest.cc diff --git a/test/fully_dynamic_test.cc b/test/fully_dynamic_test.cc new file mode 100644 index 0000000..37978ce --- /dev/null +++ b/test/fully_dynamic_test.cc @@ -0,0 +1,14 @@ +#include + +#include "algorithm/decremental_scc.h" +#include "algorithm/frigioni.h" + +using namespace graph; + +TEST_SUITE("Fully dynamic algorithms") { + + TEST_CASE("Fully dynamic 1") { + + } + +} \ No newline at end of file