[Git][java-team/dirgra][master] 3 commits: Imported Upstream version 0.4
Miguel Landaeta (@nomadium)
gitlab at salsa.debian.org
Tue Nov 28 18:10:29 GMT 2023
Miguel Landaeta pushed to branch master at Debian Java Maintainers / dirgra
Commits:
63c7099c by Miguel Landaeta at 2023-11-25T16:45:45+00:00
Imported Upstream version 0.4
- - - - -
b680f117 by Miguel Landaeta at 2023-11-28T16:49:59+00:00
Merge tag 'upstream/0.4'
Upstream version 0.4
- - - - -
a3ce8ef3 by Miguel Landaeta at 2023-11-28T16:50:26+00:00
Upload 0.4-1 to unstable
- - - - -
16 changed files:
- debian/changelog
- − debian/compat
- debian/control
- debian/copyright
- debian/rules
- debian/watch
- − dirgra.iml
- pom.xml
- spec/data_iterator_spec.rb
- spec/directed_graph_spec.rb
- spec/edge_spec.rb
- spec/edge_type_iterator_spec.rb
- + spec/helpers/vertex_id_helper.rb
- spec/vertex_spec.rb
- + src/module-info.java
- src/org/jruby/dirgra/DirectedGraph.java
Changes:
=====================================
debian/changelog
=====================================
@@ -1,3 +1,18 @@
+dirgra (0.4-1) unstable; urgency=medium
+
+ * New upstream release.
+ * Update Vcs-* URL fields.
+ * Bump DH compat level to 13.
+ * Bump Standards-Version to 4.6.2.
+ * Add Rules-Requires-Root field with 'no' as value.
+ * Use https URL for copyright Format field.
+ * Update copyright dates.
+ * Bump watch file version to 4.
+ * Apply Multi-Arch hints.
+ * Drop unneeded get-orig-source target in d/rules.
+
+ -- Miguel Landaeta <nomadium at debian.org> Sat, 25 Nov 2023 16:43:28 +0000
+
dirgra (0.3-1) unstable; urgency=medium
* Initial release. (Closes: #851197).
=====================================
debian/compat deleted
=====================================
@@ -1 +0,0 @@
-10
=====================================
debian/control
=====================================
@@ -3,7 +3,7 @@ Section: java
Priority: optional
Maintainer: Debian Java Maintainers <pkg-java-maintainers at lists.alioth.debian.org>
Uploaders: Miguel Landaeta <nomadium at debian.org>
-Build-Depends: debhelper (>= 10~),
+Build-Depends: debhelper-compat (= 13),
default-jdk,
javahelper,
junit4,
@@ -11,13 +11,15 @@ Build-Depends: debhelper (>= 10~),
libmaven-source-plugin-java,
maven-debian-helper,
maven-repo-helper
-Standards-Version: 3.9.8
+Standards-Version: 4.6.2
Homepage: https://github.com/jruby/dirgra
-Vcs-Git: https://anonscm.debian.org/git/pkg-java/dirgra.git
-Vcs-Browser: https://anonscm.debian.org/cgit/pkg-java/dirgra.git
+Vcs-Git: https://salsa.debian.org/java-team/dirgra.git
+Vcs-Browser: https://salsa.debian.org/java-team/dirgra
+Rules-Requires-Root: no
Package: libdirgra-java
Architecture: all
+Multi-Arch: foreign
Depends: ${misc:Depends}, ${maven:Depends}
Description: Java library providing a simple directed graph implementation
A directed graph (or digraph) is a graph (that is a set of vertices
@@ -29,6 +31,7 @@ Description: Java library providing a simple directed graph implementation
Package: libdirgra-java-doc
Architecture: all
+Multi-Arch: foreign
Section: doc
Depends: ${misc:Depends}
Suggests: libdirgra-java
=====================================
debian/copyright
=====================================
@@ -1,14 +1,14 @@
-Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: dirgra
Upstream-Contact: Thomas E Enebo <tom.enebo at gmail.com>
Source: https://github.com/jruby/dirgra
Files: *
-Copyright: 2014-2015 Thomas E Enebo <tom.enebo at gmail.com>
+Copyright: 2014-2021 Thomas E Enebo <tom.enebo at gmail.com>
License: EPL-1.0
Files: debian/*
-Copyright: 2017 Miguel Landaeta <nomadium at debian.org>
+Copyright: 2017-2023 Miguel Landaeta <nomadium at debian.org>
License: EPL-1.0
Comment: the Debian packaging is licensed under the same terms as the original package.
=====================================
debian/rules
=====================================
@@ -9,6 +9,3 @@ override_dh_install:
override_dh_auto_clean:
dh_auto_clean
jh_clean
-
-get-orig-source:
- uscan --verbose --download-current-version
=====================================
debian/watch
=====================================
@@ -1,3 +1,3 @@
-version=3
-https://github.com/jruby/dirgra/releases \
- /jruby/dirgra/archive/([0-9].+)\.tar\.gz
+version=4
+https://github.com/jruby/dirgra/tags \
+ /jruby/dirgra/archive/refs/tags/([0-9])\.tar\.gz
=====================================
dirgra.iml deleted
=====================================
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
- <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_6" inherit-compiler-output="false">
- <output url="file://$MODULE_DIR$/target/classes" />
- <output-test url="file://$MODULE_DIR$/target/test-classes" />
- <content url="file://$MODULE_DIR$">
- <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
- <excludeFolder url="file://$MODULE_DIR$/target" />
- </content>
- <orderEntry type="inheritedJdk" />
- <orderEntry type="sourceFolder" forTests="false" />
- <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.10" level="project" />
- <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.1" level="project" />
- </component>
-</module>
\ No newline at end of file
=====================================
pom.xml
=====================================
@@ -5,7 +5,7 @@
<groupId>org.jruby</groupId>
<artifactId>dirgra</artifactId>
<packaging>jar</packaging>
- <version>0.3</version>
+ <version>0.4-SNAPSHOT</version>
<name>Dirgra</name>
<url>https://github.com/jruby/dirgra</url>
<description>Simple Directed Graph</description>
@@ -16,14 +16,9 @@
<version>7</version>
</parent>
- <issueManagement>
- <system>JIRA</system>
- <url>http://jira.codehaus.org/browse/JRUBY</url>
- </issueManagement>
-
<scm>
- <connection>scm:git:git://github.com/jruby/dirgra.git</connection>
- <developerConnection>scm:git:git://github.com/jruby/dirgra.git</developerConnection>
+ <connection>scm:git:https://github.com/jruby/dirgra.git</connection>
+ <developerConnection>scm:git:https://github.com/jruby/dirgra.git</developerConnection>
<url>http://github.com/jruby/dirgra</url>
</scm>
@@ -46,7 +41,7 @@
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
- <version>4.10</version>
+ <version>4.13.1</version>
<scope>test</scope>
</dependency>
</dependencies>
@@ -65,6 +60,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
+ <version>3.2.1</version>
<executions>
<execution>
<id>attach-sources</id>
@@ -77,6 +73,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
+ <version>3.0.1</version>
<executions>
<execution>
<id>attach-javadocs</id>
@@ -87,20 +84,53 @@
</executions>
</plugin>
<plugin>
+ <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>1.6</source>
- <target>1.6</target>
- </configuration>
+ <version>3.7.0</version>
+ <executions>
+ <execution>
+ <id>default-compile</id>
+ <configuration>
+ <includes>
+ <include>module-info.java</include>
+ </includes>
+ <release>9</release>
+ </configuration>
+ </execution>
+ <execution>
+ <id>default-testCompile</id>
+ <configuration>
+ <release>9</release>
+ </configuration>
+ </execution>
+ <execution>
+ <id>base-compile</id>
+ <goals>
+ <goal>compile</goal>
+ </goals>
+ <configuration>
+ <source>8</source>
+ <target>8</target>
+ <excludes>
+ <exclude>module-info.java</exclude>
+ </excludes>
+ </configuration>
+ </execution>
+ </executions>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
+ <version>3.2.0</version>
<configuration>
<archive>
<manifestFile>MANIFEST.MF</manifestFile>
</archive>
</configuration>
</plugin>
+ <plugin>
+ <artifactId>maven-release-plugin</artifactId>
+ <version>2.5.3</version>
+ </plugin>
</plugins>
</build>
</project>
=====================================
spec/data_iterator_spec.rb
=====================================
@@ -3,12 +3,19 @@ import 'org.jruby.dirgra.DirectedGraph'
import 'org.jruby.dirgra.DataIterator'
import 'java.util.NoSuchElementException'
+require 'vertex_id_helper'
+
describe "DataIterator" do
+ let(:graph) { DirectedGraph.new }
+ let(:one) { VertexID.new(1) }
+ let(:two) { VertexID.new(2) }
+ let(:three) { VertexID.new(3) }
+ let(:four) { VertexID.new(4) }
before do
- @graph = DirectedGraph.new
- @graph.addEdge(1, 2, "foo")
- @graph.addEdge(2, 3, "foo")
+ @edge_count = 0
+ add_edge(one, two, "foo")
+ add_edge(two, three, "foo")
end
# hasNext method doesn't use the source or destination of iterator at all
@@ -18,12 +25,12 @@ describe "DataIterator" do
context "edges of given type" do
it "returns true if the iterator contains an edge of given type" do
- iterator = DataIterator.new(@graph.edges(), "foo", true, false)
+ iterator = DataIterator.new(*edges, "foo", true, false)
expect(iterator.hasNext).to eq true
end
it "returns false if the iterator does not contain any edge of given type" do
- iterator = DataIterator.new(@graph.edges(), "bar", true, false)
+ iterator = DataIterator.new(*edges, "bar", true, false)
expect(iterator.hasNext).to eq false
end
@@ -32,12 +39,12 @@ describe "DataIterator" do
context "edges not of given type" do
it "returns true if the iterator contains an edge not of given type" do
- iterator = DataIterator.new(@graph.edges(), "bar", true, true)
+ iterator = DataIterator.new(*edges, "bar", true, true)
expect(iterator.hasNext).to eq true
end
it "returns false if the iterator contains an edge of given type" do
- iterator = DataIterator.new(@graph.edges(), "foo", true, true)
+ iterator = DataIterator.new(*edges, "foo", true, true)
expect(iterator.hasNext).to eq false
end
@@ -49,13 +56,13 @@ describe "DataIterator" do
it "returns true if the iterator contains an edge of type nil" do
# add an edge of type nil
- @graph.addEdge(4,1,nil)
- iterator = DataIterator.new(@graph.edges(), nil, true, false)
+ add_edge(four,one,nil)
+ iterator = DataIterator.new(*edges, nil, true, false)
expect(iterator.hasNext).to eq true
end
it "returns false if the iterator does not contain any edge of type nil" do
- iterator = DataIterator.new(@graph.edges(), nil, true, false)
+ iterator = DataIterator.new(*edges, nil, true, false)
expect(iterator.hasNext).to eq false
end
@@ -64,17 +71,17 @@ describe "DataIterator" do
context "edges not of given type" do
it "returns true if the iterator contains an edge not of type nil" do
- iterator = DataIterator.new(@graph.edges(), nil, true, true)
+ iterator = DataIterator.new(*edges, nil, true, true)
expect(iterator.hasNext).to eq true
end
it "returns false if the iterator contains all edges of type nil" do
# remove existing edges not of type nil
- @graph.removeEdge(1,2)
- @graph.removeEdge(2,3)
+ remove_edge(one,two)
+ remove_edge(two,three)
# add an edge of type nil
- @graph.addEdge(4,1,nil)
- iterator = DataIterator.new(@graph.edges(), nil, true, true)
+ add_edge(four,one,nil)
+ iterator = DataIterator.new(*edges, nil, true, true)
expect(iterator.hasNext).to eq false
end
@@ -86,16 +93,16 @@ describe "DataIterator" do
it "returns true if the iterator contains an edge not of type nil" do
# remove existing edges not of type nil
- @graph.removeEdge(1,2)
- @graph.removeEdge(2,3)
+ remove_edge(one,two)
+ remove_edge(two,three)
# add an edge of type nil
- @graph.addEdge(4,1,nil)
- iterator = DataIterator.new(@graph.edges(), "foo", true, true)
+ add_edge(four,one,nil)
+ iterator = DataIterator.new(*edges, "foo", true, true)
expect(iterator.hasNext).to eq true
end
it "returns false if the iterator contains all edges not of type nil" do
- iterator = DataIterator.new(@graph.edges(), "foo", true, true)
+ iterator = DataIterator.new(*edges, "foo", true, true)
expect(iterator.hasNext).to eq false
end
end
@@ -108,15 +115,15 @@ describe "DataIterator" do
context "when asked for data of source vertex" do
it "returns the data of the source of the edge" do
- iterator = DataIterator.new(@graph.edges(), "foo", true, false)
- expect([1, 2]).to include iterator.next
+ iterator = DataIterator.new(*edges, "foo", true, false)
+ expect([one, two]).to include iterator.next
end
end
context "when asked for data of destination vertex" do
it "returns the data of the destination of the edge" do
- iterator = DataIterator.new(@graph.edges(), "foo", false, false)
- expect([2, 3]).to include iterator.next
+ iterator = DataIterator.new(*edges, "foo", false, false)
+ expect([two, three]).to include iterator.next
end
end
end
@@ -128,12 +135,12 @@ describe "DataIterator" do
end
it "throws NoSuchElementException for source data" do
- iterator = DataIterator.new(@empty_graph.edges(), "foo", true, false)
+ iterator = DataIterator.new(@empty_graph.edges.to_array, 0, "foo", true, false)
expect { iterator.next }.to raise_error NoSuchElementException
end
it "throws NoSuchElementException for destination data" do
- iterator = DataIterator.new(@empty_graph.edges(), "foo", false, false)
+ iterator = DataIterator.new(@empty_graph.edges.to_array, 0, "foo", false, false)
expect { iterator.next }.to raise_error NoSuchElementException
end
end
@@ -142,7 +149,7 @@ describe "DataIterator" do
describe "remove" do
it "throws UnsupportedOperationException exception" do
- iterator = DataIterator.new(@graph.edges(), "foo", true, false)
+ iterator = DataIterator.new(graph.edges.to_array, 0, "foo", true, false)
expect { iterator.remove }.to raise_error Java::JavaLang::UnsupportedOperationException
end
end
=====================================
spec/directed_graph_spec.rb
=====================================
@@ -1,89 +1,101 @@
require 'dirgra-0.3.jar'
import 'org.jruby.dirgra.DirectedGraph'
+require 'vertex_id_helper'
+
# This is spec for Directed Graph Library
describe "Directed Graph Utility" do
+ let(:graph) { DirectedGraph.new }
+ let(:one) { VertexID.new(1) }
+ let(:two) { VertexID.new(2) }
+ let(:three) { VertexID.new(3) }
+ let(:four) { VertexID.new(4) }
+ let(:five) { VertexID.new(5) }
+ let(:six) { VertexID.new(6) }
+ let(:hundred) { VertexID.new(100) }
+ let(:foo) { VertexID.new("foo") }
+ let(:bar) { VertexID.new("bar") }
+
before do
- @graph = DirectedGraph.new
+ @edge_count = 0
end
it "adds an edge to newly created graph" do
- @graph.edges.size.should be 0
- @graph.addEdge(1,2,'foo')
- @graph.addEdge(4,5,'bar')
- @graph.edges.size.should be 2
+ expect(graph.edges.size).to eq 0
+ add_edge(one,two,'foo')
+ add_edge(four,five,'bar')
+ expect(graph.edges.size).to eq 2
end
it "removes an existing edge from a graph" do
- @graph.addEdge(1,2,'foo')
- @graph.addEdge(4,5,'bar')
- @graph.removeEdge(4,5)
- @graph.edges.size.should be 1
- @graph.removeEdge(@graph.edges.to_a.last)
- @graph.edges.size.should be 0
+ add_edge(one,two,'foo')
+ add_edge(four,five,'bar')
+ remove_edge(four,five)
+ expect(graph.edges.size).to eq 1
+ graph.removeEdge(graph.edges.to_a.last)
+ expect(graph.edges.size).to eq 0
end
it "does not delete a non-existent edge from the graph" do
- @graph.removeEdge(2,1)
- @graph.edges.size.should be 0
+ remove_edge(two,one)
+ expect(graph.edges.size).to eq 0
end
it "removes a vertex and its associated edges" do
- @graph.removeVertexFor(3)
- @graph.vertices.size.should be 0
- @graph.addEdge(1,2,'foo')
- @graph.addEdge(4,5,'bar')
- @graph.removeVertexFor(2)
- @graph.vertices.size.should be 3
- @graph.edges.size.should be 1
+ graph.removeVertexFor(three)
+ expect(graph.vertices.size).to eq 0
+ add_edge(one,two,'foo')
+ add_edge(four,five,'bar')
+ graph.removeVertexFor(two)
+ expect(graph.vertices.size).to eq 3
+ expect(graph.edges.size).to eq 1
end
it "gives vertex for given data" do
- @graph.addEdge(1,2,'foo')
- @graph.findOrCreateVertexFor(2).getData().should be 2
+ add_edge(one,two,'foo')
+ expect(graph.findOrCreateVertexFor(two).getData()).to eq two
end
it "creates a new vertex if it is not present" do
- @graph.findOrCreateVertexFor(100).getData().should be 100
+ expect(graph.findOrCreateVertexFor(hundred).getData()).to eq hundred
end
it "finds already existing vertex" do
- @graph.findVertexFor(100).should be_nil
- @graph.addEdge(1,2,'foo')
- @graph.findVertexFor(1).getData().should be 1
+ expect(graph.findVertexFor(hundred)).to eq nil
+ add_edge(one,two,'foo')
+ expect(graph.findVertexFor(one).getData()).to eq one
end
it "gives correct size of graph" do
- @graph.removeEdge(1,2)
- @graph.size.should be 0
- @graph.addEdge(5,6,'baz')
- @graph.size.should be 2
- @graph.addEdge('foo','bar','baz')
- @graph.size.should be 4
+ remove_edge(one,two)
+ expect(graph.size).to eq 0
+ add_edge(five,six,'baz')
+ expect(graph.size).to eq 2
+ add_edge(foo,bar,'baz')
+ expect(graph.size).to eq 4
end
it "gives all data in the graph" do
- @graph.allData.size.should be 0
- @graph.addEdge(1,2,'baz')
- @graph.allData.each do |key|
- @graph.findVertexFor(key).should_not be_nil
+ expect(graph.allData.size).to eq 0
+ add_edge(one,two,'baz')
+ graph.allData.each do |key|
+ expect(graph.findVertexFor(key)).to_not eq nil
end
- @graph.removeVertexFor(1)
- @graph.allData.each do |key|
- @graph.findVertexFor(key).should_not be_nil
+ graph.removeVertexFor(one)
+ graph.allData.each do |key|
+ expect(graph.findVertexFor(key)).to_not eq nil
end
end
it "gives data in the graph in the order in which it was inserted" do
- @graph.getInorderData.to_a.size.should be 0
- @graph.findOrCreateVertexFor(1)
- @graph.getInorderData.to_a.should eq [1]
- @graph.addEdge('foo','bar','baz')
- @graph.getInorderData.to_a.should eq [1,'foo','bar']
- @graph.removeVertexFor('foo')
- @graph.getInorderData.to_a.should eq [1,'bar']
+ expect(graph.getInorderData.to_a.size).to eq 0
+ graph.findOrCreateVertexFor(one)
+ expect(graph.getInorderData.to_a).to eq [one]
+ add_edge(foo,bar,'baz')
+ expect(graph.getInorderData.to_a).to eq [one,foo,bar]
+ graph.removeVertexFor(foo)
+ expect(graph.getInorderData.to_a).to eq [one,bar]
end
-
end
=====================================
spec/edge_spec.rb
=====================================
@@ -4,23 +4,25 @@ import 'org.jruby.dirgra.Edge'
import 'org.jruby.dirgra.Vertex'
import 'org.jruby.dirgra.DirectedGraph'
+require 'vertex_id_helper'
+
describe "Edge" do
- before do
- @graph = DirectedGraph.new
- end
+ let(:graph) { DirectedGraph.new }
+ let(:foo) { VertexID.new(1) }
+ let(:bar) { VertexID.new(2) }
describe "toString" do
context "When edge type is not null" do
it "represents edge with type" do
- edge = Edge.new(Vertex.new(@graph, "foo", 1), Vertex.new(@graph, "bar", 2), "baz")
+ edge = Edge.new(Vertex.new(graph, foo, 1), Vertex.new(graph, bar, 2), "baz")
expect(edge.toString).to eq "<1 --> 2> (baz)"
end
end
context "When edge type is null" do
it "represents edge without type" do
- edge = Edge.new(Vertex.new(@graph, "foo", 1), Vertex.new(@graph, "bar", 2), nil)
+ edge = Edge.new(Vertex.new(graph, foo, 1), Vertex.new(graph, bar, 2), nil)
expect(edge.toString).to eq "<1 --> 2>"
end
end
=====================================
spec/edge_type_iterator_spec.rb
=====================================
@@ -3,6 +3,7 @@ $LOAD_PATH.unshift File.dirname(__FILE__) + "/helpers"
require 'dirgra-0.3.jar'
require 'edge_helpers'
+require 'vertex_id_helper'
import 'org.jruby.dirgra.DirectedGraph'
import 'org.jruby.dirgra.EdgeTypeIterator'
@@ -10,10 +11,16 @@ import 'java.util.NoSuchElementException'
describe "EdgeTypeIterable" do
+ let(:graph) { DirectedGraph.new }
+ let(:one) { VertexID.new(1) }
+ let(:two) { VertexID.new(2) }
+ let(:three) { VertexID.new(3) }
+ let(:four) { VertexID.new(4) }
+
before do
- @graph = DirectedGraph.new
- @graph.addEdge(1, 2, "foo")
- @graph.addEdge(2, 3, "foo")
+ @edge_count = 0
+ add_edge(one, two, "foo")
+ add_edge(two, three, "foo")
end
describe "hasNext" do
@@ -21,12 +28,12 @@ describe "EdgeTypeIterable" do
context "edges of given type" do
it "returns true if the iterator contains an edge of given type" do
- iterator = EdgeTypeIterator.new(@graph.edges(), "foo", false)
+ iterator = EdgeTypeIterator.new(*edges, "foo", false)
expect(iterator.hasNext).to eq true
end
it "returns false if the iterator does not contain any edge of given type" do
- iterator = EdgeTypeIterator.new(@graph.edges(), "bar", false)
+ iterator = EdgeTypeIterator.new(*edges, "bar", false)
expect(iterator.hasNext).to eq false
end
@@ -35,12 +42,12 @@ describe "EdgeTypeIterable" do
context "edges not of given type" do
it "returns true if the iterator contains an edge not of given type" do
- iterator = EdgeTypeIterator.new(@graph.edges(), "bar", true)
+ iterator = EdgeTypeIterator.new(*edges, "bar", true)
expect(iterator.hasNext).to eq true
end
it "returns false if the iterator contains an edge of given type" do
- iterator = EdgeTypeIterator.new(@graph.edges(), "foo", true)
+ iterator = EdgeTypeIterator.new(*edges, "foo", true)
expect(iterator.hasNext).to eq false
end
@@ -52,13 +59,13 @@ describe "EdgeTypeIterable" do
it "returns true if the iterator contains an edge of type nil" do
# add an edge of type nil
- @graph.addEdge(4,1,nil)
- iterator = EdgeTypeIterator.new(@graph.edges(), nil, false)
+ add_edge(four,one,nil)
+ iterator = EdgeTypeIterator.new(*edges, nil, false)
expect(iterator.hasNext).to eq true
end
it "returns false if the iterator does not contain any edge of type nil" do
- iterator = EdgeTypeIterator.new(@graph.edges(), nil, false)
+ iterator = EdgeTypeIterator.new(*edges, nil, false)
expect(iterator.hasNext).to eq false
end
@@ -67,17 +74,17 @@ describe "EdgeTypeIterable" do
context "edges not of given type" do
it "returns true if the iterator contains an edge not of type nil" do
- iterator = EdgeTypeIterator.new(@graph.edges(), nil, true)
+ iterator = EdgeTypeIterator.new(*edges, nil, true)
expect(iterator.hasNext).to eq true
end
it "returns false if the iterator contains all edges of type nil" do
# remove existing edges not of type nil
- @graph.removeEdge(1,2)
- @graph.removeEdge(2,3)
+ remove_edge(one,two)
+ remove_edge(two,three)
# add an edge of type nil
- @graph.addEdge(4,1,nil)
- iterator = EdgeTypeIterator.new(@graph.edges(), nil, true)
+ add_edge(four,one,nil)
+ iterator = EdgeTypeIterator.new(*edges, nil, true)
expect(iterator.hasNext).to eq false
end
@@ -89,16 +96,16 @@ describe "EdgeTypeIterable" do
it "returns true if the iterator contains an edge not of type nil" do
# remove existing edges not of type nil
- @graph.removeEdge(1,2)
- @graph.removeEdge(2,3)
+ remove_edge(one,two)
+ remove_edge(two,three)
# add an edge of type nil
- @graph.addEdge(4,1,nil)
- iterator = EdgeTypeIterator.new(@graph.edges(), "foo", true)
+ add_edge(four,one,nil)
+ iterator = EdgeTypeIterator.new(*edges, "foo", true)
expect(iterator.hasNext).to eq true
end
it "returns false if the iterator contains all edges not of type nil" do
- iterator = EdgeTypeIterator.new(@graph.edges(), "foo", true)
+ iterator = EdgeTypeIterator.new(*edges, "foo", true)
expect(iterator.hasNext).to eq false
end
end
@@ -110,7 +117,7 @@ describe "EdgeTypeIterable" do
context "when the iterator has next edge" do
it "returns the next edge" do
- iterator = EdgeTypeIterator.new(@graph.edges(), "foo", false)
+ iterator = EdgeTypeIterator.new(*edges, "foo", false)
expect(iterator.next).to have_type("foo")
end
end
@@ -118,7 +125,7 @@ describe "EdgeTypeIterable" do
context "when the iterator does not have next edge" do
it "throws NoSuchElementException" do
empty_graph = DirectedGraph.new
- iterator = EdgeTypeIterator.new(empty_graph.edges(), "foo", false)
+ iterator = EdgeTypeIterator.new(empty_graph.edges().to_array(), 0, "foo", false)
expect { iterator.next }.to raise_error NoSuchElementException
end
end
@@ -127,7 +134,7 @@ describe "EdgeTypeIterable" do
describe "remove" do
it "throws UnsupportedOperationException exception" do
- iterator = EdgeTypeIterator.new(@graph.edges(), "foo", false)
+ iterator = EdgeTypeIterator.new(*edges, "foo", false)
expect { iterator.remove }.to raise_error Java::JavaLang::UnsupportedOperationException
end
end
=====================================
spec/helpers/vertex_id_helper.rb
=====================================
@@ -0,0 +1,30 @@
+
+class VertexID
+ include org.jruby.dirgra.ExplicitVertexID
+
+ def initialize(id)
+ @id = id;
+ end
+
+ def getID
+ @id
+ end
+
+ def to_s
+ @id
+ end
+end
+
+def add_edge(vertex1, vertex2, type)
+ @edge_count += 1
+ graph.addEdge(vertex1, vertex2, type)
+end
+
+def remove_edge(vertex1, vertex2)
+ @edge_count -= 1
+ graph.removeEdge(vertex1, vertex2)
+end
+
+def edges
+ [graph.edges.to_array, @edge_count]
+end
=====================================
spec/vertex_spec.rb
=====================================
@@ -9,10 +9,13 @@ import 'org.jruby.dirgra.Vertex'
describe "Vertex" do
+ let(:graph) { DirectedGraph.new }
+ let(:foo) { VertexID.new(1) }
+ let(:bar) { VertexID.new(2) }
+
before do
- @graph = DirectedGraph.new
- @source = Vertex.new(@graph, "foo", 1)
- @dest = Vertex.new(@graph, "bar", 2)
+ @source = Vertex.new(graph, foo, 1)
+ @dest = Vertex.new(graph, bar, 2)
end
describe "Adding an edge from source to destination" do
@@ -30,17 +33,17 @@ describe "Vertex" do
end
it "adds the edge to the graph containing source" do
- expect(@graph.edges()).not_to be nil
+ expect(graph.edges()).not_to be nil
end
it "sets edge type to null if is not provided" do
- expect(@graph.edges().first).to have_type(nil)
+ expect(graph.edges().first).to have_type(nil)
end
it "sets edge type to the given value if is provided" do
@source.remove_edge(:to => @dest)
@source.add_edge(:to => @dest, :type => "foobar")
- expect(@graph.edges.first).to have_type("foobar")
+ expect(graph.edges.first).to have_type("foobar")
end
end
@@ -67,7 +70,7 @@ describe "Vertex" do
context "Destination of all of the outgoing edges from the current vertex doesn't match with given destination" do
it "returns false" do
- non_existent_destination = Vertex.new(@graph, "baz", 3)
+ non_existent_destination = Vertex.new(graph, "baz", 3)
expect(@source.remove_edge(:to => non_existent_destination)).to be false
end
end
@@ -77,7 +80,7 @@ describe "Vertex" do
describe "Remove all incoming edges" do
before do
- @interim = Vertex.new(@graph, "interim", 3)
+ @interim = Vertex.new(graph, "interim", 3)
@dest.add_edge(:to => @source)
@interim.add_edge(:to => @source)
end
@@ -92,7 +95,7 @@ describe "Vertex" do
describe "Remove all outgoing edges" do
before do
- @interim = Vertex.new(@graph, "interim", 3)
+ @interim = Vertex.new(graph, "interim", 3)
@source.add_edge(:to => @dest)
@source.add_edge(:to => @interim)
end
@@ -107,7 +110,7 @@ describe "Vertex" do
describe "Remove all edges" do
before do
- @interim = Vertex.new(@graph, "interim", 3)
+ @interim = Vertex.new(graph, "interim", 3)
@source.add_edge(:to => @dest)
@source.add_edge(:to => @interim)
@dest.add_edge(:to => @source)
@@ -129,7 +132,7 @@ describe "Vertex" do
describe "getOutGoingEdge" do
before do
- @null_vertex = Vertex.new(@graph, "null", 3)
+ @null_vertex = Vertex.new(graph, "null", 3)
end
it "returns first outgoing edge from the vertex not of type 'null'" do
@@ -148,7 +151,7 @@ describe "Vertex" do
describe "getIncomingEdge" do
before do
- @null_vertex = Vertex.new(@graph, "null", 3)
+ @null_vertex = Vertex.new(graph, "null", 3)
end
it "returns first incoming edge to the vertex not of type 'null'" do
@@ -203,7 +206,7 @@ describe "Vertex" do
context "when there is atleast one incoming edge to the current vertex" do
it "returns data of the source of that first incoming edge" do
@source.add_edge(:to => @dest)
- expect(@dest.data(:direction => :in)).to eq "foo"
+ expect(@dest.data(:direction => :in)).to eq foo
end
end
@@ -221,13 +224,13 @@ describe "Vertex" do
context "when there is atleast one incoming edge to the current vertex of the given type" do
it "returns data of the source of that first incoming edge of given type" do
@source.add_edge(:to => @dest)
- expect(@dest.data(:direction => :in, :type => nil)).to eq "foo"
+ expect(@dest.data(:direction => :in, :type => nil)).to eq foo
end
end
context "when there is no incoming edge to the current vertex of given type" do
it "returns null" do
- @source.add_edge(:to => @dest, :type => "foo")
+ @source.add_edge(:to => @dest, :type => foo)
expect(@dest.incoming_edge(:type => nil)).to eq nil
end
end
@@ -239,7 +242,7 @@ describe "Vertex" do
context "when there is atleast one outgoing edge from the current vertex" do
it "returns data of the destination of that first outgoing edge" do
@source.add_edge(:to => @dest)
- expect(@source.data(:direction => :out)).to eq "bar"
+ expect(@source.data(:direction => :out)).to eq bar
end
end
@@ -257,68 +260,16 @@ describe "Vertex" do
context "when there is atleast one outgoing edge from the current vertex of the given type" do
it "returns data of the source of that first outgoing edge of given type" do
@source.add_edge(:to => @dest)
- expect(@source.data(:direction => :out, :type => nil)).to eq "bar"
+ expect(@source.data(:direction => :out, :type => nil)).to eq bar
end
end
context "when there is no outgoing edge from the current vertex of given type" do
it "returns null" do
- @source.add_edge(:to => @dest, :type => "foo")
+ @source.add_edge(:to => @dest, :type => foo)
expect(@source.data(:direction => :out, :type => nil)).to be nil
end
end
end
-
- describe "toString" do
-
- before do
- @interim = Vertex.new(@graph, "interim", 3)
- end
-
- context "when vertex has no edges" do
- it "returns string representation of the vertex" do
- expect(@source.toString).to eq "foo:\n"
- end
- end
-
- context "when vertex has only one outgoing edge" do
- it "returns string representation of the vertex" do
- @source.add_edge(:to => @dest)
- expect(@source.toString).to eq "foo:>[2]\n"
- end
- end
-
- context "when vertex has many outgoing edges" do
- it "returns string representation of the vertex" do
- @source.add_edge(:to => @dest)
- @source.add_edge(:to => @interim)
- expect(["foo:>[2,3]\n", "foo:>[3,2]\n"]).to include @source.toString
- end
- end
-
- context "when vertex has only one incoming edge" do
- it "returns string representation of the vertex" do
- @source.add_edge(:to => @dest)
- expect(@dest.toString).to eq "bar:<[1]\n"
- end
- end
-
- context "when vertex has many incoming edges" do
- it "returns string representation of the vertex" do
- @source.add_edge(:to => @dest)
- @interim.add_edge(:to => @dest)
- expect(["bar:<[1,3]\n", "bar:<[3,1]\n"]).to include @dest.toString
- end
- end
-
- context "when vertex has both incoming and outgoing edges" do
- it "returns string representation of the vertex" do
- @source.add_edge(:to => @interim)
- @interim.add_edge(:to => @dest)
- expect(@interim.toString).to eq "interim:>[2], <[1]\n"
- end
- end
-
- end
end
=====================================
src/module-info.java
=====================================
@@ -0,0 +1,5 @@
+module org.jruby.dirgra {
+ requires java.base;
+
+ exports org.jruby.dirgra;
+}
\ No newline at end of file
=====================================
src/org/jruby/dirgra/DirectedGraph.java
=====================================
@@ -107,6 +107,9 @@ public class DirectedGraph<T extends ExplicitVertexID> {
}
/**
+ * Find existing vertex and if it is not present create it.
+ *
+ * @param data to find a vertex for
* @return vertex for given data. If vertex is not present it creates vertex and returns it.
*/
public Vertex<T> findOrCreateVertexFor(T data) {
View it on GitLab: https://salsa.debian.org/java-team/dirgra/-/compare/2e78d64553021e60b07c4c92a129c64ccad71b96...a3ce8ef388ea7bbc452ee3344c3fd57f263a04a1
--
View it on GitLab: https://salsa.debian.org/java-team/dirgra/-/compare/2e78d64553021e60b07c4c92a129c64ccad71b96...a3ce8ef388ea7bbc452ee3344c3fd57f263a04a1
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-java-commits/attachments/20231128/df8281ef/attachment.htm>
More information about the pkg-java-commits
mailing list