/
anton.bessolitsyn
/
GraphTool
Обзор
Документация
Войти
/
anton.bessolitsyn
/
GraphTool
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
TestProject1/UnitTestOfGraphContext.cs
204 строки
6 KB
Anton Bessolitsyn
in progress
22 окт 2025, 10:25
22 окт 2025, 10:25
8675066
Код
Авторство
О чём код?
namespace TestProject1 { using GraphToolWPF.Customs; using GraphToolWPF.Model; using Moq; using Xunit; public class UnitTestOfGraphContext { [Fact] public void TestAddNeighborOfVertex() { //Arrange var context = new GraphContext(); var s = new Vertex("s"); var a = new Vertex("a"); //Act s.AddNeighbor(a); Assert.Contains(s, a.Neighbors); } [Fact] public void FindShortestPath_ShouldReturnValidPathCase1() { // Arrange var context = new GraphContext(); Dictionary<Vertex, Dictionary<Vertex, Double>> graphTable = new(); Dictionary<Vertex, Double> distTable = new(); var s = new Vertex("start"); var a = new Vertex("a"); var b = new Vertex("b"); var f = new Vertex("fin"); graphTable[s] = new Dictionary<Vertex, double>(); graphTable[s][a] = 6; graphTable[s][b] = 2; graphTable[a] = new Dictionary<Vertex, double>(); graphTable[a][s] = 6; graphTable[a][f] = 1; graphTable[a][b] = 3; graphTable[b] = new Dictionary<Vertex, double>(); graphTable[b][s] = 2; graphTable[b][a] = 3; graphTable[b][f] = 5; graphTable[f] = new Dictionary<Vertex, double>(); graphTable[f][a] = 1; graphTable[f][b] = 5; s.AddNeighbor(a); s.AddNeighbor(b); a.AddNeighbor(f); a.AddNeighbor(b); b.AddNeighbor(f); distTable.Add(b, 2); distTable.Add(a, 6); distTable.Add(f, double.PositiveInfinity); // Act var (path, length) = context.FindShortestPath(s, f, graphTable, distTable); // Assert Assert.True(path.Count == 4 && length==6); } [Fact] public void FindShortestPath_ShouldReturnValidPathCase2() { // Arrange var context = new GraphContext(); Dictionary<Vertex, Dictionary<Vertex, Double>> graphTable = new(); Dictionary<Vertex, Double> distTable = new(); var s = new Vertex("start"); var a = new Vertex("a"); var b = new Vertex("b"); var f = new Vertex("fin"); graphTable[s] = new Dictionary<Vertex, double>(); graphTable[s][a] = 6; graphTable[s][b] = 2; graphTable[a] = new Dictionary<Vertex, double>(); graphTable[a][s] = 6; graphTable[a][f] = 1; //graphTable[a][b] = 3; graphTable[b] = new Dictionary<Vertex, double>(); graphTable[b][s] = 2; //graphTable[b][a] = 3; graphTable[b][f] = 6;//5 graphTable[f] = new Dictionary<Vertex, double>(); graphTable[f][a] = 1; graphTable[f][b] = 6;//5 s.AddNeighbor(a); s.AddNeighbor(b); a.AddNeighbor(f); //a.AddNeighbor(b); b.AddNeighbor(f); distTable.Add(b, 2); distTable.Add(a, 6); distTable.Add(f, double.PositiveInfinity); // Act var (path, length) = context.FindShortestPath(s, f, graphTable, distTable); // Assert Assert.True(path.Count == 3 && length == 7); } [Fact] public void FindShortestPath_ShouldReturnValidPathCase3() { // Arrange var context = new GraphContext(); Dictionary<Vertex, Dictionary<Vertex, Double>> graphTable = new(); Dictionary<Vertex, Double> distTable = new(); var s = new Vertex("start"); var a = new Vertex("a"); var b = new Vertex("b"); var d = new Vertex("b"); var f = new Vertex("fin"); graphTable[s] = new Dictionary<Vertex, double>(); graphTable[s][a] = 6; graphTable[s][b] = 2; graphTable[s][d] = 3; graphTable[a] = new Dictionary<Vertex, double>(); graphTable[a][s] = 6; graphTable[a][f] = 1; graphTable[a][b] = 3; graphTable[a][d] = 1; graphTable[b] = new Dictionary<Vertex, double>(); graphTable[b][s] = 2; graphTable[b][a] = 3; graphTable[b][f] = 6; graphTable[d] = new Dictionary<Vertex, double>(); graphTable[d][s] = 3; graphTable[d][a] = 1; graphTable[f] = new Dictionary<Vertex, double>(); graphTable[f][a] = 1; graphTable[f][b] = 6; s.AddNeighbor(a); s.AddNeighbor(b); a.AddNeighbor(f); a.AddNeighbor(b); b.AddNeighbor(f); d.AddNeighbor(a); d.AddNeighbor(s); distTable.Add(b, 2); distTable.Add(a, 6); distTable.Add(d, 3); distTable.Add(f, double.PositiveInfinity); // Act var (path, length) = context.FindShortestPath(s, f, graphTable, distTable); // Assert Assert.True(path.Count == 4 && length == 5); } [Fact] public void FindShortestPath_ShouldReturnValidPathCase4() { // Arrange var context = new GraphContext(); Dictionary<Vertex, Dictionary<Vertex, Double>> graphTable = new(); Dictionary<Vertex, Double> distTable = new(); var s = new Vertex("start"); var f = new Vertex("fin"); graphTable[s] = new Dictionary<Vertex, double>(); graphTable[s][f] = 6; graphTable[f] = new Dictionary<Vertex, double>(); graphTable[f][s] = 6; s.AddNeighbor(f); distTable.Add(f, 6); // Act var (path, length) = context.FindShortestPath(s, f, graphTable, distTable); // Assert Assert.True(path.Count == 2 && length == 6); } } }