├── .github
└── workflows
│ ├── ci.yml
│ └── pr.yml
├── .gitignore
├── CONTRIBUTING.md
├── README.md
├── cddl-1.0.txt
├── gpl-3.0.txt
├── pom.xml
└── src
├── main
├── assembly
│ └── jar.xml
└── resources
│ └── org
│ └── gephi
│ └── license-header.txt
└── test
├── java
└── org
│ └── gephi
│ └── toolkit
│ ├── AppearanceTest.java
│ ├── ExportTest.java
│ ├── FilteringTest.java
│ ├── GeneratorTest.java
│ ├── ImportTest.java
│ ├── ProjectIOTest.java
│ ├── SQLLiteImportTest.java
│ ├── StatisticsTest.java
│ └── ToolkitTest.java
└── resources
└── org
└── gephi
└── toolkit
├── LesMiserables.gexf
├── lesmiserables.gml
├── lesmiserables.sqlite3
├── timeframe1.gexf
├── timeframe2.gexf
└── timeframe3.gexf
/.github/workflows/ci.yml:
--------------------------------------------------------------------------------
1 | name: CI
2 |
3 | on:
4 | push:
5 | branches: [ master ]
6 |
7 | jobs:
8 | build:
9 | runs-on: ubuntu-latest
10 | steps:
11 | - uses: actions/checkout@v4
12 | - name: Set up Maven Central Repository
13 | uses: actions/setup-java@v4
14 | with:
15 | java-version: '11'
16 | distribution: 'temurin'
17 | server-id: ossrh
18 | server-username: OSSRH_USER
19 | server-password: OSSRH_PASS
20 | gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }}
21 | gpg-passphrase: GPG_PASSPHRASE
22 | - name: Publish package
23 | run: mvn -B -Djava.awt.headless=true deploy
24 | env:
25 | OSSRH_USER: ${{ secrets.OSSRH_TOKEN_USER }}
26 | OSSRH_PASS: ${{ secrets.OSSRH_TOKEN_PASSWD }}
27 | GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
28 |
--------------------------------------------------------------------------------
/.github/workflows/pr.yml:
--------------------------------------------------------------------------------
1 | name: pr
2 |
3 | on: [pull_request]
4 |
5 | jobs:
6 | build:
7 | runs-on: ${{ matrix.os }}
8 | strategy:
9 | matrix:
10 | os: [ubuntu-latest]
11 | java: ['11', '17']
12 | distribution: ['temurin']
13 | fail-fast: false
14 | name: ${{ matrix.os }} JDK ${{ matrix.distribution }} ${{ matrix.java }}
15 | steps:
16 | - name: Git checkout
17 | uses: actions/checkout@v3
18 | - name: Set up JDK
19 | id: setupjdk
20 | uses: actions/setup-java@v3
21 | with:
22 | distribution: ${{ matrix.distribution }}
23 | java-version: ${{ matrix.java }}
24 | - name: Build with Maven
25 | run: mvn -B -Djava.awt.headless=true verify
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | **/target
3 | /target/
4 | *.iml
5 | *.idea
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributor Guide
2 |
3 | This document guides you through the process of contributing to the Gephi Toolkit. It is a living document and will be updated as the project evolves.
4 |
5 | As the Gephi Toolkit is just an aggregation of Gephi's modules, it doesn't contain any source code besides integration tests. To directly contribute to the Toolkit's capabilities, you need to contribute to Gephi's modules.
6 |
7 | ## Integration Tests
8 |
9 | Integration tests are a set of Gephi Toolkit tests that mimic real-world applications and use cases. They are located in the [src/test](https://github.com/gephi/gephi-toolkit/tree/master/src/test) folder. You can contribute by extending this set of tests. The more extensive, the more reliable the toolkit will be.
10 |
11 | The tests are written in [JUnit](https://github.com/junit-team/junit4) and use the Gephi APIs to execute tasks. If you find a bug, please report it directly on Gephi's [issue tracker](https://github.com/gephi/gephi/issues). Best if you can attach a test case that reproduces the bug.
12 |
13 | ## Other JVM languages
14 |
15 | The Gephi Toolkit is written in Java, but it can be used from other JVM languages like Scala or Kotlin. You can contribute by adding examples in these languages.
16 |
17 | You can get inspired by the existing [Toolkit Demos](https://github.com/gephi/gephi-toolkit-demos) written in Java. This repository is currently only Java but we would like to add examples in other languages so feel free to get started.
18 |
19 | ## Algorithms
20 |
21 | As a researcher or an algorithm practitioner, you can contribute to the Gephi Toolkit by improving the algorithms' robustness, performance, and accuracy. Notably, standard graph algorithms like Connected Components or PageRank are already implemented in the toolkit, but they can be improved. For instance:
22 | * Compare Gephi's implementation with the reference paper and see if the code is correct. Also check if the paper describes parameters not editable in the current implementation.
23 | * Write or improve existing unit tests. Unit tests are essential and should be particularly thorough for algorithms as researchers rely on them for their work.
24 | * Improve the implementation's performance by using more efficient data structures or algorithms. To do that thoroughly, you can use a profiler like [YourKit](https://www.yourkit.com/) or [JMH](https://github.com/openjdk/jmh).
25 | * Improve the code documentation so the implementation is easier to understand and maintain. The best is to use the same notation as the reference paper.
26 | * Compare implementation and corner cases with other graph libraries. While it's not always possible, it's best if all major graph libraries return the same results for the same input. Raise issues on GitHub if you find any discrepancies.
27 |
28 | You can also contribute by adding new algorithms to Gephi. A good way to start is to implement a [plugin](https://github.com/gephi/gephi-plugins).
29 |
30 | There are various algorithms implement in Gephi:
31 | * Shortest paths are in the [AlgorithmsPlugin](https://github.com/gephi/gephi/tree/master/modules/AlgorithmsPlugin) module.
32 | * Generators are in the [GeneratorPlugin](https://github.com/gephi/gephi/tree/master/modules/GeneratorPlugin) module.
33 | * Layouts are in the [LayoutPlugin](https://github.com/gephi/gephi/tree/master/modules/LayoutPlugin) module.
34 | * Graph algorithms and community detection are in the [StatisticsPlugin](https://github.com/gephi/gephi/tree/master/modules/StatisticsPlugin) module.
35 |
36 | An excellent way to start is also to look at the [open issues related to algorithms](https://github.com/gephi/gephi/issues?q=is%3Aopen+is%3Aissue+label%3AStatistics).
37 |
38 | ## Community support
39 |
40 | Engage with the community's questions directly on [GitHub Discussions](https://github.com/gephi/gephi-toolkit/discussions). Any help is appreciated.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Gephi Toolkit - All Gephi in one library
2 | [](https://github.com/gephi/gephi-toolkit/actions/workflows/ci.yml)
3 | [](https://javadoc.io/doc/org.gephi/gephi-toolkit)
4 |
5 | The [Gephi](http://gephi.org) Toolkit project packages essential Gephi modules (Graph, Layout, Filters, IO…) in a standard Java library. It can be used on a server or command-line tool to do the same things Gephi does, but programmatically.
6 |
7 | It follows the same versioning as Gephi. A new version of the toolkit is released when a new version of Gephi is released.
8 |
9 | ## Use the toolkit
10 |
11 | Best way to start is through examples on [Toolkit Demos](https://github.com/gephi/gephi-toolkit-demos). It shows examples how to use the toolkit. If you need support, the community can help you on [Discussions](https://github.com/gephi/gephi-toolkit/discussions/categories/q-a).
12 |
13 | - [Gephi Toolkit Tutorial](http://www.slideshare.net/gephi/gephi-toolkit-tutorialtoolkit)
14 |
15 | - [Code examples](https://github.com/gephi/gephi-toolkit-demos)
16 |
17 | - [Javadoc](https://www.javadoc.io/doc/org.gephi/gephi-toolkit/latest/index.html)
18 |
19 | #### From a Maven project
20 |
21 | ```xml
22 |
23 | org.gephi
24 | gephi-toolkit
25 | 0.10.1
26 |
27 | ```
28 |
29 | #### From a Gradle project
30 |
31 | ```
32 | compile 'org.gephi:gephi-toolkit:0.10.1'
33 | ```
34 |
35 | #### From a Scala SBT Project
36 |
37 | ```
38 | resolvers ++= Seq(
39 | "gephi-thirdparty" at "https://raw.github.com/gephi/gephi/mvn-thirdparty-repo/"
40 | )
41 |
42 | libraryDependencies += "org.gephi" % "gephi-toolkit" % "0.10.1" classifier "all"
43 | ```
44 |
45 | ## Latest releases
46 |
47 | ### Stable
48 |
49 | - Latest stable release on [gephi.org](http://gephi.org/toolkit).
50 |
51 | ### Development Build
52 |
53 | - [gephi-toolkit-0.10.2-SNAPSHOT-all.jar](https://oss.sonatype.org/service/local/artifact/maven/content?r=snapshots&g=org.gephi&a=gephi-toolkit&v=0.10-2-SNAPSHOT&c=all)
54 |
55 | ### Development Build (Maven)
56 |
57 | If you use Maven you can directly depend on the latest development version of the toolkit (i.e the -SNAPSHOT version).
58 |
59 | - Add the Gephi repository
60 |
61 | ```xml
62 |
63 | ...
64 |
65 |
66 | oss-sonatype
67 | oss-sonatype
68 | https://oss.sonatype.org/content/repositories/snapshots/
69 |
70 | true
71 |
72 |
73 |
74 | ...
75 |
76 | ```
77 |
78 | - Add the dependency
79 |
80 | ```xml
81 |
82 | ...
83 |
84 |
85 | org.gephi
86 | gephi-toolkit
87 | 0.10.2-SNAPSHOT
88 |
89 | ...
90 |
91 | ...
92 |
93 | ```
94 |
95 | ## Build
96 |
97 | The Gephi Toolkit is entirely based on Gephi's source code and packages the core modules in a single JAR.
98 |
99 | It sources its Gephi dependencies from [Maven Central](https://central.sonatype.com/namespace/org.gephi).
100 |
101 | ### Requirements
102 |
103 | - Java JDK 11.
104 |
105 | - [Apache Maven](http://maven.apache.org/) version 3.6.3 or later
106 |
107 | ### Checkout and Build the sources
108 |
109 | - Fork the repository and clone
110 |
111 | git clone git@github.com:username/gephi-toolkit.git
112 |
113 | - Run the following command or open the project in an IDE like NetBeans or IntelliJ IDEA
114 |
115 | mvn clean install
116 |
117 | ### Can the Toolkit use plugins?
118 |
119 | Yes that is possible if the plug-in doesn’t depend on something not included in the Toolkit, for instance the UI. If that happens, it is likely that the plug-in has been divided in several modules, and in that case one need only the core and can exclude the UI.
120 | Consult this [HowTo](https://github.com/gephi/gephi/wiki/How-to-use-plug-ins-with-the-Toolkit) page to know how to extract the plugin JARs from the NBM file. Once you have the JARs, include them in your project’s classpath, in addition of the Gephi Toolkit.
121 |
122 | ### Can it depends on a development version of Gephi?
123 |
124 | Yes, either a snapshot or a locally built version.
125 |
126 | To build it based on your own locally-built Gephi do the following:
127 |
128 | - Build Gephi from its own repository normally (`mvn clean install`)
129 | - This should have installed or overwritten all modules artefacts within your local Maven directory, usually `$USERHOME/.m2`
130 | - Rebuild the toolkit, making sure to depend on the Gephi's version you just built
131 |
132 | ## License
133 |
134 | Gephi's source code is distributed under the dual license [CDDL 1.0](http://www.opensource.org/licenses/CDDL-1.0) and [GNU General Public License v3](http://www.gnu.org/licenses/gpl.html). Read the [Legal FAQs](https://gephi.org/legal/faq/) to learn more.
135 |
--------------------------------------------------------------------------------
/cddl-1.0.txt:
--------------------------------------------------------------------------------
1 | Unless otherwise noted, all files in this distribution are released
2 | under the Common Development and Distribution License (CDDL).
3 | Exceptions are noted within the associated source files.
4 |
5 | --------------------------------------------------------------------
6 |
7 |
8 | COMMON DEVELOPMENT AND DISTRIBUTION LICENSE Version 1.0
9 |
10 | 1. Definitions.
11 |
12 | 1.1. "Contributor" means each individual or entity that creates
13 | or contributes to the creation of Modifications.
14 |
15 | 1.2. "Contributor Version" means the combination of the Original
16 | Software, prior Modifications used by a Contributor (if any),
17 | and the Modifications made by that particular Contributor.
18 |
19 | 1.3. "Covered Software" means (a) the Original Software, or (b)
20 | Modifications, or (c) the combination of files containing
21 | Original Software with files containing Modifications, in
22 | each case including portions thereof.
23 |
24 | 1.4. "Executable" means the Covered Software in any form other
25 | than Source Code.
26 |
27 | 1.5. "Initial Developer" means the individual or entity that first
28 | makes Original Software available under this License.
29 |
30 | 1.6. "Larger Work" means a work which combines Covered Software or
31 | portions thereof with code not governed by the terms of this
32 | License.
33 |
34 | 1.7. "License" means this document.
35 |
36 | 1.8. "Licensable" means having the right to grant, to the maximum
37 | extent possible, whether at the time of the initial grant or
38 | subsequently acquired, any and all of the rights conveyed
39 | herein.
40 |
41 | 1.9. "Modifications" means the Source Code and Executable form of
42 | any of the following:
43 |
44 | A. Any file that results from an addition to, deletion from or
45 | modification of the contents of a file containing Original
46 | Software or previous Modifications;
47 |
48 | B. Any new file that contains any part of the Original
49 | Software or previous Modifications; or
50 |
51 | C. Any new file that is contributed or otherwise made
52 | available under the terms of this License.
53 |
54 | 1.10. "Original Software" means the Source Code and Executable
55 | form of computer software code that is originally released
56 | under this License.
57 |
58 | 1.11. "Patent Claims" means any patent claim(s), now owned or
59 | hereafter acquired, including without limitation, method,
60 | process, and apparatus claims, in any patent Licensable by
61 | grantor.
62 |
63 | 1.12. "Source Code" means (a) the common form of computer software
64 | code in which modifications are made and (b) associated
65 | documentation included in or with such code.
66 |
67 | 1.13. "You" (or "Your") means an individual or a legal entity
68 | exercising rights under, and complying with all of the terms
69 | of, this License. For legal entities, "You" includes any
70 | entity which controls, is controlled by, or is under common
71 | control with You. For purposes of this definition,
72 | "control" means (a) the power, direct or indirect, to cause
73 | the direction or management of such entity, whether by
74 | contract or otherwise, or (b) ownership of more than fifty
75 | percent (50%) of the outstanding shares or beneficial
76 | ownership of such entity.
77 |
78 | 2. License Grants.
79 |
80 | 2.1. The Initial Developer Grant.
81 |
82 | Conditioned upon Your compliance with Section 3.1 below and
83 | subject to third party intellectual property claims, the Initial
84 | Developer hereby grants You a world-wide, royalty-free,
85 | non-exclusive license:
86 |
87 | (a) under intellectual property rights (other than patent or
88 | trademark) Licensable by Initial Developer, to use,
89 | reproduce, modify, display, perform, sublicense and
90 | distribute the Original Software (or portions thereof),
91 | with or without Modifications, and/or as part of a Larger
92 | Work; and
93 |
94 | (b) under Patent Claims infringed by the making, using or
95 | selling of Original Software, to make, have made, use,
96 | practice, sell, and offer for sale, and/or otherwise
97 | dispose of the Original Software (or portions thereof).
98 |
99 | (c) The licenses granted in Sections 2.1(a) and (b) are
100 | effective on the date Initial Developer first distributes
101 | or otherwise makes the Original Software available to a
102 | third party under the terms of this License.
103 |
104 | (d) Notwithstanding Section 2.1(b) above, no patent license is
105 | granted: (1) for code that You delete from the Original
106 | Software, or (2) for infringements caused by: (i) the
107 | modification of the Original Software, or (ii) the
108 | combination of the Original Software with other software
109 | or devices.
110 |
111 | 2.2. Contributor Grant.
112 |
113 | Conditioned upon Your compliance with Section 3.1 below and
114 | subject to third party intellectual property claims, each
115 | Contributor hereby grants You a world-wide, royalty-free,
116 | non-exclusive license:
117 |
118 | (a) under intellectual property rights (other than patent or
119 | trademark) Licensable by Contributor to use, reproduce,
120 | modify, display, perform, sublicense and distribute the
121 | Modifications created by such Contributor (or portions
122 | thereof), either on an unmodified basis, with other
123 | Modifications, as Covered Software and/or as part of a
124 | Larger Work; and
125 |
126 | (b) under Patent Claims infringed by the making, using, or
127 | selling of Modifications made by that Contributor either
128 | alone and/or in combination with its Contributor Version
129 | (or portions of such combination), to make, use, sell,
130 | offer for sale, have made, and/or otherwise dispose of:
131 | (1) Modifications made by that Contributor (or portions
132 | thereof); and (2) the combination of Modifications made by
133 | that Contributor with its Contributor Version (or portions
134 | of such combination).
135 |
136 | (c) The licenses granted in Sections 2.2(a) and 2.2(b) are
137 | effective on the date Contributor first distributes or
138 | otherwise makes the Modifications available to a third
139 | party.
140 |
141 | (d) Notwithstanding Section 2.2(b) above, no patent license is
142 | granted: (1) for any code that Contributor has deleted
143 | from the Contributor Version; (2) for infringements caused
144 | by: (i) third party modifications of Contributor Version,
145 | or (ii) the combination of Modifications made by that
146 | Contributor with other software (except as part of the
147 | Contributor Version) or other devices; or (3) under Patent
148 | Claims infringed by Covered Software in the absence of
149 | Modifications made by that Contributor.
150 |
151 | 3. Distribution Obligations.
152 |
153 | 3.1. Availability of Source Code.
154 |
155 | Any Covered Software that You distribute or otherwise make
156 | available in Executable form must also be made available in Source
157 | Code form and that Source Code form must be distributed only under
158 | the terms of this License. You must include a copy of this
159 | License with every copy of the Source Code form of the Covered
160 | Software You distribute or otherwise make available. You must
161 | inform recipients of any such Covered Software in Executable form
162 | as to how they can obtain such Covered Software in Source Code
163 | form in a reasonable manner on or through a medium customarily
164 | used for software exchange.
165 |
166 | 3.2. Modifications.
167 |
168 | The Modifications that You create or to which You contribute are
169 | governed by the terms of this License. You represent that You
170 | believe Your Modifications are Your original creation(s) and/or
171 | You have sufficient rights to grant the rights conveyed by this
172 | License.
173 |
174 | 3.3. Required Notices.
175 |
176 | You must include a notice in each of Your Modifications that
177 | identifies You as the Contributor of the Modification. You may
178 | not remove or alter any copyright, patent or trademark notices
179 | contained within the Covered Software, or any notices of licensing
180 | or any descriptive text giving attribution to any Contributor or
181 | the Initial Developer.
182 |
183 | 3.4. Application of Additional Terms.
184 |
185 | You may not offer or impose any terms on any Covered Software in
186 | Source Code form that alters or restricts the applicable version
187 | of this License or the recipients' rights hereunder. You may
188 | choose to offer, and to charge a fee for, warranty, support,
189 | indemnity or liability obligations to one or more recipients of
190 | Covered Software. However, you may do so only on Your own behalf,
191 | and not on behalf of the Initial Developer or any Contributor.
192 | You must make it absolutely clear that any such warranty, support,
193 | indemnity or liability obligation is offered by You alone, and You
194 | hereby agree to indemnify the Initial Developer and every
195 | Contributor for any liability incurred by the Initial Developer or
196 | such Contributor as a result of warranty, support, indemnity or
197 | liability terms You offer.
198 |
199 | 3.5. Distribution of Executable Versions.
200 |
201 | You may distribute the Executable form of the Covered Software
202 | under the terms of this License or under the terms of a license of
203 | Your choice, which may contain terms different from this License,
204 | provided that You are in compliance with the terms of this License
205 | and that the license for the Executable form does not attempt to
206 | limit or alter the recipient's rights in the Source Code form from
207 | the rights set forth in this License. If You distribute the
208 | Covered Software in Executable form under a different license, You
209 | must make it absolutely clear that any terms which differ from
210 | this License are offered by You alone, not by the Initial
211 | Developer or Contributor. You hereby agree to indemnify the
212 | Initial Developer and every Contributor for any liability incurred
213 | by the Initial Developer or such Contributor as a result of any
214 | such terms You offer.
215 |
216 | 3.6. Larger Works.
217 |
218 | You may create a Larger Work by combining Covered Software with
219 | other code not governed by the terms of this License and
220 | distribute the Larger Work as a single product. In such a case,
221 | You must make sure the requirements of this License are fulfilled
222 | for the Covered Software.
223 |
224 | 4. Versions of the License.
225 |
226 | 4.1. New Versions.
227 |
228 | Sun Microsystems, Inc. is the initial license steward and may
229 | publish revised and/or new versions of this License from time to
230 | time. Each version will be given a distinguishing version number.
231 | Except as provided in Section 4.3, no one other than the license
232 | steward has the right to modify this License.
233 |
234 | 4.2. Effect of New Versions.
235 |
236 | You may always continue to use, distribute or otherwise make the
237 | Covered Software available under the terms of the version of the
238 | License under which You originally received the Covered Software.
239 | If the Initial Developer includes a notice in the Original
240 | Software prohibiting it from being distributed or otherwise made
241 | available under any subsequent version of the License, You must
242 | distribute and make the Covered Software available under the terms
243 | of the version of the License under which You originally received
244 | the Covered Software. Otherwise, You may also choose to use,
245 | distribute or otherwise make the Covered Software available under
246 | the terms of any subsequent version of the License published by
247 | the license steward.
248 |
249 | 4.3. Modified Versions.
250 |
251 | When You are an Initial Developer and You want to create a new
252 | license for Your Original Software, You may create and use a
253 | modified version of this License if You: (a) rename the license
254 | and remove any references to the name of the license steward
255 | (except to note that the license differs from this License); and
256 | (b) otherwise make it clear that the license contains terms which
257 | differ from this License.
258 |
259 | 5. DISCLAIMER OF WARRANTY.
260 |
261 | COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS"
262 | BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
263 | INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED
264 | SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR
265 | PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND
266 | PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY
267 | COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE
268 | INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY
269 | NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF
270 | WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
271 | ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS
272 | DISCLAIMER.
273 |
274 | 6. TERMINATION.
275 |
276 | 6.1. This License and the rights granted hereunder will terminate
277 | automatically if You fail to comply with terms herein and fail to
278 | cure such breach within 30 days of becoming aware of the breach.
279 | Provisions which, by their nature, must remain in effect beyond
280 | the termination of this License shall survive.
281 |
282 | 6.2. If You assert a patent infringement claim (excluding
283 | declaratory judgment actions) against Initial Developer or a
284 | Contributor (the Initial Developer or Contributor against whom You
285 | assert such claim is referred to as "Participant") alleging that
286 | the Participant Software (meaning the Contributor Version where
287 | the Participant is a Contributor or the Original Software where
288 | the Participant is the Initial Developer) directly or indirectly
289 | infringes any patent, then any and all rights granted directly or
290 | indirectly to You by such Participant, the Initial Developer (if
291 | the Initial Developer is not the Participant) and all Contributors
292 | under Sections 2.1 and/or 2.2 of this License shall, upon 60 days
293 | notice from Participant terminate prospectively and automatically
294 | at the expiration of such 60 day notice period, unless if within
295 | such 60 day period You withdraw Your claim with respect to the
296 | Participant Software against such Participant either unilaterally
297 | or pursuant to a written agreement with Participant.
298 |
299 | 6.3. In the event of termination under Sections 6.1 or 6.2 above,
300 | all end user licenses that have been validly granted by You or any
301 | distributor hereunder prior to termination (excluding licenses
302 | granted to You by any distributor) shall survive termination.
303 |
304 | 7. LIMITATION OF LIABILITY.
305 |
306 | UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
307 | (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE
308 | INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF
309 | COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE
310 | LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
311 | CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT
312 | LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK
313 | STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
314 | COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
315 | INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
316 | LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL
317 | INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT
318 | APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO
319 | NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
320 | CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT
321 | APPLY TO YOU.
322 |
323 | 8. U.S. GOVERNMENT END USERS.
324 |
325 | The Covered Software is a "commercial item," as that term is
326 | defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial
327 | computer software" (as that term is defined at 48
328 | C.F.R. 252.227-7014(a)(1)) and "commercial computer software
329 | documentation" as such terms are used in 48 C.F.R. 12.212
330 | (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48
331 | C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all
332 | U.S. Government End Users acquire Covered Software with only those
333 | rights set forth herein. This U.S. Government Rights clause is in
334 | lieu of, and supersedes, any other FAR, DFAR, or other clause or
335 | provision that addresses Government rights in computer software
336 | under this License.
337 |
338 | 9. MISCELLANEOUS.
339 |
340 | This License represents the complete agreement concerning subject
341 | matter hereof. If any provision of this License is held to be
342 | unenforceable, such provision shall be reformed only to the extent
343 | necessary to make it enforceable. This License shall be governed
344 | by the law of the jurisdiction specified in a notice contained
345 | within the Original Software (except to the extent applicable law,
346 | if any, provides otherwise), excluding such jurisdiction's
347 | conflict-of-law provisions. Any litigation relating to this
348 | License shall be subject to the jurisdiction of the courts located
349 | in the jurisdiction and venue specified in a notice contained
350 | within the Original Software, with the losing party responsible
351 | for costs, including, without limitation, court costs and
352 | reasonable attorneys' fees and expenses. The application of the
353 | United Nations Convention on Contracts for the International Sale
354 | of Goods is expressly excluded. Any law or regulation which
355 | provides that the language of a contract shall be construed
356 | against the drafter shall not apply to this License. You agree
357 | that You alone are responsible for compliance with the United
358 | States export administration regulations (and the export control
359 | laws and regulation of any other countries) when You use,
360 | distribute or otherwise make available any Covered Software.
361 |
362 | 10. RESPONSIBILITY FOR CLAIMS.
363 |
364 | As between Initial Developer and the Contributors, each party is
365 | responsible for claims and damages arising, directly or
366 | indirectly, out of its utilization of rights under this License
367 | and You agree to work with Initial Developer and Contributors to
368 | distribute such responsibility on an equitable basis. Nothing
369 | herein is intended or shall be deemed to constitute any admission
370 | of liability.
371 |
372 | --------------------------------------------------------------------
373 |
374 | NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND
375 | DISTRIBUTION LICENSE (CDDL)
376 |
377 | For Covered Software in this distribution, this License shall
378 | be governed by the laws of the State of California (excluding
379 | conflict-of-law provisions).
380 |
381 | Any litigation relating to this License shall be subject to the
382 | jurisdiction of the Federal Courts of the Northern District of
383 | California and the state courts of the State of California, with
384 | venue lying in Santa Clara County, California.
385 |
--------------------------------------------------------------------------------
/gpl-3.0.txt:
--------------------------------------------------------------------------------
1 | GNU GENERAL PUBLIC LICENSE
2 | Version 3, 29 June 2007
3 |
4 | Copyright (C) 2007 Free Software Foundation, Inc.
5 | Everyone is permitted to copy and distribute verbatim copies
6 | of this license document, but changing it is not allowed.
7 |
8 | Preamble
9 |
10 | The GNU General Public License is a free, copyleft license for
11 | software and other kinds of works.
12 |
13 | The licenses for most software and other practical works are designed
14 | to take away your freedom to share and change the works. By contrast,
15 | the GNU General Public License is intended to guarantee your freedom to
16 | share and change all versions of a program--to make sure it remains free
17 | software for all its users. We, the Free Software Foundation, use the
18 | GNU General Public License for most of our software; it applies also to
19 | any other work released this way by its authors. You can apply it to
20 | your programs, too.
21 |
22 | When we speak of free software, we are referring to freedom, not
23 | price. Our General Public Licenses are designed to make sure that you
24 | have the freedom to distribute copies of free software (and charge for
25 | them if you wish), that you receive source code or can get it if you
26 | want it, that you can change the software or use pieces of it in new
27 | free programs, and that you know you can do these things.
28 |
29 | To protect your rights, we need to prevent others from denying you
30 | these rights or asking you to surrender the rights. Therefore, you have
31 | certain responsibilities if you distribute copies of the software, or if
32 | you modify it: responsibilities to respect the freedom of others.
33 |
34 | For example, if you distribute copies of such a program, whether
35 | gratis or for a fee, you must pass on to the recipients the same
36 | freedoms that you received. You must make sure that they, too, receive
37 | or can get the source code. And you must show them these terms so they
38 | know their rights.
39 |
40 | Developers that use the GNU GPL protect your rights with two steps:
41 | (1) assert copyright on the software, and (2) offer you this License
42 | giving you legal permission to copy, distribute and/or modify it.
43 |
44 | For the developers' and authors' protection, the GPL clearly explains
45 | that there is no warranty for this free software. For both users' and
46 | authors' sake, the GPL requires that modified versions be marked as
47 | changed, so that their problems will not be attributed erroneously to
48 | authors of previous versions.
49 |
50 | Some devices are designed to deny users access to install or run
51 | modified versions of the software inside them, although the manufacturer
52 | can do so. This is fundamentally incompatible with the aim of
53 | protecting users' freedom to change the software. The systematic
54 | pattern of such abuse occurs in the area of products for individuals to
55 | use, which is precisely where it is most unacceptable. Therefore, we
56 | have designed this version of the GPL to prohibit the practice for those
57 | products. If such problems arise substantially in other domains, we
58 | stand ready to extend this provision to those domains in future versions
59 | of the GPL, as needed to protect the freedom of users.
60 |
61 | Finally, every program is threatened constantly by software patents.
62 | States should not allow patents to restrict development and use of
63 | software on general-purpose computers, but in those that do, we wish to
64 | avoid the special danger that patents applied to a free program could
65 | make it effectively proprietary. To prevent this, the GPL assures that
66 | patents cannot be used to render the program non-free.
67 |
68 | The precise terms and conditions for copying, distribution and
69 | modification follow.
70 |
71 | TERMS AND CONDITIONS
72 |
73 | 0. Definitions.
74 |
75 | "This License" refers to version 3 of the GNU General Public License.
76 |
77 | "Copyright" also means copyright-like laws that apply to other kinds of
78 | works, such as semiconductor masks.
79 |
80 | "The Program" refers to any copyrightable work licensed under this
81 | License. Each licensee is addressed as "you". "Licensees" and
82 | "recipients" may be individuals or organizations.
83 |
84 | To "modify" a work means to copy from or adapt all or part of the work
85 | in a fashion requiring copyright permission, other than the making of an
86 | exact copy. The resulting work is called a "modified version" of the
87 | earlier work or a work "based on" the earlier work.
88 |
89 | A "covered work" means either the unmodified Program or a work based
90 | on the Program.
91 |
92 | To "propagate" a work means to do anything with it that, without
93 | permission, would make you directly or secondarily liable for
94 | infringement under applicable copyright law, except executing it on a
95 | computer or modifying a private copy. Propagation includes copying,
96 | distribution (with or without modification), making available to the
97 | public, and in some countries other activities as well.
98 |
99 | To "convey" a work means any kind of propagation that enables other
100 | parties to make or receive copies. Mere interaction with a user through
101 | a computer network, with no transfer of a copy, is not conveying.
102 |
103 | An interactive user interface displays "Appropriate Legal Notices"
104 | to the extent that it includes a convenient and prominently visible
105 | feature that (1) displays an appropriate copyright notice, and (2)
106 | tells the user that there is no warranty for the work (except to the
107 | extent that warranties are provided), that licensees may convey the
108 | work under this License, and how to view a copy of this License. If
109 | the interface presents a list of user commands or options, such as a
110 | menu, a prominent item in the list meets this criterion.
111 |
112 | 1. Source Code.
113 |
114 | The "source code" for a work means the preferred form of the work
115 | for making modifications to it. "Object code" means any non-source
116 | form of a work.
117 |
118 | A "Standard Interface" means an interface that either is an official
119 | standard defined by a recognized standards body, or, in the case of
120 | interfaces specified for a particular programming language, one that
121 | is widely used among developers working in that language.
122 |
123 | The "System Libraries" of an executable work include anything, other
124 | than the work as a whole, that (a) is included in the normal form of
125 | packaging a Major Component, but which is not part of that Major
126 | Component, and (b) serves only to enable use of the work with that
127 | Major Component, or to implement a Standard Interface for which an
128 | implementation is available to the public in source code form. A
129 | "Major Component", in this context, means a major essential component
130 | (kernel, window system, and so on) of the specific operating system
131 | (if any) on which the executable work runs, or a compiler used to
132 | produce the work, or an object code interpreter used to run it.
133 |
134 | The "Corresponding Source" for a work in object code form means all
135 | the source code needed to generate, install, and (for an executable
136 | work) run the object code and to modify the work, including scripts to
137 | control those activities. However, it does not include the work's
138 | System Libraries, or general-purpose tools or generally available free
139 | programs which are used unmodified in performing those activities but
140 | which are not part of the work. For example, Corresponding Source
141 | includes interface definition files associated with source files for
142 | the work, and the source code for shared libraries and dynamically
143 | linked subprograms that the work is specifically designed to require,
144 | such as by intimate data communication or control flow between those
145 | subprograms and other parts of the work.
146 |
147 | The Corresponding Source need not include anything that users
148 | can regenerate automatically from other parts of the Corresponding
149 | Source.
150 |
151 | The Corresponding Source for a work in source code form is that
152 | same work.
153 |
154 | 2. Basic Permissions.
155 |
156 | All rights granted under this License are granted for the term of
157 | copyright on the Program, and are irrevocable provided the stated
158 | conditions are met. This License explicitly affirms your unlimited
159 | permission to run the unmodified Program. The output from running a
160 | covered work is covered by this License only if the output, given its
161 | content, constitutes a covered work. This License acknowledges your
162 | rights of fair use or other equivalent, as provided by copyright law.
163 |
164 | You may make, run and propagate covered works that you do not
165 | convey, without conditions so long as your license otherwise remains
166 | in force. You may convey covered works to others for the sole purpose
167 | of having them make modifications exclusively for you, or provide you
168 | with facilities for running those works, provided that you comply with
169 | the terms of this License in conveying all material for which you do
170 | not control copyright. Those thus making or running the covered works
171 | for you must do so exclusively on your behalf, under your direction
172 | and control, on terms that prohibit them from making any copies of
173 | your copyrighted material outside their relationship with you.
174 |
175 | Conveying under any other circumstances is permitted solely under
176 | the conditions stated below. Sublicensing is not allowed; section 10
177 | makes it unnecessary.
178 |
179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
180 |
181 | No covered work shall be deemed part of an effective technological
182 | measure under any applicable law fulfilling obligations under article
183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or
184 | similar laws prohibiting or restricting circumvention of such
185 | measures.
186 |
187 | When you convey a covered work, you waive any legal power to forbid
188 | circumvention of technological measures to the extent such circumvention
189 | is effected by exercising rights under this License with respect to
190 | the covered work, and you disclaim any intention to limit operation or
191 | modification of the work as a means of enforcing, against the work's
192 | users, your or third parties' legal rights to forbid circumvention of
193 | technological measures.
194 |
195 | 4. Conveying Verbatim Copies.
196 |
197 | You may convey verbatim copies of the Program's source code as you
198 | receive it, in any medium, provided that you conspicuously and
199 | appropriately publish on each copy an appropriate copyright notice;
200 | keep intact all notices stating that this License and any
201 | non-permissive terms added in accord with section 7 apply to the code;
202 | keep intact all notices of the absence of any warranty; and give all
203 | recipients a copy of this License along with the Program.
204 |
205 | You may charge any price or no price for each copy that you convey,
206 | and you may offer support or warranty protection for a fee.
207 |
208 | 5. Conveying Modified Source Versions.
209 |
210 | You may convey a work based on the Program, or the modifications to
211 | produce it from the Program, in the form of source code under the
212 | terms of section 4, provided that you also meet all of these conditions:
213 |
214 | a) The work must carry prominent notices stating that you modified
215 | it, and giving a relevant date.
216 |
217 | b) The work must carry prominent notices stating that it is
218 | released under this License and any conditions added under section
219 | 7. This requirement modifies the requirement in section 4 to
220 | "keep intact all notices".
221 |
222 | c) You must license the entire work, as a whole, under this
223 | License to anyone who comes into possession of a copy. This
224 | License will therefore apply, along with any applicable section 7
225 | additional terms, to the whole of the work, and all its parts,
226 | regardless of how they are packaged. This License gives no
227 | permission to license the work in any other way, but it does not
228 | invalidate such permission if you have separately received it.
229 |
230 | d) If the work has interactive user interfaces, each must display
231 | Appropriate Legal Notices; however, if the Program has interactive
232 | interfaces that do not display Appropriate Legal Notices, your
233 | work need not make them do so.
234 |
235 | A compilation of a covered work with other separate and independent
236 | works, which are not by their nature extensions of the covered work,
237 | and which are not combined with it such as to form a larger program,
238 | in or on a volume of a storage or distribution medium, is called an
239 | "aggregate" if the compilation and its resulting copyright are not
240 | used to limit the access or legal rights of the compilation's users
241 | beyond what the individual works permit. Inclusion of a covered work
242 | in an aggregate does not cause this License to apply to the other
243 | parts of the aggregate.
244 |
245 | 6. Conveying Non-Source Forms.
246 |
247 | You may convey a covered work in object code form under the terms
248 | of sections 4 and 5, provided that you also convey the
249 | machine-readable Corresponding Source under the terms of this License,
250 | in one of these ways:
251 |
252 | a) Convey the object code in, or embodied in, a physical product
253 | (including a physical distribution medium), accompanied by the
254 | Corresponding Source fixed on a durable physical medium
255 | customarily used for software interchange.
256 |
257 | b) Convey the object code in, or embodied in, a physical product
258 | (including a physical distribution medium), accompanied by a
259 | written offer, valid for at least three years and valid for as
260 | long as you offer spare parts or customer support for that product
261 | model, to give anyone who possesses the object code either (1) a
262 | copy of the Corresponding Source for all the software in the
263 | product that is covered by this License, on a durable physical
264 | medium customarily used for software interchange, for a price no
265 | more than your reasonable cost of physically performing this
266 | conveying of source, or (2) access to copy the
267 | Corresponding Source from a network server at no charge.
268 |
269 | c) Convey individual copies of the object code with a copy of the
270 | written offer to provide the Corresponding Source. This
271 | alternative is allowed only occasionally and noncommercially, and
272 | only if you received the object code with such an offer, in accord
273 | with subsection 6b.
274 |
275 | d) Convey the object code by offering access from a designated
276 | place (gratis or for a charge), and offer equivalent access to the
277 | Corresponding Source in the same way through the same place at no
278 | further charge. You need not require recipients to copy the
279 | Corresponding Source along with the object code. If the place to
280 | copy the object code is a network server, the Corresponding Source
281 | may be on a different server (operated by you or a third party)
282 | that supports equivalent copying facilities, provided you maintain
283 | clear directions next to the object code saying where to find the
284 | Corresponding Source. Regardless of what server hosts the
285 | Corresponding Source, you remain obligated to ensure that it is
286 | available for as long as needed to satisfy these requirements.
287 |
288 | e) Convey the object code using peer-to-peer transmission, provided
289 | you inform other peers where the object code and Corresponding
290 | Source of the work are being offered to the general public at no
291 | charge under subsection 6d.
292 |
293 | A separable portion of the object code, whose source code is excluded
294 | from the Corresponding Source as a System Library, need not be
295 | included in conveying the object code work.
296 |
297 | A "User Product" is either (1) a "consumer product", which means any
298 | tangible personal property which is normally used for personal, family,
299 | or household purposes, or (2) anything designed or sold for incorporation
300 | into a dwelling. In determining whether a product is a consumer product,
301 | doubtful cases shall be resolved in favor of coverage. For a particular
302 | product received by a particular user, "normally used" refers to a
303 | typical or common use of that class of product, regardless of the status
304 | of the particular user or of the way in which the particular user
305 | actually uses, or expects or is expected to use, the product. A product
306 | is a consumer product regardless of whether the product has substantial
307 | commercial, industrial or non-consumer uses, unless such uses represent
308 | the only significant mode of use of the product.
309 |
310 | "Installation Information" for a User Product means any methods,
311 | procedures, authorization keys, or other information required to install
312 | and execute modified versions of a covered work in that User Product from
313 | a modified version of its Corresponding Source. The information must
314 | suffice to ensure that the continued functioning of the modified object
315 | code is in no case prevented or interfered with solely because
316 | modification has been made.
317 |
318 | If you convey an object code work under this section in, or with, or
319 | specifically for use in, a User Product, and the conveying occurs as
320 | part of a transaction in which the right of possession and use of the
321 | User Product is transferred to the recipient in perpetuity or for a
322 | fixed term (regardless of how the transaction is characterized), the
323 | Corresponding Source conveyed under this section must be accompanied
324 | by the Installation Information. But this requirement does not apply
325 | if neither you nor any third party retains the ability to install
326 | modified object code on the User Product (for example, the work has
327 | been installed in ROM).
328 |
329 | The requirement to provide Installation Information does not include a
330 | requirement to continue to provide support service, warranty, or updates
331 | for a work that has been modified or installed by the recipient, or for
332 | the User Product in which it has been modified or installed. Access to a
333 | network may be denied when the modification itself materially and
334 | adversely affects the operation of the network or violates the rules and
335 | protocols for communication across the network.
336 |
337 | Corresponding Source conveyed, and Installation Information provided,
338 | in accord with this section must be in a format that is publicly
339 | documented (and with an implementation available to the public in
340 | source code form), and must require no special password or key for
341 | unpacking, reading or copying.
342 |
343 | 7. Additional Terms.
344 |
345 | "Additional permissions" are terms that supplement the terms of this
346 | License by making exceptions from one or more of its conditions.
347 | Additional permissions that are applicable to the entire Program shall
348 | be treated as though they were included in this License, to the extent
349 | that they are valid under applicable law. If additional permissions
350 | apply only to part of the Program, that part may be used separately
351 | under those permissions, but the entire Program remains governed by
352 | this License without regard to the additional permissions.
353 |
354 | When you convey a copy of a covered work, you may at your option
355 | remove any additional permissions from that copy, or from any part of
356 | it. (Additional permissions may be written to require their own
357 | removal in certain cases when you modify the work.) You may place
358 | additional permissions on material, added by you to a covered work,
359 | for which you have or can give appropriate copyright permission.
360 |
361 | Notwithstanding any other provision of this License, for material you
362 | add to a covered work, you may (if authorized by the copyright holders of
363 | that material) supplement the terms of this License with terms:
364 |
365 | a) Disclaiming warranty or limiting liability differently from the
366 | terms of sections 15 and 16 of this License; or
367 |
368 | b) Requiring preservation of specified reasonable legal notices or
369 | author attributions in that material or in the Appropriate Legal
370 | Notices displayed by works containing it; or
371 |
372 | c) Prohibiting misrepresentation of the origin of that material, or
373 | requiring that modified versions of such material be marked in
374 | reasonable ways as different from the original version; or
375 |
376 | d) Limiting the use for publicity purposes of names of licensors or
377 | authors of the material; or
378 |
379 | e) Declining to grant rights under trademark law for use of some
380 | trade names, trademarks, or service marks; or
381 |
382 | f) Requiring indemnification of licensors and authors of that
383 | material by anyone who conveys the material (or modified versions of
384 | it) with contractual assumptions of liability to the recipient, for
385 | any liability that these contractual assumptions directly impose on
386 | those licensors and authors.
387 |
388 | All other non-permissive additional terms are considered "further
389 | restrictions" within the meaning of section 10. If the Program as you
390 | received it, or any part of it, contains a notice stating that it is
391 | governed by this License along with a term that is a further
392 | restriction, you may remove that term. If a license document contains
393 | a further restriction but permits relicensing or conveying under this
394 | License, you may add to a covered work material governed by the terms
395 | of that license document, provided that the further restriction does
396 | not survive such relicensing or conveying.
397 |
398 | If you add terms to a covered work in accord with this section, you
399 | must place, in the relevant source files, a statement of the
400 | additional terms that apply to those files, or a notice indicating
401 | where to find the applicable terms.
402 |
403 | Additional terms, permissive or non-permissive, may be stated in the
404 | form of a separately written license, or stated as exceptions;
405 | the above requirements apply either way.
406 |
407 | 8. Termination.
408 |
409 | You may not propagate or modify a covered work except as expressly
410 | provided under this License. Any attempt otherwise to propagate or
411 | modify it is void, and will automatically terminate your rights under
412 | this License (including any patent licenses granted under the third
413 | paragraph of section 11).
414 |
415 | However, if you cease all violation of this License, then your
416 | license from a particular copyright holder is reinstated (a)
417 | provisionally, unless and until the copyright holder explicitly and
418 | finally terminates your license, and (b) permanently, if the copyright
419 | holder fails to notify you of the violation by some reasonable means
420 | prior to 60 days after the cessation.
421 |
422 | Moreover, your license from a particular copyright holder is
423 | reinstated permanently if the copyright holder notifies you of the
424 | violation by some reasonable means, this is the first time you have
425 | received notice of violation of this License (for any work) from that
426 | copyright holder, and you cure the violation prior to 30 days after
427 | your receipt of the notice.
428 |
429 | Termination of your rights under this section does not terminate the
430 | licenses of parties who have received copies or rights from you under
431 | this License. If your rights have been terminated and not permanently
432 | reinstated, you do not qualify to receive new licenses for the same
433 | material under section 10.
434 |
435 | 9. Acceptance Not Required for Having Copies.
436 |
437 | You are not required to accept this License in order to receive or
438 | run a copy of the Program. Ancillary propagation of a covered work
439 | occurring solely as a consequence of using peer-to-peer transmission
440 | to receive a copy likewise does not require acceptance. However,
441 | nothing other than this License grants you permission to propagate or
442 | modify any covered work. These actions infringe copyright if you do
443 | not accept this License. Therefore, by modifying or propagating a
444 | covered work, you indicate your acceptance of this License to do so.
445 |
446 | 10. Automatic Licensing of Downstream Recipients.
447 |
448 | Each time you convey a covered work, the recipient automatically
449 | receives a license from the original licensors, to run, modify and
450 | propagate that work, subject to this License. You are not responsible
451 | for enforcing compliance by third parties with this License.
452 |
453 | An "entity transaction" is a transaction transferring control of an
454 | organization, or substantially all assets of one, or subdividing an
455 | organization, or merging organizations. If propagation of a covered
456 | work results from an entity transaction, each party to that
457 | transaction who receives a copy of the work also receives whatever
458 | licenses to the work the party's predecessor in interest had or could
459 | give under the previous paragraph, plus a right to possession of the
460 | Corresponding Source of the work from the predecessor in interest, if
461 | the predecessor has it or can get it with reasonable efforts.
462 |
463 | You may not impose any further restrictions on the exercise of the
464 | rights granted or affirmed under this License. For example, you may
465 | not impose a license fee, royalty, or other charge for exercise of
466 | rights granted under this License, and you may not initiate litigation
467 | (including a cross-claim or counterclaim in a lawsuit) alleging that
468 | any patent claim is infringed by making, using, selling, offering for
469 | sale, or importing the Program or any portion of it.
470 |
471 | 11. Patents.
472 |
473 | A "contributor" is a copyright holder who authorizes use under this
474 | License of the Program or a work on which the Program is based. The
475 | work thus licensed is called the contributor's "contributor version".
476 |
477 | A contributor's "essential patent claims" are all patent claims
478 | owned or controlled by the contributor, whether already acquired or
479 | hereafter acquired, that would be infringed by some manner, permitted
480 | by this License, of making, using, or selling its contributor version,
481 | but do not include claims that would be infringed only as a
482 | consequence of further modification of the contributor version. For
483 | purposes of this definition, "control" includes the right to grant
484 | patent sublicenses in a manner consistent with the requirements of
485 | this License.
486 |
487 | Each contributor grants you a non-exclusive, worldwide, royalty-free
488 | patent license under the contributor's essential patent claims, to
489 | make, use, sell, offer for sale, import and otherwise run, modify and
490 | propagate the contents of its contributor version.
491 |
492 | In the following three paragraphs, a "patent license" is any express
493 | agreement or commitment, however denominated, not to enforce a patent
494 | (such as an express permission to practice a patent or covenant not to
495 | sue for patent infringement). To "grant" such a patent license to a
496 | party means to make such an agreement or commitment not to enforce a
497 | patent against the party.
498 |
499 | If you convey a covered work, knowingly relying on a patent license,
500 | and the Corresponding Source of the work is not available for anyone
501 | to copy, free of charge and under the terms of this License, through a
502 | publicly available network server or other readily accessible means,
503 | then you must either (1) cause the Corresponding Source to be so
504 | available, or (2) arrange to deprive yourself of the benefit of the
505 | patent license for this particular work, or (3) arrange, in a manner
506 | consistent with the requirements of this License, to extend the patent
507 | license to downstream recipients. "Knowingly relying" means you have
508 | actual knowledge that, but for the patent license, your conveying the
509 | covered work in a country, or your recipient's use of the covered work
510 | in a country, would infringe one or more identifiable patents in that
511 | country that you have reason to believe are valid.
512 |
513 | If, pursuant to or in connection with a single transaction or
514 | arrangement, you convey, or propagate by procuring conveyance of, a
515 | covered work, and grant a patent license to some of the parties
516 | receiving the covered work authorizing them to use, propagate, modify
517 | or convey a specific copy of the covered work, then the patent license
518 | you grant is automatically extended to all recipients of the covered
519 | work and works based on it.
520 |
521 | A patent license is "discriminatory" if it does not include within
522 | the scope of its coverage, prohibits the exercise of, or is
523 | conditioned on the non-exercise of one or more of the rights that are
524 | specifically granted under this License. You may not convey a covered
525 | work if you are a party to an arrangement with a third party that is
526 | in the business of distributing software, under which you make payment
527 | to the third party based on the extent of your activity of conveying
528 | the work, and under which the third party grants, to any of the
529 | parties who would receive the covered work from you, a discriminatory
530 | patent license (a) in connection with copies of the covered work
531 | conveyed by you (or copies made from those copies), or (b) primarily
532 | for and in connection with specific products or compilations that
533 | contain the covered work, unless you entered into that arrangement,
534 | or that patent license was granted, prior to 28 March 2007.
535 |
536 | Nothing in this License shall be construed as excluding or limiting
537 | any implied license or other defenses to infringement that may
538 | otherwise be available to you under applicable patent law.
539 |
540 | 12. No Surrender of Others' Freedom.
541 |
542 | If conditions are imposed on you (whether by court order, agreement or
543 | otherwise) that contradict the conditions of this License, they do not
544 | excuse you from the conditions of this License. If you cannot convey a
545 | covered work so as to satisfy simultaneously your obligations under this
546 | License and any other pertinent obligations, then as a consequence you may
547 | not convey it at all. For example, if you agree to terms that obligate you
548 | to collect a royalty for further conveying from those to whom you convey
549 | the Program, the only way you could satisfy both those terms and this
550 | License would be to refrain entirely from conveying the Program.
551 |
552 | 13. Use with the GNU Affero General Public License.
553 |
554 | Notwithstanding any other provision of this License, you have
555 | permission to link or combine any covered work with a work licensed
556 | under version 3 of the GNU Affero General Public License into a single
557 | combined work, and to convey the resulting work. The terms of this
558 | License will continue to apply to the part which is the covered work,
559 | but the special requirements of the GNU Affero General Public License,
560 | section 13, concerning interaction through a network will apply to the
561 | combination as such.
562 |
563 | 14. Revised Versions of this License.
564 |
565 | The Free Software Foundation may publish revised and/or new versions of
566 | the GNU General Public License from time to time. Such new versions will
567 | be similar in spirit to the present version, but may differ in detail to
568 | address new problems or concerns.
569 |
570 | Each version is given a distinguishing version number. If the
571 | Program specifies that a certain numbered version of the GNU General
572 | Public License "or any later version" applies to it, you have the
573 | option of following the terms and conditions either of that numbered
574 | version or of any later version published by the Free Software
575 | Foundation. If the Program does not specify a version number of the
576 | GNU General Public License, you may choose any version ever published
577 | by the Free Software Foundation.
578 |
579 | If the Program specifies that a proxy can decide which future
580 | versions of the GNU General Public License can be used, that proxy's
581 | public statement of acceptance of a version permanently authorizes you
582 | to choose that version for the Program.
583 |
584 | Later license versions may give you additional or different
585 | permissions. However, no additional obligations are imposed on any
586 | author or copyright holder as a result of your choosing to follow a
587 | later version.
588 |
589 | 15. Disclaimer of Warranty.
590 |
591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
599 |
600 | 16. Limitation of Liability.
601 |
602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
610 | SUCH DAMAGES.
611 |
612 | 17. Interpretation of Sections 15 and 16.
613 |
614 | If the disclaimer of warranty and limitation of liability provided
615 | above cannot be given local legal effect according to their terms,
616 | reviewing courts shall apply local law that most closely approximates
617 | an absolute waiver of all civil liability in connection with the
618 | Program, unless a warranty or assumption of liability accompanies a
619 | copy of the Program in return for a fee.
620 |
621 | END OF TERMS AND CONDITIONS
622 |
623 | How to Apply These Terms to Your New Programs
624 |
625 | If you develop a new program, and you want it to be of the greatest
626 | possible use to the public, the best way to achieve this is to make it
627 | free software which everyone can redistribute and change under these terms.
628 |
629 | To do so, attach the following notices to the program. It is safest
630 | to attach them to the start of each source file to most effectively
631 | state the exclusion of warranty; and each file should have at least
632 | the "copyright" line and a pointer to where the full notice is found.
633 |
634 |
635 | Copyright (C)
636 |
637 | This program is free software: you can redistribute it and/or modify
638 | it under the terms of the GNU General Public License as published by
639 | the Free Software Foundation, either version 3 of the License, or
640 | (at your option) any later version.
641 |
642 | This program is distributed in the hope that it will be useful,
643 | but WITHOUT ANY WARRANTY; without even the implied warranty of
644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
645 | GNU General Public License for more details.
646 |
647 | You should have received a copy of the GNU General Public License
648 | along with this program. If not, see .
649 |
650 | Also add information on how to contact you by electronic and paper mail.
651 |
652 | If the program does terminal interaction, make it output a short
653 | notice like this when it starts in an interactive mode:
654 |
655 | Copyright (C)
656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
657 | This is free software, and you are welcome to redistribute it
658 | under certain conditions; type `show c' for details.
659 |
660 | The hypothetical commands `show w' and `show c' should show the appropriate
661 | parts of the General Public License. Of course, your program's commands
662 | might be different; for a GUI interface, you would use an "about box".
663 |
664 | You should also get your employer (if you work as a programmer) or school,
665 | if any, to sign a "copyright disclaimer" for the program, if necessary.
666 | For more information on this, and how to apply and follow the GNU GPL, see
667 | .
668 |
669 | The GNU General Public License does not permit incorporating your program
670 | into proprietary programs. If your program is a subroutine library, you
671 | may consider it more useful to permit linking proprietary applications with
672 | the library. If this is what you want to do, use the GNU Lesser General
673 | Public License instead of this License. But first, please read
674 | .
675 |
--------------------------------------------------------------------------------
/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 4.0.0
4 |
5 | org.gephi
6 | gephi-toolkit
7 | 0.10.2-SNAPSHOT
8 | jar
9 |
10 | gephi-toolkit
11 |
12 |
13 | https://github.com/gephi/gephi-toolkit
14 | Gephi - All Gephi in one JAR library
15 |
16 | http://gephi.org/toolkit/
17 |
18 | 2007
19 |
20 |
21 |
22 |
23 | CDDL 1.0
24 | http://www.opensource.org/licenses/CDDL-1.0
25 | CDDL License 1.0
26 |
27 |
28 | GPL v3
29 | http://www.opensource.org/licenses/GPL-3.0
30 | GPL v3 License
31 |
32 |
33 |
34 |
35 |
36 | scm:git:git://github.com/gephi/gephi-toolkit.git
37 | scm:git:git@github.com:gephi/gephi-toolkit.git
38 | https://github.com/gephi/gephi-toolkit
39 |
40 |
41 |
42 |
43 |
44 | mbastian
45 | Mathieu Bastian
46 | mathieu.bastian@gephi.org
47 |
48 |
49 | eduramiba
50 | Eduardo Ramos
51 | eduardo.ramos@gephi.org
52 |
53 |
54 |
55 |
56 |
57 | UTF-8
58 | [3.6.3,)
59 |
60 | ${netbeans.run.params.ide}
61 |
62 |
63 | RELEASE160
64 |
65 |
66 | ${project.version}
67 |
68 |
69 | 11
70 | -Xlint:all
71 | true
72 | true
73 | true
74 |
75 |
76 | 768M
77 | ${project.build.directory}/surefire-reports/plain
78 |
79 |
80 | ossrh
81 | https://oss.sonatype.org/content/repositories/snapshots
82 |
83 |
84 | git
85 |
86 |
87 | -Xdoclint:none
88 |
89 |
90 |
91 | 3.3.0
92 |
93 | 3.10.0
94 |
95 | 3.0.1
96 |
97 | 3.4.1
98 |
99 | 2.22.2
100 |
101 | 3.11.0
102 |
103 | 1.6.12
104 |
105 | 4.1
106 |
107 | 3.2.1
108 |
109 |
110 |
111 |
112 |
113 | gephi-thirdparty
114 | https://raw.github.com/gephi/gephi/mvn-thirdparty-repo/
115 |
116 | false
117 |
118 |
119 |
120 | oss-sonatype
121 | oss-sonatype
122 | https://oss.sonatype.org/content/repositories/snapshots/
123 |
124 | true
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 | ${gephi.ossrh.repository.id}
133 | ${gephi.ossrh.repository.url}
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 | org.netbeans.modules
142 | org-netbeans-modules-masterfs
143 | ${netbeans.version}
144 |
145 |
146 |
147 | org.netbeans.modules
148 | org-netbeans-core-startup-base
149 | ${netbeans.version}
150 |
151 |
152 |
153 | org.netbeans.modules
154 | org-netbeans-core
155 | ${netbeans.version}
156 |
157 |
158 |
159 | org.gephi
160 | utils-longtask
161 | ${gephi.version}
162 |
163 |
164 | org.gephi
165 | project-api
166 | ${gephi.version}
167 |
168 |
169 | org.gephi
170 | io-exporter-api
171 | ${gephi.version}
172 |
173 |
174 | org.gephi
175 | graph-api
176 | ${gephi.version}
177 |
178 |
179 | org.gephi
180 | preview-api
181 | ${gephi.version}
182 |
183 |
184 | org.gephi
185 | io-exporter-preview
186 | ${gephi.version}
187 |
188 |
189 | org.gephi
190 | utils
191 | ${gephi.version}
192 |
193 |
194 | org.gephi
195 | datalab-api
196 | ${gephi.version}
197 |
198 |
199 | org.gephi
200 | visualization-api
201 | ${gephi.version}
202 |
203 |
204 | org.gephi
205 | preview-plugin
206 | ${gephi.version}
207 |
208 |
209 | org.gephi
210 | db-drivers
211 | ${gephi.version}
212 |
213 |
214 | org.gephi
215 | io-importer-api
216 | ${gephi.version}
217 |
218 |
219 | org.gephi
220 | appearance-api
221 | ${gephi.version}
222 |
223 |
224 | org.gephi
225 | statistics-api
226 | ${gephi.version}
227 |
228 |
229 | org.gephi
230 | statistics-plugin
231 | ${gephi.version}
232 |
233 |
234 | org.gephi
235 | algorithms-plugin
236 | ${gephi.version}
237 |
238 |
239 | org.gephi
240 | mostrecentfiles-api
241 | ${gephi.version}
242 |
243 |
244 | org.gephi
245 | layout-api
246 | ${gephi.version}
247 |
248 |
249 | org.gephi
250 | io-generator-api
251 | ${gephi.version}
252 |
253 |
254 | org.gephi
255 | io-generator-plugin
256 | ${gephi.version}
257 |
258 |
259 | org.gephi
260 | io-exporter-plugin
261 | ${gephi.version}
262 |
263 |
264 | org.gephi
265 | filters-api
266 | ${gephi.version}
267 |
268 |
269 | org.gephi
270 | layout-plugin
271 | ${gephi.version}
272 |
273 |
274 | org.gephi
275 | io-importer-plugin
276 | ${gephi.version}
277 |
278 |
279 | org.gephi
280 | filters-plugin
281 | ${gephi.version}
282 |
283 |
284 | org.gephi
285 | filters-impl
286 | ${gephi.version}
287 |
288 |
289 | org.gephi
290 | appearance-plugin
291 | ${gephi.version}
292 |
293 |
294 | org.gephi
295 | core-library-wrapper
296 | ${gephi.version}
297 |
298 |
299 |
300 | org.netbeans.api
301 | org-netbeans-modules-nbjunit
302 | ${netbeans.version}
303 | test
304 |
305 |
306 | ${project.groupId}
307 | graph-api
308 | ${gephi.version}
309 | test
310 | test-jar
311 |
312 |
313 | ${project.groupId}
314 | project-api
315 | ${gephi.version}
316 | test-jar
317 | test
318 |
319 |
320 |
321 |
322 |
323 |
324 |
325 |
326 | org.apache.maven.plugins
327 | maven-compiler-plugin
328 | ${gephi.maven-compiler-plugin.version}
329 |
330 |
331 | org.apache.maven.plugins
332 | maven-gpg-plugin
333 | ${gephi.maven-gpg-plugin.version}
334 |
335 |
336 | org.apache.maven.plugins
337 | maven-surefire-plugin
338 | ${gephi.maven-surefire-plugin.version}
339 |
340 |
341 | org.apache.maven.plugins
342 | maven-javadoc-plugin
343 | ${gephi.maven-javadoc-plugin.version}
344 |
345 |
346 | org.apache.maven.plugins
347 | maven-assembly-plugin
348 | ${gephi.maven-assembly-plugin.version}
349 |
350 |
351 | org.sonatype.plugins
352 | nexus-staging-maven-plugin
353 | ${gephi.nexus-staging-maven-plugin.version}
354 |
355 |
356 | com.mycila
357 | license-maven-plugin
358 | ${gephi.license-maven-plugin.version}
359 |
360 |
361 | org.apache.maven.plugins
362 | maven-enforcer-plugin
363 | ${gephi.maven-enforcer-plugin.version}
364 |
365 |
366 |
367 |
368 |
369 |
370 |
371 |
372 |
373 |
374 | maven-compiler-plugin
375 |
376 | ${gephi.javac.release}
377 | ${gephi.javac.showDeprecation}
378 | ${gephi.javac.showWarnings}
379 | ${gephi.javac.fork}
380 |
381 | ${gephi.javac.xlint}
382 |
383 |
384 |
385 |
386 |
387 |
388 | maven-assembly-plugin
389 |
390 |
391 | assembly-jar
392 |
393 | single
394 |
395 | package
396 |
397 |
398 |
399 | gnu
400 | true
401 |
402 | src/main/assembly/jar.xml
403 |
404 |
405 |
406 |
407 |
408 |
409 |
410 | org.apache.maven.plugins
411 | maven-javadoc-plugin
412 |
413 | public
414 | true
415 | false
416 | true
417 | false
418 | none
419 | 11
420 | Gephi Toolkit ${project.version} API Index
421 |
422 |
423 |
424 | javadoc-jar
425 | package
426 |
427 | jar
428 |
429 |
430 | true
431 |
432 | org.gephi:*:*
433 |
434 |
435 | org.gephi:core-library-wrapper:*
436 |
437 |
438 |
439 |
440 |
441 |
442 |
443 |
444 | org.apache.maven.plugins
445 | maven-gpg-plugin
446 |
447 |
448 | sign-artifacts
449 | deploy
450 |
451 | sign
452 |
453 |
454 |
455 |
456 |
457 |
458 |
459 | org.sonatype.plugins
460 | nexus-staging-maven-plugin
461 | true
462 |
463 | ossrh
464 | https://oss.sonatype.org/
465 | true
466 |
467 |
468 |
469 |
470 |
471 | com.mycila
472 | license-maven-plugin
473 |
474 |
475 | check-license
476 | verify
477 |
478 | check
479 |
480 |
481 |
482 | update-licence
483 | package
484 |
485 | format
486 |
487 |
488 |
489 |
490 |
491 |
492 | org/gephi/license-header.txt
493 |
494 | **/*.java
495 |
496 |
497 |
498 |
499 |
500 |
501 |
502 |
503 | org.apache.maven.plugins
504 | maven-enforcer-plugin
505 |
506 |
507 | enforce-maven
508 |
509 | enforce
510 |
511 |
512 |
513 |
514 | ${gephi.maven.requiredVersion}
515 |
516 |
517 |
518 |
519 |
520 |
521 |
522 |
523 |
524 |
--------------------------------------------------------------------------------
/src/main/assembly/jar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | all
4 |
5 | jar
6 |
7 | false
8 |
9 |
10 | metaInf-services
11 |
12 |
13 |
14 |
15 | true
16 | runtime
17 |
18 |
19 | META-INF/maven/**
20 | META-INF/*.SF
21 | META-INF/*.DSA
22 | META-INF/*.RSA
23 |
24 |
25 | false
26 |
27 |
28 |
29 |
30 | ${project.build.outputDirectory}
31 |
32 |
33 | log4j.properties
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/src/main/resources/org/gephi/license-header.txt:
--------------------------------------------------------------------------------
1 | Copyright 2008-2023 Gephi
2 | Website : https://gephi.org/
3 |
4 | This file is part of Gephi.
5 |
6 | DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
7 |
8 | The contents of this file are subject to the terms of either the GNU
9 | General Public License Version 3 only ("GPL") or the Common
10 | Development and Distribution License("CDDL") (collectively, the
11 | "License"). You may not use this file except in compliance with the
12 | License. You can obtain a copy of the License at
13 | https://gephi.org/developers/license/
14 | or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the
15 | specific language governing permissions and limitations under the
16 | License. When distributing the software, include this License Header
17 | Notice in each file and include the License files at
18 | /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the
19 | License Header, with the fields enclosed by brackets [] replaced by
20 | your own identifying information:
21 | "Portions Copyrighted [year] [name of copyright owner]"
22 |
23 | If you wish your version of this file to be governed by only the CDDL
24 | or only the GPL Version 3, indicate your decision by adding
25 | "[Contributor] elects to include this software in this distribution
26 | under the [CDDL or GPL Version 3] license." If you do not indicate a
27 | single choice of license, a recipient has the option to distribute
28 | your version of this file under either the CDDL, the GPL Version 3 or
29 | to extend the choice of license to its licensees as provided above.
30 | However, if you add GPL Version 3 code and therefore, elected the GPL
31 | Version 3 license, then the option applies only if the new code is
32 | made subject to such option by the copyright holder.
33 |
34 | Portions Copyrighted 2023 Gephi
--------------------------------------------------------------------------------
/src/test/java/org/gephi/toolkit/AppearanceTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2008-2023 Gephi
3 | * Website : https://gephi.org/
4 | *
5 | * This file is part of Gephi.
6 | *
7 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
8 | *
9 | * The contents of this file are subject to the terms of either the GNU
10 | * General Public License Version 3 only ("GPL") or the Common
11 | * Development and Distribution License("CDDL") (collectively, the
12 | * "License"). You may not use this file except in compliance with the
13 | * License. You can obtain a copy of the License at
14 | * https://gephi.org/developers/license/
15 | * or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the
16 | * specific language governing permissions and limitations under the
17 | * License. When distributing the software, include this License Header
18 | * Notice in each file and include the License files at
19 | * /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the
20 | * License Header, with the fields enclosed by brackets [] replaced by
21 | * your own identifying information:
22 | * "Portions Copyrighted [year] [name of copyright owner]"
23 | *
24 | * If you wish your version of this file to be governed by only the CDDL
25 | * or only the GPL Version 3, indicate your decision by adding
26 | * "[Contributor] elects to include this software in this distribution
27 | * under the [CDDL or GPL Version 3] license." If you do not indicate a
28 | * single choice of license, a recipient has the option to distribute
29 | * your version of this file under either the CDDL, the GPL Version 3 or
30 | * to extend the choice of license to its licensees as provided above.
31 | * However, if you add GPL Version 3 code and therefore, elected the GPL
32 | * Version 3 license, then the option applies only if the new code is
33 | * made subject to such option by the copyright holder.
34 | *
35 | * Portions Copyrighted 2023 Gephi
36 | */
37 | package org.gephi.toolkit;
38 |
39 | import java.awt.Color;
40 | import org.gephi.appearance.api.AppearanceModel;
41 | import org.gephi.appearance.api.Function;
42 | import org.gephi.appearance.api.Partition;
43 | import org.gephi.appearance.api.PartitionFunction;
44 | import org.gephi.appearance.api.RankingFunction;
45 | import org.gephi.appearance.plugin.PartitionElementColorTransformer;
46 | import org.gephi.appearance.plugin.RankingElementColorTransformer;
47 | import org.gephi.appearance.plugin.palette.Palette;
48 | import org.gephi.appearance.plugin.palette.PaletteManager;
49 | import org.gephi.graph.GraphGenerator;
50 | import org.gephi.graph.api.Column;
51 | import org.gephi.graph.api.Graph;
52 | import org.gephi.graph.api.Node;
53 | import org.gephi.project.api.Project;
54 | import org.junit.Assert;
55 | import org.junit.Test;
56 |
57 | public class AppearanceTest extends ToolkitTest {
58 |
59 | @Test
60 | public void testPartition() {
61 | Project project = projectController.newProject();
62 | AppearanceModel appearanceModel = appearanceController.getModel(project.getCurrentWorkspace());
63 |
64 | // Generate graph
65 | Graph graph =
66 | GraphGenerator.build(project.getCurrentWorkspace()).generateTinyGraph().addStringNodeColumn().getGraph();
67 |
68 | // Get partition function
69 | Column column = graph.getModel().getNodeTable().getColumn(GraphGenerator.STRING_COLUMN);
70 | Function func = appearanceModel.getNodeFunction(column, PartitionElementColorTransformer.class);
71 | Partition partition = ((PartitionFunction) func).getPartition();
72 |
73 | // Set palette
74 | Palette palette = PaletteManager.getInstance().randomPalette(2);
75 | partition.setColors(graph, palette.getColors());
76 |
77 | // Transform
78 | appearanceController.transform(func);
79 |
80 | // Assert
81 | Assert.assertEquals(palette.getColors()[0], graph.getNode(GraphGenerator.FIRST_NODE).getColor());
82 | Assert.assertEquals(palette.getColors()[1], graph.getNode(GraphGenerator.SECOND_NODE).getColor());
83 | }
84 |
85 | @Test
86 | public void testRanking() {
87 | Project project = projectController.newProject();
88 | AppearanceModel appearanceModel = appearanceController.getModel(project.getCurrentWorkspace());
89 |
90 | // Generate graph
91 | Graph graph = GraphGenerator.build(project.getCurrentWorkspace()).generateSmallRandomGraph().getGraph();
92 |
93 | // Get ranking function and transform
94 | Function degreeRanking = appearanceModel.getNodeFunction(graph.getModel().defaultColumns()
95 | .degree(), RankingElementColorTransformer.class);
96 | RankingElementColorTransformer degreeTransformer = degreeRanking.getTransformer();
97 | Color[] colors = new Color[] {new Color(0xFEF0D9), new Color(0xB30000)};
98 | degreeTransformer.setColors(colors);
99 | degreeTransformer.setColorPositions(new float[] {0f, 1f});
100 | appearanceController.transform(degreeRanking);
101 |
102 | // Assert
103 | Number minValue = ((RankingFunction) degreeRanking).getRanking().getMinValue(graph);
104 | Number maxValue = ((RankingFunction) degreeRanking).getRanking().getMaxValue(graph);
105 | for (Node node : graph.getNodes()) {
106 | int degree = graph.getDegree(node);
107 | if (degree == minValue.intValue()) {
108 | Assert.assertEquals(colors[0], node.getColor());
109 | } else if (degree == maxValue.intValue()) {
110 | Assert.assertEquals(colors[1], node.getColor());
111 | } else {
112 | Assert.assertNotEquals(colors[0], node.getColor());
113 | Assert.assertNotEquals(colors[1], node.getColor());
114 | }
115 | }
116 | }
117 | }
118 |
--------------------------------------------------------------------------------
/src/test/java/org/gephi/toolkit/ExportTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2008-2023 Gephi
3 | * Website : https://gephi.org/
4 | *
5 | * This file is part of Gephi.
6 | *
7 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
8 | *
9 | * The contents of this file are subject to the terms of either the GNU
10 | * General Public License Version 3 only ("GPL") or the Common
11 | * Development and Distribution License("CDDL") (collectively, the
12 | * "License"). You may not use this file except in compliance with the
13 | * License. You can obtain a copy of the License at
14 | * https://gephi.org/developers/license/
15 | * or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the
16 | * specific language governing permissions and limitations under the
17 | * License. When distributing the software, include this License Header
18 | * Notice in each file and include the License files at
19 | * /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the
20 | * License Header, with the fields enclosed by brackets [] replaced by
21 | * your own identifying information:
22 | * "Portions Copyrighted [year] [name of copyright owner]"
23 | *
24 | * If you wish your version of this file to be governed by only the CDDL
25 | * or only the GPL Version 3, indicate your decision by adding
26 | * "[Contributor] elects to include this software in this distribution
27 | * under the [CDDL or GPL Version 3] license." If you do not indicate a
28 | * single choice of license, a recipient has the option to distribute
29 | * your version of this file under either the CDDL, the GPL Version 3 or
30 | * to extend the choice of license to its licensees as provided above.
31 | * However, if you add GPL Version 3 code and therefore, elected the GPL
32 | * Version 3 license, then the option applies only if the new code is
33 | * made subject to such option by the copyright holder.
34 | *
35 | * Portions Copyrighted 2023 Gephi
36 | */
37 | package org.gephi.toolkit;
38 |
39 | import java.io.ByteArrayOutputStream;
40 | import java.io.File;
41 | import java.io.IOException;
42 | import java.io.StringWriter;
43 | import org.apache.pdfbox.pdmodel.common.PDRectangle;
44 | import org.gephi.graph.GraphGenerator;
45 | import org.gephi.io.exporter.preview.PDFExporter;
46 | import org.gephi.io.exporter.spi.CharacterExporter;
47 | import org.gephi.io.exporter.spi.Exporter;
48 | import org.gephi.project.api.Project;
49 | import org.junit.Assert;
50 | import org.junit.Rule;
51 | import org.junit.Test;
52 | import org.junit.rules.TemporaryFolder;
53 |
54 | public class ExportTest extends ToolkitTest {
55 |
56 | @Rule
57 | public TemporaryFolder tempFolder = new TemporaryFolder();
58 |
59 | @Test
60 | public void testExport() throws IOException {
61 | Project project = projectController.newProject();
62 |
63 | // Generate tiny graph
64 | GraphGenerator.build(project.getCurrentWorkspace()).generateTinyGraph();
65 |
66 | // Export
67 | File file = tempFolder.newFile("test.gexf");
68 | exportController.exportFile(file, project.getCurrentWorkspace());
69 | Assert.assertTrue(file.length() > 0);
70 | }
71 |
72 | @Test
73 | public void testExportToWriter() {
74 | Project project = projectController.newProject();
75 |
76 | // Generate tiny graph
77 | GraphGenerator.build(project.getCurrentWorkspace()).generateTinyGraph();
78 |
79 | // Export
80 | Exporter exporterGraphML = exportController.getExporter("graphml"); //Get GraphML exporter
81 | StringWriter stringWriter = new StringWriter();
82 | exportController.exportWriter(stringWriter, (CharacterExporter) exporterGraphML);
83 | Assert.assertTrue(stringWriter.toString().length() > 0);
84 | }
85 |
86 | @Test
87 | public void testExportPdf() {
88 | Project project = projectController.newProject();
89 |
90 | // Generate tiny graph
91 | GraphGenerator.build(project.getCurrentWorkspace()).generateTinyGraph().addRandomPositions();
92 |
93 | //PDF Exporter config and export to Byte array
94 | PDFExporter pdfExporter = (PDFExporter) exportController.getExporter("pdf");
95 | pdfExporter.setPageSize(PDRectangle.A0);
96 | ByteArrayOutputStream baos = new ByteArrayOutputStream();
97 | exportController.exportStream(baos, pdfExporter);
98 | byte[] pdf = baos.toByteArray();
99 | Assert.assertTrue(pdf.length > 0);
100 | }
101 | }
102 |
--------------------------------------------------------------------------------
/src/test/java/org/gephi/toolkit/FilteringTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2008-2023 Gephi
3 | * Website : https://gephi.org/
4 | *
5 | * This file is part of Gephi.
6 | *
7 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
8 | *
9 | * The contents of this file are subject to the terms of either the GNU
10 | * General Public License Version 3 only ("GPL") or the Common
11 | * Development and Distribution License("CDDL") (collectively, the
12 | * "License"). You may not use this file except in compliance with the
13 | * License. You can obtain a copy of the License at
14 | * https://gephi.org/developers/license/
15 | * or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the
16 | * specific language governing permissions and limitations under the
17 | * License. When distributing the software, include this License Header
18 | * Notice in each file and include the License files at
19 | * /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the
20 | * License Header, with the fields enclosed by brackets [] replaced by
21 | * your own identifying information:
22 | * "Portions Copyrighted [year] [name of copyright owner]"
23 | *
24 | * If you wish your version of this file to be governed by only the CDDL
25 | * or only the GPL Version 3, indicate your decision by adding
26 | * "[Contributor] elects to include this software in this distribution
27 | * under the [CDDL or GPL Version 3] license." If you do not indicate a
28 | * single choice of license, a recipient has the option to distribute
29 | * your version of this file under either the CDDL, the GPL Version 3 or
30 | * to extend the choice of license to its licensees as provided above.
31 | * However, if you add GPL Version 3 code and therefore, elected the GPL
32 | * Version 3 license, then the option applies only if the new code is
33 | * made subject to such option by the copyright holder.
34 | *
35 | * Portions Copyrighted 2023 Gephi
36 | */
37 | package org.gephi.toolkit;
38 |
39 | import org.gephi.appearance.api.AppearanceModel;
40 | import org.gephi.filters.api.Query;
41 | import org.gephi.filters.api.Range;
42 | import org.gephi.filters.plugin.attribute.AttributeEqualBuilder;
43 | import org.gephi.filters.plugin.graph.DegreeRangeBuilder;
44 | import org.gephi.filters.plugin.operator.INTERSECTIONBuilder;
45 | import org.gephi.filters.plugin.partition.PartitionBuilder;
46 | import org.gephi.graph.GraphGenerator;
47 | import org.gephi.graph.api.Graph;
48 | import org.gephi.graph.api.GraphView;
49 | import org.gephi.graph.api.Node;
50 | import org.gephi.project.api.Project;
51 | import org.gephi.project.api.Workspace;
52 | import org.junit.Assert;
53 | import org.junit.Test;
54 |
55 | public class FilteringTest extends ToolkitTest {
56 |
57 | @Test
58 | public void testDegreeFilter() {
59 | Project project = projectController.newProject();
60 |
61 | // Generate tiny graph
62 | Graph graph = GraphGenerator.build(project.getCurrentWorkspace()).generateTinyGraph().getGraph();
63 |
64 | //Add one extra node (unconnected)
65 | Node extraNode = graph.getModel().factory().newNode();
66 | Assert.assertTrue(graph.addNode(extraNode));
67 |
68 | // Filter
69 | DegreeRangeBuilder.DegreeRangeFilter degreeFilter = new DegreeRangeBuilder.DegreeRangeFilter();
70 | degreeFilter.init(graph);
71 | degreeFilter.setRange(new Range(1, Integer.MAX_VALUE)); //Remove nodes with degree < 1
72 | GraphView view = filterController.filter(filterController.createQuery(degreeFilter));
73 |
74 | // Get filtered graph and assert
75 | Graph filteredGraph = graph.getModel().getGraph(view);
76 | Assert.assertEquals(2, filteredGraph.getNodeCount());
77 | Assert.assertFalse(filteredGraph.contains(extraNode));
78 | Assert.assertEquals(1, filteredGraph.getEdgeCount());
79 | }
80 |
81 | @Test
82 | public void testPartitionFilter() {
83 | Project project = projectController.newProject();
84 | Workspace workspace = project.getCurrentWorkspace();
85 |
86 | // Generate tiny graph
87 | Graph graph = GraphGenerator.build(workspace).generateTinyGraph().addStringNodeColumn().getGraph();
88 |
89 | // Filter
90 | AppearanceModel appearanceModel = appearanceController.getModel(workspace);
91 | PartitionBuilder.NodePartitionFilter
92 | partitionFilter = new PartitionBuilder.NodePartitionFilter(appearanceModel,
93 | appearanceModel.getNodePartition(graph.getModel().getNodeTable().getColumn(GraphGenerator.STRING_COLUMN)));
94 | partitionFilter.unselectAll();
95 | partitionFilter.addPart(GraphGenerator.STRING_COLUMN_VALUES[0]);
96 | GraphView view = filterController.filter(filterController.createQuery(partitionFilter));
97 |
98 | // Get filtered graph and assert
99 | Graph filteredGraph = graph.getModel().getGraph(view);
100 | Assert.assertEquals(1, filteredGraph.getNodeCount());
101 | Assert.assertTrue(filteredGraph.contains(graph.getNode(GraphGenerator.FIRST_NODE)));
102 |
103 | // Filter again
104 | partitionFilter.selectAll();
105 | partitionFilter.removePart(GraphGenerator.STRING_COLUMN_VALUES[0]);
106 | GraphView view2 = filterController.filter(filterController.createQuery(partitionFilter));
107 |
108 | // Get filtered graph and assert
109 | filteredGraph = graph.getModel().getGraph(view2);
110 | Assert.assertEquals(1, filteredGraph.getNodeCount());
111 | Assert.assertTrue(filteredGraph.contains(graph.getNode(GraphGenerator.SECOND_NODE)));
112 | }
113 |
114 | @Test
115 | public void testAndOperator() {
116 | Project project = projectController.newProject();
117 | Workspace workspace = project.getCurrentWorkspace();
118 |
119 | // Generate tiny graph
120 | Graph graph = GraphGenerator.build(workspace).generateTinyGraph().addStringNodeColumn().getGraph();
121 |
122 | // First query
123 | DegreeRangeBuilder.DegreeRangeFilter degreeFilter = new DegreeRangeBuilder.DegreeRangeFilter();
124 | degreeFilter.init(graph);
125 | degreeFilter.setRange(new Range(1, 1));
126 | Query degreeQuery = filterController.createQuery(degreeFilter);
127 |
128 | // Second query
129 | AttributeEqualBuilder.EqualStringFilter.Node equalFilter = new AttributeEqualBuilder.EqualStringFilter.Node(
130 | graph.getModel().getNodeTable().getColumn(GraphGenerator.STRING_COLUMN)
131 | );
132 | equalFilter.init(graph);
133 | equalFilter.setPattern(GraphGenerator.STRING_COLUMN_VALUES[0]);
134 | Query equalQuery = filterController.createQuery(equalFilter);
135 |
136 | // Filter
137 | INTERSECTIONBuilder.IntersectionOperator intersectionOperator = new INTERSECTIONBuilder.IntersectionOperator();
138 | Query andQuery = filterController.createQuery(intersectionOperator);
139 | filterController.setSubQuery(andQuery, degreeQuery);
140 | filterController.setSubQuery(andQuery, equalQuery);
141 | GraphView view = filterController.filter(andQuery);
142 |
143 | // Get filtered graph and assert
144 | Graph filteredGraph = graph.getModel().getGraph(view);
145 | Assert.assertEquals(1, filteredGraph.getNodeCount());
146 | Assert.assertTrue(filteredGraph.contains(graph.getNode(GraphGenerator.FIRST_NODE)));
147 | }
148 | }
149 |
--------------------------------------------------------------------------------
/src/test/java/org/gephi/toolkit/GeneratorTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2008-2023 Gephi
3 | * Website : https://gephi.org/
4 | *
5 | * This file is part of Gephi.
6 | *
7 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
8 | *
9 | * The contents of this file are subject to the terms of either the GNU
10 | * General Public License Version 3 only ("GPL") or the Common
11 | * Development and Distribution License("CDDL") (collectively, the
12 | * "License"). You may not use this file except in compliance with the
13 | * License. You can obtain a copy of the License at
14 | * https://gephi.org/developers/license/
15 | * or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the
16 | * specific language governing permissions and limitations under the
17 | * License. When distributing the software, include this License Header
18 | * Notice in each file and include the License files at
19 | * /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the
20 | * License Header, with the fields enclosed by brackets [] replaced by
21 | * your own identifying information:
22 | * "Portions Copyrighted [year] [name of copyright owner]"
23 | *
24 | * If you wish your version of this file to be governed by only the CDDL
25 | * or only the GPL Version 3, indicate your decision by adding
26 | * "[Contributor] elects to include this software in this distribution
27 | * under the [CDDL or GPL Version 3] license." If you do not indicate a
28 | * single choice of license, a recipient has the option to distribute
29 | * your version of this file under either the CDDL, the GPL Version 3 or
30 | * to extend the choice of license to its licensees as provided above.
31 | * However, if you add GPL Version 3 code and therefore, elected the GPL
32 | * Version 3 license, then the option applies only if the new code is
33 | * made subject to such option by the copyright holder.
34 | *
35 | * Portions Copyrighted 2023 Gephi
36 | */
37 | package org.gephi.toolkit;
38 |
39 | import org.gephi.io.generator.plugin.DynamicGraph;
40 | import org.gephi.io.generator.plugin.RandomGraph;
41 | import org.gephi.io.importer.api.Container;
42 | import org.gephi.io.processor.plugin.DefaultProcessor;
43 | import org.gephi.project.api.Workspace;
44 | import org.gephi.project.io.utils.Utils;
45 | import org.junit.Assert;
46 | import org.junit.Test;
47 | import org.openide.util.Lookup;
48 |
49 | public class GeneratorTest extends ToolkitTest {
50 |
51 | @Test
52 | public void testGenerate() {
53 | Workspace workspace = Utils.newWorkspace();
54 |
55 | //Generate a new random graph into a container
56 | Container container = Lookup.getDefault().lookup(Container.Factory.class).newContainer();
57 | RandomGraph randomGraph = new RandomGraph();
58 | randomGraph.setNumberOfNodes(500);
59 | randomGraph.setWiringProbability(0.005);
60 | randomGraph.generate(container.getLoader());
61 |
62 | //Append container to graph structure
63 | importController.process(container, new DefaultProcessor(), workspace);
64 |
65 | Assert.assertEquals(randomGraph.getNumberOfNodes(),
66 | graphController.getGraphModel(workspace).getGraph().getNodeCount());
67 | }
68 |
69 | @Test
70 | public void testGenerateDynamicGraph() {
71 | Workspace workspace = Utils.newWorkspace();
72 |
73 | //Generate dynamic graph into workspace
74 | Container container = Lookup.getDefault().lookup(Container.Factory.class).newContainer();
75 |
76 | DynamicGraph dynamicGraph = new DynamicGraph();
77 | dynamicGraph.generate(container.getLoader());
78 | importController.process(container, new DefaultProcessor(), workspace);
79 |
80 | Assert.assertTrue(graphController.getGraphModel(workspace).isDynamic());
81 | }
82 | }
83 |
--------------------------------------------------------------------------------
/src/test/java/org/gephi/toolkit/ImportTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2008-2023 Gephi
3 | * Website : https://gephi.org/
4 | *
5 | * This file is part of Gephi.
6 | *
7 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
8 | *
9 | * The contents of this file are subject to the terms of either the GNU
10 | * General Public License Version 3 only ("GPL") or the Common
11 | * Development and Distribution License("CDDL") (collectively, the
12 | * "License"). You may not use this file except in compliance with the
13 | * License. You can obtain a copy of the License at
14 | * https://gephi.org/developers/license/
15 | * or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the
16 | * specific language governing permissions and limitations under the
17 | * License. When distributing the software, include this License Header
18 | * Notice in each file and include the License files at
19 | * /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the
20 | * License Header, with the fields enclosed by brackets [] replaced by
21 | * your own identifying information:
22 | * "Portions Copyrighted [year] [name of copyright owner]"
23 | *
24 | * If you wish your version of this file to be governed by only the CDDL
25 | * or only the GPL Version 3, indicate your decision by adding
26 | * "[Contributor] elects to include this software in this distribution
27 | * under the [CDDL or GPL Version 3] license." If you do not indicate a
28 | * single choice of license, a recipient has the option to distribute
29 | * your version of this file under either the CDDL, the GPL Version 3 or
30 | * to extend the choice of license to its licensees as provided above.
31 | * However, if you add GPL Version 3 code and therefore, elected the GPL
32 | * Version 3 license, then the option applies only if the new code is
33 | * made subject to such option by the copyright holder.
34 | *
35 | * Portions Copyrighted 2023 Gephi
36 | */
37 | package org.gephi.toolkit;
38 |
39 | import java.io.File;
40 | import java.io.IOException;
41 | import java.net.URISyntaxException;
42 | import org.gephi.graph.api.GraphModel;
43 | import org.gephi.io.importer.api.Container;
44 | import org.gephi.io.importer.api.EdgeDirectionDefault;
45 | import org.gephi.io.processor.plugin.DefaultProcessor;
46 | import org.gephi.io.processor.plugin.MergeProcessor;
47 | import org.gephi.project.api.Project;
48 | import org.junit.Assert;
49 | import org.junit.Test;
50 |
51 | public class ImportTest extends ToolkitTest {
52 |
53 | @Test
54 | public void testImport() throws IOException, URISyntaxException {
55 | Project project = projectController.newProject();
56 |
57 | //Import file
58 | File file = new File(getClass().getResource("/org/gephi/toolkit/lesmiserables.gml").toURI());
59 | Container container = importController.importFile(file);
60 | container.getLoader().setEdgeDefault(EdgeDirectionDefault.DIRECTED); //Force DIRECTED
61 | container.getLoader().setAllowAutoNode(false); //Don't create missing nodes
62 |
63 | //Append imported data to GraphAPI
64 | importController.process(container, new DefaultProcessor(), project.getCurrentWorkspace());
65 |
66 | //Assert
67 | GraphModel graphModel = graphController.getGraphModel(project.getCurrentWorkspace());
68 | Assert.assertEquals(77, graphModel.getGraph().getNodeCount());
69 | Assert.assertEquals(254, graphModel.getGraph().getEdgeCount());
70 | }
71 |
72 | @Test
73 | public void testImportSlices() throws IOException, URISyntaxException {
74 | Project project = projectController.newProject();
75 |
76 | Container[] containers = new Container[3];
77 | for (int i = 0; i < 3; i++) {
78 | File file = new File(getClass().getResource("/org/gephi/toolkit/timeframe" + (i + 1) + ".gexf").toURI());
79 | containers[i] = importController.importFile(file);
80 | }
81 |
82 | // Process the container using the MergeProcessor
83 | importController.process(containers, new MergeProcessor(), project.getCurrentWorkspace());
84 |
85 | // Assert proper merging
86 | GraphModel graphModel = graphController.getGraphModel(project.getCurrentWorkspace());
87 | Assert.assertEquals(4, graphModel.getGraph().getNodeCount());
88 | Assert.assertEquals(4, graphModel.getGraph().getEdgeCount());
89 |
90 | // Assert proper timestamps
91 | Assert.assertArrayEquals(new double[] {2007, 2008, 2009}, graphModel.getGraph().getNode("1").getTimestamps(),
92 | 0);
93 | Assert.assertArrayEquals(new double[] {2008, 2009}, graphModel.getGraph().getNode("4").getTimestamps(), 0);
94 | Assert.assertArrayEquals(new double[] {2007, 2008}, graphModel.getGraph().getEdge("x1").getTimestamps(), 0);
95 |
96 | // Assert proper attributes
97 | Assert.assertEquals(12, graphModel.getGraph().getNode("1").getAttribute("price", 2007));
98 | Assert.assertEquals(8, graphModel.getGraph().getNode("4").getAttribute("price", 2008));
99 | Assert.assertEquals(1, graphModel.getGraph().getEdge("x1").getWeight(2007), 0);
100 | Assert.assertEquals(4, graphModel.getGraph().getEdge("x1").getWeight(2008), 0);
101 | }
102 | }
103 |
--------------------------------------------------------------------------------
/src/test/java/org/gephi/toolkit/ProjectIOTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2008-2023 Gephi
3 | * Website : https://gephi.org/
4 | *
5 | * This file is part of Gephi.
6 | *
7 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
8 | *
9 | * The contents of this file are subject to the terms of either the GNU
10 | * General Public License Version 3 only ("GPL") or the Common
11 | * Development and Distribution License("CDDL") (collectively, the
12 | * "License"). You may not use this file except in compliance with the
13 | * License. You can obtain a copy of the License at
14 | * https://gephi.org/developers/license/
15 | * or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the
16 | * specific language governing permissions and limitations under the
17 | * License. When distributing the software, include this License Header
18 | * Notice in each file and include the License files at
19 | * /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the
20 | * License Header, with the fields enclosed by brackets [] replaced by
21 | * your own identifying information:
22 | * "Portions Copyrighted [year] [name of copyright owner]"
23 | *
24 | * If you wish your version of this file to be governed by only the CDDL
25 | * or only the GPL Version 3, indicate your decision by adding
26 | * "[Contributor] elects to include this software in this distribution
27 | * under the [CDDL or GPL Version 3] license." If you do not indicate a
28 | * single choice of license, a recipient has the option to distribute
29 | * your version of this file under either the CDDL, the GPL Version 3 or
30 | * to extend the choice of license to its licensees as provided above.
31 | * However, if you add GPL Version 3 code and therefore, elected the GPL
32 | * Version 3 license, then the option applies only if the new code is
33 | * made subject to such option by the copyright holder.
34 | *
35 | * Portions Copyrighted 2023 Gephi
36 | */
37 | package org.gephi.toolkit;
38 |
39 | import java.io.File;
40 | import java.io.IOException;
41 | import org.gephi.graph.GraphGenerator;
42 | import org.gephi.project.api.Project;
43 | import org.junit.Assert;
44 | import org.junit.Rule;
45 | import org.junit.Test;
46 | import org.junit.rules.TemporaryFolder;
47 |
48 | public class ProjectIOTest extends ToolkitTest {
49 |
50 | @Rule
51 | public TemporaryFolder tempFolder = new TemporaryFolder();
52 |
53 | @Test
54 | public void testSave() throws IOException {
55 | Project project = projectController.newProject();
56 |
57 | // Generate tiny graph
58 | GraphGenerator.build(project.getCurrentWorkspace()).generateTinyGraph();
59 |
60 | // Save
61 | File fileCreatedEmpty = tempFolder.newFile("test.gephi");
62 | File fileNotExisting = new File(tempFolder.getRoot(), "test2.gephi");
63 | projectController.saveProject(project, fileCreatedEmpty);
64 | projectController.saveProject(project, fileNotExisting);
65 | projectController.closeCurrentProject();
66 |
67 | Assert.assertTrue(fileCreatedEmpty.length() > 0);
68 | Assert.assertTrue(fileNotExisting.length() > 0);
69 | assertTinyGraph(fileCreatedEmpty);
70 | assertTinyGraph(fileNotExisting);
71 | }
72 |
73 | private void assertTinyGraph(File file) {
74 | projectController.closeCurrentProject();
75 | Project project = projectController.openProject(file);
76 | Assert.assertEquals(2, graphController.getGraphModel(project.getCurrentWorkspace()).getGraph().getNodeCount());
77 | }
78 | }
79 |
--------------------------------------------------------------------------------
/src/test/java/org/gephi/toolkit/SQLLiteImportTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2008-2023 Gephi
3 | * Website : https://gephi.org/
4 | *
5 | * This file is part of Gephi.
6 | *
7 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
8 | *
9 | * The contents of this file are subject to the terms of either the GNU
10 | * General Public License Version 3 only ("GPL") or the Common
11 | * Development and Distribution License("CDDL") (collectively, the
12 | * "License"). You may not use this file except in compliance with the
13 | * License. You can obtain a copy of the License at
14 | * https://gephi.org/developers/license/
15 | * or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the
16 | * specific language governing permissions and limitations under the
17 | * License. When distributing the software, include this License Header
18 | * Notice in each file and include the License files at
19 | * /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the
20 | * License Header, with the fields enclosed by brackets [] replaced by
21 | * your own identifying information:
22 | * "Portions Copyrighted [year] [name of copyright owner]"
23 | *
24 | * If you wish your version of this file to be governed by only the CDDL
25 | * or only the GPL Version 3, indicate your decision by adding
26 | * "[Contributor] elects to include this software in this distribution
27 | * under the [CDDL or GPL Version 3] license." If you do not indicate a
28 | * single choice of license, a recipient has the option to distribute
29 | * your version of this file under either the CDDL, the GPL Version 3 or
30 | * to extend the choice of license to its licensees as provided above.
31 | * However, if you add GPL Version 3 code and therefore, elected the GPL
32 | * Version 3 license, then the option applies only if the new code is
33 | * made subject to such option by the copyright holder.
34 | *
35 | * Portions Copyrighted 2023 Gephi
36 | */
37 | package org.gephi.toolkit;
38 |
39 | import java.io.File;
40 | import java.io.IOException;
41 | import org.gephi.graph.api.UndirectedGraph;
42 | import org.gephi.io.database.drivers.SQLiteDriver;
43 | import org.gephi.io.importer.api.Container;
44 | import org.gephi.io.importer.api.EdgeDirectionDefault;
45 | import org.gephi.io.importer.plugin.database.EdgeListDatabaseImpl;
46 | import org.gephi.io.importer.plugin.database.ImporterEdgeList;
47 | import org.gephi.io.processor.plugin.DefaultProcessor;
48 | import org.gephi.project.api.Project;
49 | import org.junit.Assert;
50 | import org.junit.Rule;
51 | import org.junit.Test;
52 | import org.junit.rules.TemporaryFolder;
53 |
54 | public class SQLLiteImportTest extends ToolkitTest {
55 |
56 | @Rule
57 | public TemporaryFolder tempFolder = new TemporaryFolder();
58 |
59 | @Test
60 | public void testImport() throws IOException {
61 | Project project = projectController.newProject();
62 |
63 | File file = copyResourcesToTempDir("lesmiserables.sqlite3", tempFolder.getRoot());
64 | Assert.assertTrue(file.exists());
65 |
66 | // Import database
67 | EdgeListDatabaseImpl db = new EdgeListDatabaseImpl();
68 | db.setHost(file.getAbsolutePath());
69 | db.setDBName("");
70 | db.setSQLDriver(new SQLiteDriver());
71 | db.setNodeQuery("SELECT nodes.id AS id, nodes.label AS label FROM nodes");
72 | db.setEdgeQuery(
73 | "SELECT edges.source AS source, edges.target AS target, edges.label AS label, edges.weight AS weight FROM edges");
74 | ImporterEdgeList edgeListImporter = new ImporterEdgeList();
75 | Container container = importController.importDatabase(db, edgeListImporter);
76 | container.getLoader().setAllowAutoNode(false); //Don't create missing nodes
77 | container.getLoader().setEdgeDefault(EdgeDirectionDefault.UNDIRECTED); //Force UNDIRECTED
78 |
79 | //Append imported data to GraphAPI
80 | importController.process(container, new DefaultProcessor(), project.getCurrentWorkspace());
81 |
82 | //See if graph is well imported
83 | UndirectedGraph graph = graphController.getGraphModel(project.getCurrentWorkspace()).getUndirectedGraph();
84 | Assert.assertEquals(77, graph.getNodeCount());
85 | Assert.assertEquals(254, graph.getEdgeCount());
86 | }
87 | }
88 |
--------------------------------------------------------------------------------
/src/test/java/org/gephi/toolkit/StatisticsTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2008-2023 Gephi
3 | * Website : https://gephi.org/
4 | *
5 | * This file is part of Gephi.
6 | *
7 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
8 | *
9 | * The contents of this file are subject to the terms of either the GNU
10 | * General Public License Version 3 only ("GPL") or the Common
11 | * Development and Distribution License("CDDL") (collectively, the
12 | * "License"). You may not use this file except in compliance with the
13 | * License. You can obtain a copy of the License at
14 | * https://gephi.org/developers/license/
15 | * or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the
16 | * specific language governing permissions and limitations under the
17 | * License. When distributing the software, include this License Header
18 | * Notice in each file and include the License files at
19 | * /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the
20 | * License Header, with the fields enclosed by brackets [] replaced by
21 | * your own identifying information:
22 | * "Portions Copyrighted [year] [name of copyright owner]"
23 | *
24 | * If you wish your version of this file to be governed by only the CDDL
25 | * or only the GPL Version 3, indicate your decision by adding
26 | * "[Contributor] elects to include this software in this distribution
27 | * under the [CDDL or GPL Version 3] license." If you do not indicate a
28 | * single choice of license, a recipient has the option to distribute
29 | * your version of this file under either the CDDL, the GPL Version 3 or
30 | * to extend the choice of license to its licensees as provided above.
31 | * However, if you add GPL Version 3 code and therefore, elected the GPL
32 | * Version 3 license, then the option applies only if the new code is
33 | * made subject to such option by the copyright holder.
34 | *
35 | * Portions Copyrighted 2023 Gephi
36 | */
37 | package org.gephi.toolkit;
38 |
39 | import org.gephi.graph.GraphGenerator;
40 | import org.gephi.graph.api.Graph;
41 | import org.gephi.project.api.Project;
42 | import org.gephi.statistics.plugin.Modularity;
43 | import org.junit.Assert;
44 | import org.junit.Test;
45 |
46 | public class StatisticsTest extends ToolkitTest {
47 |
48 | @Test
49 | public void testStatistics() {
50 | Project project = projectController.newProject();
51 |
52 | // Generate a new random graph into a container
53 | Graph graph = GraphGenerator.build(project.getCurrentWorkspace()).generateSmallRandomGraph().getGraph();
54 |
55 | // Run modularity algorithm - community detection
56 | Modularity modularity = new Modularity();
57 | modularity.setRandom(true);
58 | modularity.setUseWeight(true);
59 | modularity.setResolution(0.8);
60 | modularity.execute(graph);
61 |
62 | // Assert
63 | Assert.assertTrue(modularity.getModularity() != 0);
64 | graph.getNodes().forEach(node -> Assert.assertNotNull(node.getAttribute(Modularity.MODULARITY_CLASS)));
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/src/test/java/org/gephi/toolkit/ToolkitTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2008-2023 Gephi
3 | * Website : https://gephi.org/
4 | *
5 | * This file is part of Gephi.
6 | *
7 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
8 | *
9 | * The contents of this file are subject to the terms of either the GNU
10 | * General Public License Version 3 only ("GPL") or the Common
11 | * Development and Distribution License("CDDL") (collectively, the
12 | * "License"). You may not use this file except in compliance with the
13 | * License. You can obtain a copy of the License at
14 | * https://gephi.org/developers/license/
15 | * or /cddl-1.0.txt and /gpl-3.0.txt. See the License for the
16 | * specific language governing permissions and limitations under the
17 | * License. When distributing the software, include this License Header
18 | * Notice in each file and include the License files at
19 | * /cddl-1.0.txt and /gpl-3.0.txt. If applicable, add the following below the
20 | * License Header, with the fields enclosed by brackets [] replaced by
21 | * your own identifying information:
22 | * "Portions Copyrighted [year] [name of copyright owner]"
23 | *
24 | * If you wish your version of this file to be governed by only the CDDL
25 | * or only the GPL Version 3, indicate your decision by adding
26 | * "[Contributor] elects to include this software in this distribution
27 | * under the [CDDL or GPL Version 3] license." If you do not indicate a
28 | * single choice of license, a recipient has the option to distribute
29 | * your version of this file under either the CDDL, the GPL Version 3 or
30 | * to extend the choice of license to its licensees as provided above.
31 | * However, if you add GPL Version 3 code and therefore, elected the GPL
32 | * Version 3 license, then the option applies only if the new code is
33 | * made subject to such option by the copyright holder.
34 | *
35 | * Portions Copyrighted 2023 Gephi
36 | */
37 | package org.gephi.toolkit;
38 |
39 | import java.io.File;
40 | import java.io.IOException;
41 | import java.net.URISyntaxException;
42 | import org.gephi.appearance.api.AppearanceController;
43 | import org.gephi.filters.api.FilterController;
44 | import org.gephi.graph.api.GraphController;
45 | import org.gephi.io.exporter.api.ExportController;
46 | import org.gephi.io.importer.api.ImportController;
47 | import org.gephi.preview.api.PreviewController;
48 | import org.gephi.project.api.ProjectController;
49 | import org.openide.filesystems.FileUtil;
50 | import org.openide.util.Lookup;
51 |
52 | public abstract class ToolkitTest {
53 |
54 | protected final ProjectController projectController = Lookup.getDefault().lookup(ProjectController.class);
55 |
56 | protected final GraphController graphController = Lookup.getDefault().lookup(GraphController.class);
57 |
58 | protected final AppearanceController appearanceController = Lookup.getDefault().lookup(AppearanceController.class);
59 |
60 | protected final FilterController filterController = Lookup.getDefault().lookup(FilterController.class);
61 |
62 | protected final ImportController importController = Lookup.getDefault().lookup(ImportController.class);
63 |
64 | protected final ExportController exportController = Lookup.getDefault().lookup(ExportController.class);
65 |
66 | protected final PreviewController previewController = Lookup.getDefault().lookup(PreviewController.class);
67 |
68 | // Utilities
69 |
70 | protected File copyResourcesToTempDir(String fileName, File tempFolder) throws IOException {
71 | File file;
72 | try {
73 | file = new File(getClass().getResource("/org/gephi/toolkit/" + fileName).toURI());
74 | } catch (URISyntaxException e) {
75 | throw new IOException(e);
76 | }
77 | return FileUtil.toFile(
78 | FileUtil.copyFile(FileUtil.toFileObject(file), FileUtil.toFileObject(tempFolder), fileName));
79 | }
80 | }
81 |
--------------------------------------------------------------------------------
/src/test/resources/org/gephi/toolkit/LesMiserables.gexf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Gephi 0.7
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 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 |
244 |
245 |
246 |
247 |
248 |
249 |
250 |
251 |
252 |
253 |
254 |
255 |
256 |
257 |
258 |
259 |
260 |
261 |
262 |
263 |
264 |
265 |
266 |
267 |
268 |
269 |
270 |
271 |
272 |
273 |
274 |
275 |
276 |
277 |
278 |
279 |
280 |
281 |
282 |
283 |
284 |
285 |
286 |
287 |
288 |
289 |
290 |
291 |
292 |
293 |
294 |
295 |
296 |
297 |
298 |
299 |
300 |
301 |
302 |
303 |
304 |
305 |
306 |
307 |
308 |
309 |
310 |
311 |
312 |
313 |
314 |
315 |
316 |
317 |
318 |
319 |
320 |
321 |
322 |
323 |
324 |
325 |
326 |
327 |
328 |
329 |
330 |
331 |
332 |
333 |
334 |
335 |
336 |
337 |
338 |
339 |
340 |
341 |
342 |
343 |
344 |
345 |
346 |
347 |
348 |
349 |
350 |
351 |
352 |
353 |
354 |
355 |
356 |
357 |
358 |
359 |
360 |
361 |
362 |
363 |
364 |
365 |
366 |
367 |
368 |
369 |
370 |
371 |
372 |
373 |
374 |
375 |
376 |
377 |
378 |
379 |
380 |
381 |
382 |
383 |
384 |
385 |
386 |
387 |
388 |
389 |
390 |
391 |
392 |
393 |
394 |
395 |
396 |
397 |
398 |
399 |
400 |
401 |
402 |
403 |
404 |
405 |
406 |
407 |
408 |
409 |
410 |
411 |
412 |
413 |
414 |
415 |
416 |
417 |
418 |
419 |
420 |
421 |
422 |
423 |
424 |
425 |
426 |
427 |
428 |
429 |
430 |
431 |
432 |
433 |
434 |
435 |
436 |
437 |
438 |
439 |
440 |
441 |
442 |
443 |
444 |
445 |
446 |
447 |
448 |
449 |
450 |
451 |
452 |
453 |
454 |
455 |
456 |
457 |
458 |
459 |
460 |
461 |
462 |
463 |
464 |
465 |
466 |
467 |
468 |
469 |
470 |
471 |
472 |
473 |
474 |
475 |
476 |
477 |
478 |
479 |
480 |
481 |
482 |
483 |
484 |
485 |
486 |
487 |
488 |
489 |
490 |
491 |
492 |
493 |
494 |
495 |
496 |
497 |
498 |
499 |
500 |
501 |
502 |
503 |
504 |
505 |
506 |
507 |
508 |
509 |
510 |
511 |
512 |
513 |
514 |
515 |
516 |
517 |
518 |
519 |
520 |
521 |
522 |
523 |
524 |
525 |
526 |
527 |
528 |
529 |
530 |
531 |
532 |
533 |
534 |
535 |
536 |
537 |
538 |
539 |
540 |
541 |
542 |
543 |
544 |
545 |
546 |
547 |
548 |
549 |
550 |
551 |
552 |
553 |
554 |
555 |
556 |
557 |
558 |
559 |
560 |
561 |
562 |
563 |
564 |
565 |
566 |
567 |
568 |
569 |
570 |
571 |
572 |
573 |
574 |
575 |
576 |
577 |
578 |
579 |
580 |
581 |
582 |
583 |
584 |
585 |
586 |
587 |
588 |
589 |
590 |
591 |
592 |
593 |
594 |
595 |
596 |
597 |
598 |
599 |
600 |
601 |
602 |
603 |
604 |
605 |
606 |
607 |
608 |
609 |
610 |
611 |
612 |
613 |
614 |
615 |
616 |
617 |
618 |
619 |
620 |
621 |
622 |
623 |
624 |
625 |
626 |
627 |
628 |
629 |
630 |
631 |
632 |
633 |
634 |
635 |
636 |
637 |
638 |
639 |
640 |
641 |
642 |
643 |
644 |
645 |
646 |
647 |
648 |
649 |
650 |
651 |
652 |
653 |
654 |
655 |
656 |
657 |
658 |
659 |
660 |
661 |
662 |
663 |
664 |
665 |
666 |
667 |
668 |
669 |
670 |
671 |
672 |
673 |
674 |
675 |
676 |
677 |
678 |
679 |
680 |
681 |
682 |
683 |
684 |
685 |
686 |
687 |
688 |
689 |
690 |
691 |
692 |
693 |
694 |
695 |
696 |
697 |
698 |
699 |
700 |
701 |
702 |
703 |
704 |
705 |
706 |
707 |
708 |
709 |
710 |
711 |
712 |
713 |
714 |
715 |
716 |
717 |
718 |
719 |
720 |
721 |
722 |
723 |
724 |
725 |
726 |
727 |
728 |
729 |
730 |
731 |
732 |
733 |
734 |
735 |
736 |
737 |
738 |
739 |
740 |
741 |
742 |
743 |
744 |
745 |
746 |
747 |
748 |
749 |
750 |
751 |
752 |
753 |
754 |
755 |
756 |
757 |
758 |
759 |
760 |
761 |
762 |
763 |
764 |
765 |
766 |
767 |
768 |
769 |
770 |
771 |
772 |
773 |
774 |
775 |
776 |
777 |
778 |
779 |
780 |
781 |
782 |
783 |
784 |
785 |
786 |
787 |
788 |
789 |
790 |
791 |
792 |
793 |
794 |
795 |
796 |
797 |
798 |
799 |
800 |
801 |
802 |
803 |
804 |
805 |
806 |
807 |
808 |
809 |
810 |
811 |
812 |
813 |
814 |
815 |
816 |
817 |
818 |
819 |
820 |
821 |
822 |
823 |
824 |
825 |
826 |
827 |
828 |
829 |
830 |
831 |
832 |
833 |
834 |
835 |
836 |
837 |
838 |
839 |
840 |
841 |
842 |
843 |
844 |
845 |
846 |
847 |
848 |
849 |
850 |
851 |
852 |
853 |
854 |
855 |
856 |
857 |
858 |
859 |
860 |
861 |
862 |
863 |
864 |
865 |
866 |
867 |
868 |
869 |
870 |
871 |
872 |
873 |
874 |
875 |
876 |
877 |
878 |
879 |
880 |
881 |
882 |
883 |
884 |
885 |
886 |
--------------------------------------------------------------------------------
/src/test/resources/org/gephi/toolkit/lesmiserables.gml:
--------------------------------------------------------------------------------
1 | Creator "Mark Newman on Fri Jul 21 12:44:53 2006"
2 | graph
3 | [
4 | node
5 | [
6 | id 0
7 | label "Myriel"
8 | ]
9 | node
10 | [
11 | id 1
12 | label "Napoleon"
13 | ]
14 | node
15 | [
16 | id 2
17 | label "MlleBaptistine"
18 | ]
19 | node
20 | [
21 | id 3
22 | label "MmeMagloire"
23 | ]
24 | node
25 | [
26 | id 4
27 | label "CountessDeLo"
28 | ]
29 | node
30 | [
31 | id 5
32 | label "Geborand"
33 | ]
34 | node
35 | [
36 | id 6
37 | label "Champtercier"
38 | ]
39 | node
40 | [
41 | id 7
42 | label "Cravatte"
43 | ]
44 | node
45 | [
46 | id 8
47 | label "Count"
48 | ]
49 | node
50 | [
51 | id 9
52 | label "OldMan"
53 | ]
54 | node
55 | [
56 | id 10
57 | label "Labarre"
58 | ]
59 | node
60 | [
61 | id 11
62 | label "Valjean"
63 | ]
64 | node
65 | [
66 | id 12
67 | label "Marguerite"
68 | ]
69 | node
70 | [
71 | id 13
72 | label "MmeDeR"
73 | ]
74 | node
75 | [
76 | id 14
77 | label "Isabeau"
78 | ]
79 | node
80 | [
81 | id 15
82 | label "Gervais"
83 | ]
84 | node
85 | [
86 | id 16
87 | label "Tholomyes"
88 | ]
89 | node
90 | [
91 | id 17
92 | label "Listolier"
93 | ]
94 | node
95 | [
96 | id 18
97 | label "Fameuil"
98 | ]
99 | node
100 | [
101 | id 19
102 | label "Blacheville"
103 | ]
104 | node
105 | [
106 | id 20
107 | label "Favourite"
108 | ]
109 | node
110 | [
111 | id 21
112 | label "Dahlia"
113 | ]
114 | node
115 | [
116 | id 22
117 | label "Zephine"
118 | ]
119 | node
120 | [
121 | id 23
122 | label "Fantine"
123 | ]
124 | node
125 | [
126 | id 24
127 | label "MmeThenardier"
128 | ]
129 | node
130 | [
131 | id 25
132 | label "Thenardier"
133 | ]
134 | node
135 | [
136 | id 26
137 | label "Cosette"
138 | ]
139 | node
140 | [
141 | id 27
142 | label "Javert"
143 | ]
144 | node
145 | [
146 | id 28
147 | label "Fauchelevent"
148 | ]
149 | node
150 | [
151 | id 29
152 | label "Bamatabois"
153 | ]
154 | node
155 | [
156 | id 30
157 | label "Perpetue"
158 | ]
159 | node
160 | [
161 | id 31
162 | label "Simplice"
163 | ]
164 | node
165 | [
166 | id 32
167 | label "Scaufflaire"
168 | ]
169 | node
170 | [
171 | id 33
172 | label "Woman1"
173 | ]
174 | node
175 | [
176 | id 34
177 | label "Judge"
178 | ]
179 | node
180 | [
181 | id 35
182 | label "Champmathieu"
183 | ]
184 | node
185 | [
186 | id 36
187 | label "Brevet"
188 | ]
189 | node
190 | [
191 | id 37
192 | label "Chenildieu"
193 | ]
194 | node
195 | [
196 | id 38
197 | label "Cochepaille"
198 | ]
199 | node
200 | [
201 | id 39
202 | label "Pontmercy"
203 | ]
204 | node
205 | [
206 | id 40
207 | label "Boulatruelle"
208 | ]
209 | node
210 | [
211 | id 41
212 | label "Eponine"
213 | ]
214 | node
215 | [
216 | id 42
217 | label "Anzelma"
218 | ]
219 | node
220 | [
221 | id 43
222 | label "Woman2"
223 | ]
224 | node
225 | [
226 | id 44
227 | label "MotherInnocent"
228 | ]
229 | node
230 | [
231 | id 45
232 | label "Gribier"
233 | ]
234 | node
235 | [
236 | id 46
237 | label "Jondrette"
238 | ]
239 | node
240 | [
241 | id 47
242 | label "MmeBurgon"
243 | ]
244 | node
245 | [
246 | id 48
247 | label "Gavroche"
248 | ]
249 | node
250 | [
251 | id 49
252 | label "Gillenormand"
253 | ]
254 | node
255 | [
256 | id 50
257 | label "Magnon"
258 | ]
259 | node
260 | [
261 | id 51
262 | label "MlleGillenormand"
263 | ]
264 | node
265 | [
266 | id 52
267 | label "MmePontmercy"
268 | ]
269 | node
270 | [
271 | id 53
272 | label "MlleVaubois"
273 | ]
274 | node
275 | [
276 | id 54
277 | label "LtGillenormand"
278 | ]
279 | node
280 | [
281 | id 55
282 | label "Marius"
283 | ]
284 | node
285 | [
286 | id 56
287 | label "BaronessT"
288 | ]
289 | node
290 | [
291 | id 57
292 | label "Mabeuf"
293 | ]
294 | node
295 | [
296 | id 58
297 | label "Enjolras"
298 | ]
299 | node
300 | [
301 | id 59
302 | label "Combeferre"
303 | ]
304 | node
305 | [
306 | id 60
307 | label "Prouvaire"
308 | ]
309 | node
310 | [
311 | id 61
312 | label "Feuilly"
313 | ]
314 | node
315 | [
316 | id 62
317 | label "Courfeyrac"
318 | ]
319 | node
320 | [
321 | id 63
322 | label "Bahorel"
323 | ]
324 | node
325 | [
326 | id 64
327 | label "Bossuet"
328 | ]
329 | node
330 | [
331 | id 65
332 | label "Joly"
333 | ]
334 | node
335 | [
336 | id 66
337 | label "Grantaire"
338 | ]
339 | node
340 | [
341 | id 67
342 | label "MotherPlutarch"
343 | ]
344 | node
345 | [
346 | id 68
347 | label "Gueulemer"
348 | ]
349 | node
350 | [
351 | id 69
352 | label "Babet"
353 | ]
354 | node
355 | [
356 | id 70
357 | label "Claquesous"
358 | ]
359 | node
360 | [
361 | id 71
362 | label "Montparnasse"
363 | ]
364 | node
365 | [
366 | id 72
367 | label "Toussaint"
368 | ]
369 | node
370 | [
371 | id 73
372 | label "Child1"
373 | ]
374 | node
375 | [
376 | id 74
377 | label "Child2"
378 | ]
379 | node
380 | [
381 | id 75
382 | label "Brujon"
383 | ]
384 | node
385 | [
386 | id 76
387 | label "MmeHucheloup"
388 | ]
389 | edge
390 | [
391 | source 1
392 | target 0
393 | value 1
394 | ]
395 | edge
396 | [
397 | source 2
398 | target 0
399 | value 8
400 | ]
401 | edge
402 | [
403 | source 3
404 | target 0
405 | value 10
406 | ]
407 | edge
408 | [
409 | source 3
410 | target 2
411 | value 6
412 | ]
413 | edge
414 | [
415 | source 4
416 | target 0
417 | value 1
418 | ]
419 | edge
420 | [
421 | source 5
422 | target 0
423 | value 1
424 | ]
425 | edge
426 | [
427 | source 6
428 | target 0
429 | value 1
430 | ]
431 | edge
432 | [
433 | source 7
434 | target 0
435 | value 1
436 | ]
437 | edge
438 | [
439 | source 8
440 | target 0
441 | value 2
442 | ]
443 | edge
444 | [
445 | source 9
446 | target 0
447 | value 1
448 | ]
449 | edge
450 | [
451 | source 11
452 | target 10
453 | value 1
454 | ]
455 | edge
456 | [
457 | source 11
458 | target 3
459 | value 3
460 | ]
461 | edge
462 | [
463 | source 11
464 | target 2
465 | value 3
466 | ]
467 | edge
468 | [
469 | source 11
470 | target 0
471 | value 5
472 | ]
473 | edge
474 | [
475 | source 12
476 | target 11
477 | value 1
478 | ]
479 | edge
480 | [
481 | source 13
482 | target 11
483 | value 1
484 | ]
485 | edge
486 | [
487 | source 14
488 | target 11
489 | value 1
490 | ]
491 | edge
492 | [
493 | source 15
494 | target 11
495 | value 1
496 | ]
497 | edge
498 | [
499 | source 17
500 | target 16
501 | value 4
502 | ]
503 | edge
504 | [
505 | source 18
506 | target 16
507 | value 4
508 | ]
509 | edge
510 | [
511 | source 18
512 | target 17
513 | value 4
514 | ]
515 | edge
516 | [
517 | source 19
518 | target 16
519 | value 4
520 | ]
521 | edge
522 | [
523 | source 19
524 | target 17
525 | value 4
526 | ]
527 | edge
528 | [
529 | source 19
530 | target 18
531 | value 4
532 | ]
533 | edge
534 | [
535 | source 20
536 | target 16
537 | value 3
538 | ]
539 | edge
540 | [
541 | source 20
542 | target 17
543 | value 3
544 | ]
545 | edge
546 | [
547 | source 20
548 | target 18
549 | value 3
550 | ]
551 | edge
552 | [
553 | source 20
554 | target 19
555 | value 4
556 | ]
557 | edge
558 | [
559 | source 21
560 | target 16
561 | value 3
562 | ]
563 | edge
564 | [
565 | source 21
566 | target 17
567 | value 3
568 | ]
569 | edge
570 | [
571 | source 21
572 | target 18
573 | value 3
574 | ]
575 | edge
576 | [
577 | source 21
578 | target 19
579 | value 3
580 | ]
581 | edge
582 | [
583 | source 21
584 | target 20
585 | value 5
586 | ]
587 | edge
588 | [
589 | source 22
590 | target 16
591 | value 3
592 | ]
593 | edge
594 | [
595 | source 22
596 | target 17
597 | value 3
598 | ]
599 | edge
600 | [
601 | source 22
602 | target 18
603 | value 3
604 | ]
605 | edge
606 | [
607 | source 22
608 | target 19
609 | value 3
610 | ]
611 | edge
612 | [
613 | source 22
614 | target 20
615 | value 4
616 | ]
617 | edge
618 | [
619 | source 22
620 | target 21
621 | value 4
622 | ]
623 | edge
624 | [
625 | source 23
626 | target 16
627 | value 3
628 | ]
629 | edge
630 | [
631 | source 23
632 | target 17
633 | value 3
634 | ]
635 | edge
636 | [
637 | source 23
638 | target 18
639 | value 3
640 | ]
641 | edge
642 | [
643 | source 23
644 | target 19
645 | value 3
646 | ]
647 | edge
648 | [
649 | source 23
650 | target 20
651 | value 4
652 | ]
653 | edge
654 | [
655 | source 23
656 | target 21
657 | value 4
658 | ]
659 | edge
660 | [
661 | source 23
662 | target 22
663 | value 4
664 | ]
665 | edge
666 | [
667 | source 23
668 | target 12
669 | value 2
670 | ]
671 | edge
672 | [
673 | source 23
674 | target 11
675 | value 9
676 | ]
677 | edge
678 | [
679 | source 24
680 | target 23
681 | value 2
682 | ]
683 | edge
684 | [
685 | source 24
686 | target 11
687 | value 7
688 | ]
689 | edge
690 | [
691 | source 25
692 | target 24
693 | value 13
694 | ]
695 | edge
696 | [
697 | source 25
698 | target 23
699 | value 1
700 | ]
701 | edge
702 | [
703 | source 25
704 | target 11
705 | value 12
706 | ]
707 | edge
708 | [
709 | source 26
710 | target 24
711 | value 4
712 | ]
713 | edge
714 | [
715 | source 26
716 | target 11
717 | value 31
718 | ]
719 | edge
720 | [
721 | source 26
722 | target 16
723 | value 1
724 | ]
725 | edge
726 | [
727 | source 26
728 | target 25
729 | value 1
730 | ]
731 | edge
732 | [
733 | source 27
734 | target 11
735 | value 17
736 | ]
737 | edge
738 | [
739 | source 27
740 | target 23
741 | value 5
742 | ]
743 | edge
744 | [
745 | source 27
746 | target 25
747 | value 5
748 | ]
749 | edge
750 | [
751 | source 27
752 | target 24
753 | value 1
754 | ]
755 | edge
756 | [
757 | source 27
758 | target 26
759 | value 1
760 | ]
761 | edge
762 | [
763 | source 28
764 | target 11
765 | value 8
766 | ]
767 | edge
768 | [
769 | source 28
770 | target 27
771 | value 1
772 | ]
773 | edge
774 | [
775 | source 29
776 | target 23
777 | value 1
778 | ]
779 | edge
780 | [
781 | source 29
782 | target 27
783 | value 1
784 | ]
785 | edge
786 | [
787 | source 29
788 | target 11
789 | value 2
790 | ]
791 | edge
792 | [
793 | source 30
794 | target 23
795 | value 1
796 | ]
797 | edge
798 | [
799 | source 31
800 | target 30
801 | value 2
802 | ]
803 | edge
804 | [
805 | source 31
806 | target 11
807 | value 3
808 | ]
809 | edge
810 | [
811 | source 31
812 | target 23
813 | value 2
814 | ]
815 | edge
816 | [
817 | source 31
818 | target 27
819 | value 1
820 | ]
821 | edge
822 | [
823 | source 32
824 | target 11
825 | value 1
826 | ]
827 | edge
828 | [
829 | source 33
830 | target 11
831 | value 2
832 | ]
833 | edge
834 | [
835 | source 33
836 | target 27
837 | value 1
838 | ]
839 | edge
840 | [
841 | source 34
842 | target 11
843 | value 3
844 | ]
845 | edge
846 | [
847 | source 34
848 | target 29
849 | value 2
850 | ]
851 | edge
852 | [
853 | source 35
854 | target 11
855 | value 3
856 | ]
857 | edge
858 | [
859 | source 35
860 | target 34
861 | value 3
862 | ]
863 | edge
864 | [
865 | source 35
866 | target 29
867 | value 2
868 | ]
869 | edge
870 | [
871 | source 36
872 | target 34
873 | value 2
874 | ]
875 | edge
876 | [
877 | source 36
878 | target 35
879 | value 2
880 | ]
881 | edge
882 | [
883 | source 36
884 | target 11
885 | value 2
886 | ]
887 | edge
888 | [
889 | source 36
890 | target 29
891 | value 1
892 | ]
893 | edge
894 | [
895 | source 37
896 | target 34
897 | value 2
898 | ]
899 | edge
900 | [
901 | source 37
902 | target 35
903 | value 2
904 | ]
905 | edge
906 | [
907 | source 37
908 | target 36
909 | value 2
910 | ]
911 | edge
912 | [
913 | source 37
914 | target 11
915 | value 2
916 | ]
917 | edge
918 | [
919 | source 37
920 | target 29
921 | value 1
922 | ]
923 | edge
924 | [
925 | source 38
926 | target 34
927 | value 2
928 | ]
929 | edge
930 | [
931 | source 38
932 | target 35
933 | value 2
934 | ]
935 | edge
936 | [
937 | source 38
938 | target 36
939 | value 2
940 | ]
941 | edge
942 | [
943 | source 38
944 | target 37
945 | value 2
946 | ]
947 | edge
948 | [
949 | source 38
950 | target 11
951 | value 2
952 | ]
953 | edge
954 | [
955 | source 38
956 | target 29
957 | value 1
958 | ]
959 | edge
960 | [
961 | source 39
962 | target 25
963 | value 1
964 | ]
965 | edge
966 | [
967 | source 40
968 | target 25
969 | value 1
970 | ]
971 | edge
972 | [
973 | source 41
974 | target 24
975 | value 2
976 | ]
977 | edge
978 | [
979 | source 41
980 | target 25
981 | value 3
982 | ]
983 | edge
984 | [
985 | source 42
986 | target 41
987 | value 2
988 | ]
989 | edge
990 | [
991 | source 42
992 | target 25
993 | value 2
994 | ]
995 | edge
996 | [
997 | source 42
998 | target 24
999 | value 1
1000 | ]
1001 | edge
1002 | [
1003 | source 43
1004 | target 11
1005 | value 3
1006 | ]
1007 | edge
1008 | [
1009 | source 43
1010 | target 26
1011 | value 1
1012 | ]
1013 | edge
1014 | [
1015 | source 43
1016 | target 27
1017 | value 1
1018 | ]
1019 | edge
1020 | [
1021 | source 44
1022 | target 28
1023 | value 3
1024 | ]
1025 | edge
1026 | [
1027 | source 44
1028 | target 11
1029 | value 1
1030 | ]
1031 | edge
1032 | [
1033 | source 45
1034 | target 28
1035 | value 2
1036 | ]
1037 | edge
1038 | [
1039 | source 47
1040 | target 46
1041 | value 1
1042 | ]
1043 | edge
1044 | [
1045 | source 48
1046 | target 47
1047 | value 2
1048 | ]
1049 | edge
1050 | [
1051 | source 48
1052 | target 25
1053 | value 1
1054 | ]
1055 | edge
1056 | [
1057 | source 48
1058 | target 27
1059 | value 1
1060 | ]
1061 | edge
1062 | [
1063 | source 48
1064 | target 11
1065 | value 1
1066 | ]
1067 | edge
1068 | [
1069 | source 49
1070 | target 26
1071 | value 3
1072 | ]
1073 | edge
1074 | [
1075 | source 49
1076 | target 11
1077 | value 2
1078 | ]
1079 | edge
1080 | [
1081 | source 50
1082 | target 49
1083 | value 1
1084 | ]
1085 | edge
1086 | [
1087 | source 50
1088 | target 24
1089 | value 1
1090 | ]
1091 | edge
1092 | [
1093 | source 51
1094 | target 49
1095 | value 9
1096 | ]
1097 | edge
1098 | [
1099 | source 51
1100 | target 26
1101 | value 2
1102 | ]
1103 | edge
1104 | [
1105 | source 51
1106 | target 11
1107 | value 2
1108 | ]
1109 | edge
1110 | [
1111 | source 52
1112 | target 51
1113 | value 1
1114 | ]
1115 | edge
1116 | [
1117 | source 52
1118 | target 39
1119 | value 1
1120 | ]
1121 | edge
1122 | [
1123 | source 53
1124 | target 51
1125 | value 1
1126 | ]
1127 | edge
1128 | [
1129 | source 54
1130 | target 51
1131 | value 2
1132 | ]
1133 | edge
1134 | [
1135 | source 54
1136 | target 49
1137 | value 1
1138 | ]
1139 | edge
1140 | [
1141 | source 54
1142 | target 26
1143 | value 1
1144 | ]
1145 | edge
1146 | [
1147 | source 55
1148 | target 51
1149 | value 6
1150 | ]
1151 | edge
1152 | [
1153 | source 55
1154 | target 49
1155 | value 12
1156 | ]
1157 | edge
1158 | [
1159 | source 55
1160 | target 39
1161 | value 1
1162 | ]
1163 | edge
1164 | [
1165 | source 55
1166 | target 54
1167 | value 1
1168 | ]
1169 | edge
1170 | [
1171 | source 55
1172 | target 26
1173 | value 21
1174 | ]
1175 | edge
1176 | [
1177 | source 55
1178 | target 11
1179 | value 19
1180 | ]
1181 | edge
1182 | [
1183 | source 55
1184 | target 16
1185 | value 1
1186 | ]
1187 | edge
1188 | [
1189 | source 55
1190 | target 25
1191 | value 2
1192 | ]
1193 | edge
1194 | [
1195 | source 55
1196 | target 41
1197 | value 5
1198 | ]
1199 | edge
1200 | [
1201 | source 55
1202 | target 48
1203 | value 4
1204 | ]
1205 | edge
1206 | [
1207 | source 56
1208 | target 49
1209 | value 1
1210 | ]
1211 | edge
1212 | [
1213 | source 56
1214 | target 55
1215 | value 1
1216 | ]
1217 | edge
1218 | [
1219 | source 57
1220 | target 55
1221 | value 1
1222 | ]
1223 | edge
1224 | [
1225 | source 57
1226 | target 41
1227 | value 1
1228 | ]
1229 | edge
1230 | [
1231 | source 57
1232 | target 48
1233 | value 1
1234 | ]
1235 | edge
1236 | [
1237 | source 58
1238 | target 55
1239 | value 7
1240 | ]
1241 | edge
1242 | [
1243 | source 58
1244 | target 48
1245 | value 7
1246 | ]
1247 | edge
1248 | [
1249 | source 58
1250 | target 27
1251 | value 6
1252 | ]
1253 | edge
1254 | [
1255 | source 58
1256 | target 57
1257 | value 1
1258 | ]
1259 | edge
1260 | [
1261 | source 58
1262 | target 11
1263 | value 4
1264 | ]
1265 | edge
1266 | [
1267 | source 59
1268 | target 58
1269 | value 15
1270 | ]
1271 | edge
1272 | [
1273 | source 59
1274 | target 55
1275 | value 5
1276 | ]
1277 | edge
1278 | [
1279 | source 59
1280 | target 48
1281 | value 6
1282 | ]
1283 | edge
1284 | [
1285 | source 59
1286 | target 57
1287 | value 2
1288 | ]
1289 | edge
1290 | [
1291 | source 60
1292 | target 48
1293 | value 1
1294 | ]
1295 | edge
1296 | [
1297 | source 60
1298 | target 58
1299 | value 4
1300 | ]
1301 | edge
1302 | [
1303 | source 60
1304 | target 59
1305 | value 2
1306 | ]
1307 | edge
1308 | [
1309 | source 61
1310 | target 48
1311 | value 2
1312 | ]
1313 | edge
1314 | [
1315 | source 61
1316 | target 58
1317 | value 6
1318 | ]
1319 | edge
1320 | [
1321 | source 61
1322 | target 60
1323 | value 2
1324 | ]
1325 | edge
1326 | [
1327 | source 61
1328 | target 59
1329 | value 5
1330 | ]
1331 | edge
1332 | [
1333 | source 61
1334 | target 57
1335 | value 1
1336 | ]
1337 | edge
1338 | [
1339 | source 61
1340 | target 55
1341 | value 1
1342 | ]
1343 | edge
1344 | [
1345 | source 62
1346 | target 55
1347 | value 9
1348 | ]
1349 | edge
1350 | [
1351 | source 62
1352 | target 58
1353 | value 17
1354 | ]
1355 | edge
1356 | [
1357 | source 62
1358 | target 59
1359 | value 13
1360 | ]
1361 | edge
1362 | [
1363 | source 62
1364 | target 48
1365 | value 7
1366 | ]
1367 | edge
1368 | [
1369 | source 62
1370 | target 57
1371 | value 2
1372 | ]
1373 | edge
1374 | [
1375 | source 62
1376 | target 41
1377 | value 1
1378 | ]
1379 | edge
1380 | [
1381 | source 62
1382 | target 61
1383 | value 6
1384 | ]
1385 | edge
1386 | [
1387 | source 62
1388 | target 60
1389 | value 3
1390 | ]
1391 | edge
1392 | [
1393 | source 63
1394 | target 59
1395 | value 5
1396 | ]
1397 | edge
1398 | [
1399 | source 63
1400 | target 48
1401 | value 5
1402 | ]
1403 | edge
1404 | [
1405 | source 63
1406 | target 62
1407 | value 6
1408 | ]
1409 | edge
1410 | [
1411 | source 63
1412 | target 57
1413 | value 2
1414 | ]
1415 | edge
1416 | [
1417 | source 63
1418 | target 58
1419 | value 4
1420 | ]
1421 | edge
1422 | [
1423 | source 63
1424 | target 61
1425 | value 3
1426 | ]
1427 | edge
1428 | [
1429 | source 63
1430 | target 60
1431 | value 2
1432 | ]
1433 | edge
1434 | [
1435 | source 63
1436 | target 55
1437 | value 1
1438 | ]
1439 | edge
1440 | [
1441 | source 64
1442 | target 55
1443 | value 5
1444 | ]
1445 | edge
1446 | [
1447 | source 64
1448 | target 62
1449 | value 12
1450 | ]
1451 | edge
1452 | [
1453 | source 64
1454 | target 48
1455 | value 5
1456 | ]
1457 | edge
1458 | [
1459 | source 64
1460 | target 63
1461 | value 4
1462 | ]
1463 | edge
1464 | [
1465 | source 64
1466 | target 58
1467 | value 10
1468 | ]
1469 | edge
1470 | [
1471 | source 64
1472 | target 61
1473 | value 6
1474 | ]
1475 | edge
1476 | [
1477 | source 64
1478 | target 60
1479 | value 2
1480 | ]
1481 | edge
1482 | [
1483 | source 64
1484 | target 59
1485 | value 9
1486 | ]
1487 | edge
1488 | [
1489 | source 64
1490 | target 57
1491 | value 1
1492 | ]
1493 | edge
1494 | [
1495 | source 64
1496 | target 11
1497 | value 1
1498 | ]
1499 | edge
1500 | [
1501 | source 65
1502 | target 63
1503 | value 5
1504 | ]
1505 | edge
1506 | [
1507 | source 65
1508 | target 64
1509 | value 7
1510 | ]
1511 | edge
1512 | [
1513 | source 65
1514 | target 48
1515 | value 3
1516 | ]
1517 | edge
1518 | [
1519 | source 65
1520 | target 62
1521 | value 5
1522 | ]
1523 | edge
1524 | [
1525 | source 65
1526 | target 58
1527 | value 5
1528 | ]
1529 | edge
1530 | [
1531 | source 65
1532 | target 61
1533 | value 5
1534 | ]
1535 | edge
1536 | [
1537 | source 65
1538 | target 60
1539 | value 2
1540 | ]
1541 | edge
1542 | [
1543 | source 65
1544 | target 59
1545 | value 5
1546 | ]
1547 | edge
1548 | [
1549 | source 65
1550 | target 57
1551 | value 1
1552 | ]
1553 | edge
1554 | [
1555 | source 65
1556 | target 55
1557 | value 2
1558 | ]
1559 | edge
1560 | [
1561 | source 66
1562 | target 64
1563 | value 3
1564 | ]
1565 | edge
1566 | [
1567 | source 66
1568 | target 58
1569 | value 3
1570 | ]
1571 | edge
1572 | [
1573 | source 66
1574 | target 59
1575 | value 1
1576 | ]
1577 | edge
1578 | [
1579 | source 66
1580 | target 62
1581 | value 2
1582 | ]
1583 | edge
1584 | [
1585 | source 66
1586 | target 65
1587 | value 2
1588 | ]
1589 | edge
1590 | [
1591 | source 66
1592 | target 48
1593 | value 1
1594 | ]
1595 | edge
1596 | [
1597 | source 66
1598 | target 63
1599 | value 1
1600 | ]
1601 | edge
1602 | [
1603 | source 66
1604 | target 61
1605 | value 1
1606 | ]
1607 | edge
1608 | [
1609 | source 66
1610 | target 60
1611 | value 1
1612 | ]
1613 | edge
1614 | [
1615 | source 67
1616 | target 57
1617 | value 3
1618 | ]
1619 | edge
1620 | [
1621 | source 68
1622 | target 25
1623 | value 5
1624 | ]
1625 | edge
1626 | [
1627 | source 68
1628 | target 11
1629 | value 1
1630 | ]
1631 | edge
1632 | [
1633 | source 68
1634 | target 24
1635 | value 1
1636 | ]
1637 | edge
1638 | [
1639 | source 68
1640 | target 27
1641 | value 1
1642 | ]
1643 | edge
1644 | [
1645 | source 68
1646 | target 48
1647 | value 1
1648 | ]
1649 | edge
1650 | [
1651 | source 68
1652 | target 41
1653 | value 1
1654 | ]
1655 | edge
1656 | [
1657 | source 69
1658 | target 25
1659 | value 6
1660 | ]
1661 | edge
1662 | [
1663 | source 69
1664 | target 68
1665 | value 6
1666 | ]
1667 | edge
1668 | [
1669 | source 69
1670 | target 11
1671 | value 1
1672 | ]
1673 | edge
1674 | [
1675 | source 69
1676 | target 24
1677 | value 1
1678 | ]
1679 | edge
1680 | [
1681 | source 69
1682 | target 27
1683 | value 2
1684 | ]
1685 | edge
1686 | [
1687 | source 69
1688 | target 48
1689 | value 1
1690 | ]
1691 | edge
1692 | [
1693 | source 69
1694 | target 41
1695 | value 1
1696 | ]
1697 | edge
1698 | [
1699 | source 70
1700 | target 25
1701 | value 4
1702 | ]
1703 | edge
1704 | [
1705 | source 70
1706 | target 69
1707 | value 4
1708 | ]
1709 | edge
1710 | [
1711 | source 70
1712 | target 68
1713 | value 4
1714 | ]
1715 | edge
1716 | [
1717 | source 70
1718 | target 11
1719 | value 1
1720 | ]
1721 | edge
1722 | [
1723 | source 70
1724 | target 24
1725 | value 1
1726 | ]
1727 | edge
1728 | [
1729 | source 70
1730 | target 27
1731 | value 1
1732 | ]
1733 | edge
1734 | [
1735 | source 70
1736 | target 41
1737 | value 1
1738 | ]
1739 | edge
1740 | [
1741 | source 70
1742 | target 58
1743 | value 1
1744 | ]
1745 | edge
1746 | [
1747 | source 71
1748 | target 27
1749 | value 1
1750 | ]
1751 | edge
1752 | [
1753 | source 71
1754 | target 69
1755 | value 2
1756 | ]
1757 | edge
1758 | [
1759 | source 71
1760 | target 68
1761 | value 2
1762 | ]
1763 | edge
1764 | [
1765 | source 71
1766 | target 70
1767 | value 2
1768 | ]
1769 | edge
1770 | [
1771 | source 71
1772 | target 11
1773 | value 1
1774 | ]
1775 | edge
1776 | [
1777 | source 71
1778 | target 48
1779 | value 1
1780 | ]
1781 | edge
1782 | [
1783 | source 71
1784 | target 41
1785 | value 1
1786 | ]
1787 | edge
1788 | [
1789 | source 71
1790 | target 25
1791 | value 1
1792 | ]
1793 | edge
1794 | [
1795 | source 72
1796 | target 26
1797 | value 2
1798 | ]
1799 | edge
1800 | [
1801 | source 72
1802 | target 27
1803 | value 1
1804 | ]
1805 | edge
1806 | [
1807 | source 72
1808 | target 11
1809 | value 1
1810 | ]
1811 | edge
1812 | [
1813 | source 73
1814 | target 48
1815 | value 2
1816 | ]
1817 | edge
1818 | [
1819 | source 74
1820 | target 48
1821 | value 2
1822 | ]
1823 | edge
1824 | [
1825 | source 74
1826 | target 73
1827 | value 3
1828 | ]
1829 | edge
1830 | [
1831 | source 75
1832 | target 69
1833 | value 3
1834 | ]
1835 | edge
1836 | [
1837 | source 75
1838 | target 68
1839 | value 3
1840 | ]
1841 | edge
1842 | [
1843 | source 75
1844 | target 25
1845 | value 3
1846 | ]
1847 | edge
1848 | [
1849 | source 75
1850 | target 48
1851 | value 1
1852 | ]
1853 | edge
1854 | [
1855 | source 75
1856 | target 41
1857 | value 1
1858 | ]
1859 | edge
1860 | [
1861 | source 75
1862 | target 70
1863 | value 1
1864 | ]
1865 | edge
1866 | [
1867 | source 75
1868 | target 71
1869 | value 1
1870 | ]
1871 | edge
1872 | [
1873 | source 76
1874 | target 64
1875 | value 1
1876 | ]
1877 | edge
1878 | [
1879 | source 76
1880 | target 65
1881 | value 1
1882 | ]
1883 | edge
1884 | [
1885 | source 76
1886 | target 66
1887 | value 1
1888 | ]
1889 | edge
1890 | [
1891 | source 76
1892 | target 63
1893 | value 1
1894 | ]
1895 | edge
1896 | [
1897 | source 76
1898 | target 62
1899 | value 1
1900 | ]
1901 | edge
1902 | [
1903 | source 76
1904 | target 48
1905 | value 1
1906 | ]
1907 | edge
1908 | [
1909 | source 76
1910 | target 58
1911 | value 1
1912 | ]
1913 | ]
1914 |
--------------------------------------------------------------------------------
/src/test/resources/org/gephi/toolkit/lesmiserables.sqlite3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/gephi/gephi-toolkit/d03859cb5b03e8853c6e01130413e7b528e56cd0/src/test/resources/org/gephi/toolkit/lesmiserables.sqlite3
--------------------------------------------------------------------------------
/src/test/resources/org/gephi/toolkit/timeframe1.gexf:
--------------------------------------------------------------------------------
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 |
--------------------------------------------------------------------------------
/src/test/resources/org/gephi/toolkit/timeframe2.gexf:
--------------------------------------------------------------------------------
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 |
--------------------------------------------------------------------------------
/src/test/resources/org/gephi/toolkit/timeframe3.gexf:
--------------------------------------------------------------------------------
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 |
--------------------------------------------------------------------------------