Skip to content
Snippets Groups Projects
Commit 1c509130 authored by Paul Nitzke's avatar Paul Nitzke
Browse files

Merge branch 'ConvertTest' into 'master'

Add tests for Convert package

See merge request !29
parents a00aba67 b4a87ca2
No related branches found
No related tags found
1 merge request!29Add tests for Convert package
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Antlr4.Runtime;
using System.Xml.Linq;
using NUnit.Framework;
using SparseTransform.DataStructures;
using SparseTransform.Convert;
namespace SparseTransform.Tests.Library.Convert
{
public class DotWriterTests
{
[Test]
public void writerTestBipartite()
{
DotWriter writer = new DotWriter();
BipartiteGraph graph = new BipartiteGraph();
graph.AddEdge(1, 1);
graph.AddEdge(1, 2);
graph.AddEdge(1, 5);
graph.AddEdge(2, 3);
graph.AddEdge(3, 2);
graph.AddEdge(3, 3);
graph.AddEdge(3, 4);
graph.AddEdge(4, 1);
graph.AddEdge(5, 4);
graph.AddEdge(5, 5);
string[] lines = writer.Write(graph).Split(
new string[] { "\r\n", "\r", "\n" },
StringSplitOptions.None
);
Assert.That(lines[2], Is.EqualTo("\tc_1 [shape=circle, style=filled]"));
Assert.That(lines[4], Is.EqualTo("\tc_3 [shape=circle, style=filled]"));
Assert.That(lines[5], Is.EqualTo("\tc_4 [shape=circle, style=filled]"));
Assert.That(lines[13], Is.EqualTo("\tc_2 -- {r_3};"));
Assert.That(lines[15], Is.EqualTo("\tc_4 -- {r_1};"));
}
[Test]
public void writerTestAdjacency()
{
DotWriter writer = new DotWriter();
AdjacencyGraph graph = new AdjacencyGraph();
graph.AddEdge(1, 2);
graph.AddEdge(1, 5);
graph.AddEdge(3, 2);
graph.AddEdge(3, 4);
graph.AddEdge(4, 1);
graph.AddEdge(5, 4);
string[] lines = writer.Write(graph).Split(
new string[] { "\r\n", "\r", "\n" },
StringSplitOptions.None
);
Assert.That(lines[2], Is.EqualTo("\tc_2 [shape=circle, style=filled]"));
Assert.That(lines[4], Is.EqualTo("\tc_4 [shape=circle, style=filled]"));
Assert.That(lines[5], Is.EqualTo("\tc_5 [shape=circle, style=filled]"));
Assert.That(lines[7], Is.EqualTo("\tc_3 -- {c_2};"));
Assert.That(lines[9], Is.EqualTo("\tc_5 -- {c_1 c_4};"));
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Antlr4.Runtime;
using System.Xml.Linq;
using NUnit.Framework;
using SparseTransform.DataStructures;
using SparseTransform.Convert;
namespace SparseTransform.Tests.Library.Convert
{
public class MatrixMarketReaderTest
{
private String bipartiteGraph = "%%MatrixMarket matrix coordinate real general\n" +
"% -------------------------------------------------------------------------------\n" +
"% UF Sparse Matrix Collection, Tim Davis\n" +
"%-------------------------------------------------------------------------------\n" +
"5 5 4\n" +
"1 4 34\n" +
"2 3 65\n" +
"5 1 8\n" +
"4 2 6\n" +
"4 3 0\n" +
"1 3 12\n" +
"5 3 24";
private String adjacencyGraph = "%%MatrixMarket matrix coordinate real symmetric\n" +
"% -------------------------------------------------------------------------------\n" +
"% UF Sparse Matrix Collection, Tim Davis\n" +
"%-------------------------------------------------------------------------------\n" +
"5 5 4\n" +
"1 4 34\n" +
"2 3 65\n" +
"5 1 8\n" +
"4 2 6\n" +
"4 3 0\n" +
"1 3 12\n" +
"5 3 24";
[Test]
public void ReadGraphTestAdjacency()
{
MatrixMarketReader reader = new MatrixMarketReader();
AdjacencyGraph graph = (AdjacencyGraph)reader.ReadGraph(adjacencyGraph);
Assert.IsNotNull(graph);
GraphNode[] nodes = Enumerable.ToArray(graph.GetNodes());
Assert.AreEqual(5, nodes.Length);
Assert.That(nodes[0].Index, Is.EqualTo(1));
Assert.That(nodes[1].Index, Is.EqualTo(2));
Assert.That(nodes[2].Index, Is.EqualTo(3));
Assert.That(nodes[3].Index, Is.EqualTo(4));
Assert.That(nodes[4].Index, Is.EqualTo(5));
Assert.That(nodes[0].Neighbors.First().Index, Is.EqualTo(4));
Assert.That(nodes[1].Neighbors.First().Index, Is.EqualTo(3));
Assert.That(nodes[2].Neighbors.First().Index, Is.EqualTo(2));
Assert.That(nodes[3].Neighbors.First().Index, Is.EqualTo(1));
Assert.That(nodes[4].Neighbors.Last().Index, Is.EqualTo(3));
}
[Test]
public void ReadGraphTestBipartite()
{
MatrixMarketReader reader = new MatrixMarketReader();
BipartiteGraph graph = (BipartiteGraph)reader.ReadGraph(bipartiteGraph);
Assert.IsNotNull(graph);
GraphNode[] rightNodes = Enumerable.ToArray(graph.GetRightNodes());
Assert.That(rightNodes.Length, Is.EqualTo(4));
Assert.That(rightNodes[0].Index, Is.EqualTo(1));
Assert.That(rightNodes[3].Index, Is.EqualTo(4));
Assert.That(rightNodes[0].Neighbors.First().Index, Is.EqualTo(5));
Assert.That(rightNodes[1].Neighbors.First().Index, Is.EqualTo(4));
Assert.That(rightNodes[2].Neighbors.First().Index, Is.EqualTo(2));
Assert.That(rightNodes[3].Neighbors.First().Index, Is.EqualTo(1));
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Antlr4.Runtime;
using System.Xml.Linq;
using NUnit.Framework;
using SparseTransform.DataStructures;
using SparseTransform.Convert;
namespace SparseTransform.Tests.Library.Convert
{
public class MatrixMarketWriterTest
{
private String bipartiteGraph = "%%MatrixMarket matrix coordinate real general\n" +
"% -------------------------------------------------------------------------------\n" +
"% UF Sparse Matrix Collection, Tim Davis\n" +
"%-------------------------------------------------------------------------------\n" +
"5 5 4\n" +
"1 4 34\n" +
"2 3 65\n" +
"5 1 8\n" +
"4 2 6\n" +
"4 3 0\n" +
"1 3 12\n" +
"5 3 24";
private String adjacencyGraph = "%%MatrixMarket matrix coordinate real symmetric\n" +
"% -------------------------------------------------------------------------------\n" +
"% UF Sparse Matrix Collection, Tim Davis\n" +
"%-------------------------------------------------------------------------------\n" +
"5 5 4\n" +
"1 4 34\n" +
"2 3 65\n" +
"5 1 8\n" +
"4 2 6\n" +
"4 3 0\n" +
"1 3 12\n" +
"5 3 24";
[Test]
public void WriteTestBipartite()
{
MatrixMarketReader reader = new MatrixMarketReader();
IGraph graph = reader.ReadGraph(bipartiteGraph);
Colorer color = new Colorer();
color.PartialD2Color((BipartiteGraph)graph);
DoubleMatrix inputMatrix = reader.ReadMatrix(bipartiteGraph);
MatrixMarketWriter writer = new MatrixMarketWriter(false, inputMatrix);
string[] lines = writer.Write(graph).Split(
new string[] { "\r\n", "\r", "\n" },
StringSplitOptions.None
);
Assert.That(lines[0], Is.EqualTo("%%MatrixMarket matrix coordinate real general"));
Assert.That(lines[2], Is.EqualTo("0 0 34"));
Assert.That(lines[5], Is.EqualTo("3 0 6"));
Assert.That(lines[6], Is.EqualTo("4 0 8"));
}
[Test]
public void WriteTestAdjacency()
{
MatrixMarketReader reader = new MatrixMarketReader();
IGraph graph = reader.ReadGraph(adjacencyGraph);
Colorer color = new Colorer();
color.StarColor1((AdjacencyGraph)graph);
DoubleMatrix inputMatrix = reader.ReadMatrix(adjacencyGraph);
MatrixMarketWriter writer = new MatrixMarketWriter(false, inputMatrix);
string[] lines = writer.Write(graph).Split(
new string[] { "\r\n", "\r", "\n" },
StringSplitOptions.None
);
Assert.That(lines[0], Is.EqualTo("%%MatrixMarket matrix coordinate real general"));
Assert.That(lines[2], Is.EqualTo("0 2 12"));
Assert.That(lines[5], Is.EqualTo("3 1 6"));
Assert.That(lines[6], Is.EqualTo("4 0 8"));
}
}
}
......@@ -18,4 +18,8 @@
<ProjectReference Include="..\SparseTransform\SparseTransform.csproj" />
</ItemGroup>
<ItemGroup>
<Folder Include="Library\Convert\" />
</ItemGroup>
</Project>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment