public void Baseline() { var sut = new HamiltonPath(); var graph = new UndirectedGraph(5); graph.Connect(0, 1); graph.Connect(0, 3); graph.Connect(1, 2); graph.Connect(1, 3); graph.Connect(1, 4); graph.Connect(2, 4); graph.Connect(3, 4); var(hasPath, hasCycle, path) = sut.HasHamiltonPath(graph); Assert.True(hasCycle); Assert.True(hasPath); #pragma warning disable HAA0101 // Array allocation for params parameter Assert.Collection(path, arg => Assert.Equal(0, arg), arg => Assert.Equal(1, arg), arg => Assert.Equal(2, arg), arg => Assert.Equal(4, arg), arg => Assert.Equal(3, arg), arg => Assert.Equal(0, arg)); #pragma warning restore HAA0101 // Array allocation for params parameter }
void CalcPossibleSolution() { HamiltonPath graph = new HamiltonPath(nodes, edges); possibleSolution = graph.GetPath(); Debug.LogFormat("[Seven Deadly Sins #{0}] A possible button press order is [{1}] (there may be others).", moduleId, GetSinString(possibleSolution)); }
private void btnCreateKRegularGraph_Click(object sender, RoutedEventArgs e) { draw.CurrentGraph = HamiltonPath.ConstructKRegularGraph((int)intUpDownNodes.Value, (int)intUpDownEdges.Value); if (draw.CurrentGraph.Nodes.Count == 0) { MessageBox.Show("Z podanych wartosci nie można utworzyc grafu k-regularnego!"); return; } draw.ClearAll(); draw.NodeRadius = (int)sliderNodeRadius.Value; draw.Radius = (int)sliderRadius.Value; draw.DrawMainCircle(); draw.Draw(); }
public void BaselineWithNoPath() { var sut = new HamiltonPath(); var graph = new UndirectedGraph(5); graph.Connect(0, 1); graph.Connect(0, 3); graph.Connect(1, 2); graph.Connect(1, 4); graph.Connect(2, 4); var(hasPath, hasCycle, _) = sut.HasHamiltonPath(graph); Assert.False(hasCycle); Assert.False(hasPath); }
private void btnHamiltonianGraph_Click(object sender, RoutedEventArgs e) { if (draw.CurrentGraph.Nodes.Count > 0) { if (HamiltonPath.CheckHamiltonPath(draw.CurrentGraph)) { draw.ClearAll(); draw.NodeRadius = (int)sliderNodeRadius.Value; draw.Radius = (int)sliderRadius.Value; draw.DrawMainCircle(); draw.Draw(); } else { MessageBox.Show("Na tym grafie nie istnieje cykl Hamiltona!"); } } }