public void GivenRelationExistsBetweenElementsWhenFindRelationsWhereElementHasConsumerRoleThenReturnsRelationFromConsumers() { DsmRelationModel model = new DsmRelationModel(_elementsDataModel); CreateElementRelations(model); List <IDsmRelation> relations = model.FindOutgoingRelations(_a).OrderBy(x => x.Id).ToList(); Assert.AreEqual(5, relations.Count); Assert.AreEqual(_a1.Id, relations[0].ConsumerId); Assert.AreEqual(_b1.Id, relations[0].ProviderId); Assert.AreEqual(1000, relations[0].Weight); Assert.AreEqual(_a2.Id, relations[1].ConsumerId); Assert.AreEqual(_b1.Id, relations[1].ProviderId); Assert.AreEqual(200, relations[1].Weight); Assert.AreEqual(_a1.Id, relations[2].ConsumerId); Assert.AreEqual(_b2.Id, relations[2].ProviderId); Assert.AreEqual(30, relations[2].Weight); Assert.AreEqual(_a2.Id, relations[3].ConsumerId); Assert.AreEqual(_b2.Id, relations[3].ProviderId); Assert.AreEqual(4, relations[3].Weight); Assert.AreEqual(_a1.Id, relations[4].ConsumerId); Assert.AreEqual(_c2.Id, relations[4].ProviderId); Assert.AreEqual(5, relations[4].Weight); }
public void GivenNoCycleExistsBetweenElementsWhenIsCyclicDependencyThenReturnsFalse() { DsmRelationModel model = new DsmRelationModel(_elementsDataModel); CreateElementRelations(model); Assert.AreEqual(5, model.GetDependencyWeight(_a1.Id, _c2.Id)); Assert.AreEqual(0, model.GetDependencyWeight(_c2.Id, _a1.Id)); Assert.AreEqual(CycleType.None, model.IsCyclicDependency(_a1.Id, _c2.Id)); }
public void GivenDirectCycleExistsBetweenElementsWhenIsCyclicDependencyThenReturnsCycleTypeSystem() { DsmRelationModel model = new DsmRelationModel(_elementsDataModel); CreateElementRelations(model); Assert.AreEqual(1, model.GetDirectDependencyWeight(_c1.Id, _c2.Id)); Assert.AreEqual(1, model.GetDirectDependencyWeight(_c2.Id, _c1.Id)); Assert.AreEqual(CycleType.System, model.IsCyclicDependency(_c1.Id, _c2.Id)); }
public void GivenIndirectCycleExistsBetweenElementsWhenIsCyclicDependencyThenReturnsCycleTypeHierarchical() { DsmRelationModel model = new DsmRelationModel(_elementsDataModel); CreateElementRelations(model); Assert.AreEqual(1234, model.GetDependencyWeight(_a.Id, _b.Id)); Assert.AreEqual(5, model.GetDependencyWeight(_b.Id, _a.Id)); Assert.AreEqual(CycleType.Hierarchical, model.IsCyclicDependency(_a.Id, _b.Id)); }
public void GivenModelIsEmptyWhenImportRelationIsCalledThenItsHasOneRelation() { DsmRelationModel model = new DsmRelationModel(_elementsDataModel); Assert.AreEqual(0, model.GetExportedRelationCount()); IDsmRelation relation = model.ImportRelation(1, _a.Id, _b.Id, "type", 1, false); Assert.IsNotNull(relation); Assert.AreEqual(1, model.GetExportedRelationCount()); }
public void GivenMatrixIsFilledWhenRootElementParentIsChangedThenWeightsAreUpdated() { DsmRelationModel model = new DsmRelationModel(_elementsDataModel); CreateElementRelations(model); Assert.AreEqual(1234, model.GetDependencyWeight(_a.Id, _b.Id)); _elementsDataModel.ChangeElementParent(_c, _b); Assert.AreEqual(1239, model.GetDependencyWeight(_a.Id, _b.Id)); }
public void GivenModelIsFilledWhenGetWeightWithSelfThenReturnsZero() { DsmRelationModel model = new DsmRelationModel(_elementsDataModel); CreateElementRelations(model); Assert.AreEqual(11, model.GetExportedRelationCount()); foreach (IDsmElement element in _elementsDataModel.GetElements()) { Assert.AreEqual(0, model.GetDependencyWeight(element.Id, element.Id)); } }
public void GivenModelIsNotEmptyWhenClearIsCalledThenItIsEmpty() { DsmRelationModel model = new DsmRelationModel(_elementsDataModel); Assert.AreEqual(0, model.GetExportedRelationCount()); model.AddRelation(_a.Id, _b.Id, "type", 1); Assert.AreEqual(1, model.GetExportedRelationCount()); model.Clear(); Assert.AreEqual(0, model.GetExportedRelationCount()); }
public void GivenModelIsFilledWhenUnremovingRelationThenRestoresCalculatedDerivedWeights() { DsmRelationModel model = new DsmRelationModel(_elementsDataModel); CreateElementRelations(model); Assert.AreEqual(1000, model.GetDependencyWeight(_a1.Id, _b1.Id)); Assert.AreEqual(200, model.GetDependencyWeight(_a2.Id, _b1.Id)); Assert.AreEqual(30, model.GetDependencyWeight(_a1.Id, _b2.Id)); Assert.AreEqual(4, model.GetDependencyWeight(_a2.Id, _b2.Id)); Assert.AreEqual(1030, model.GetDependencyWeight(_a1.Id, _b.Id)); Assert.AreEqual(204, model.GetDependencyWeight(_a2.Id, _b.Id)); Assert.AreEqual(1200, model.GetDependencyWeight(_a.Id, _b1.Id)); Assert.AreEqual(34, model.GetDependencyWeight(_a.Id, _b2.Id)); Assert.AreEqual(1234, model.GetDependencyWeight(_a.Id, _b.Id)); IDsmRelation relation = model.FindRelations(_a2, _b2).FirstOrDefault(); Assert.IsNotNull(relation); model.RemoveRelation(relation.Id); Assert.AreEqual(1000, model.GetDependencyWeight(_a1.Id, _b1.Id)); Assert.AreEqual(200, model.GetDependencyWeight(_a2.Id, _b1.Id)); Assert.AreEqual(30, model.GetDependencyWeight(_a1.Id, _b2.Id)); Assert.AreEqual(0, model.GetDependencyWeight(_a2.Id, _b2.Id)); Assert.AreEqual(1030, model.GetDependencyWeight(_a1.Id, _b.Id)); Assert.AreEqual(200, model.GetDependencyWeight(_a2.Id, _b.Id)); Assert.AreEqual(1200, model.GetDependencyWeight(_a.Id, _b1.Id)); Assert.AreEqual(30, model.GetDependencyWeight(_a.Id, _b2.Id)); Assert.AreEqual(1230, model.GetDependencyWeight(_a.Id, _b.Id)); model.UnremoveRelation(relation.Id); Assert.AreEqual(1000, model.GetDependencyWeight(_a1.Id, _b1.Id)); Assert.AreEqual(200, model.GetDependencyWeight(_a2.Id, _b1.Id)); Assert.AreEqual(30, model.GetDependencyWeight(_a1.Id, _b2.Id)); Assert.AreEqual(4, model.GetDependencyWeight(_a2.Id, _b2.Id)); Assert.AreEqual(1030, model.GetDependencyWeight(_a1.Id, _b.Id)); Assert.AreEqual(204, model.GetDependencyWeight(_a2.Id, _b.Id)); Assert.AreEqual(1200, model.GetDependencyWeight(_a.Id, _b1.Id)); Assert.AreEqual(34, model.GetDependencyWeight(_a.Id, _b2.Id)); Assert.AreEqual(1234, model.GetDependencyWeight(_a.Id, _b.Id)); }
public void GivenModelIsFilledWhenRemovingRelationThenReducesRelationCount() { DsmRelationModel model = new DsmRelationModel(_elementsDataModel); CreateElementRelations(model); int relationCountBefore = model.GetRelationCount(); IDsmRelation relation = model.FindRelations(_a2, _b2).FirstOrDefault(); Assert.IsNotNull(relation); model.RemoveRelation(relation.Id); Assert.AreEqual(relationCountBefore - 1, model.GetRelationCount()); }
private void CreateElementRelations(DsmRelationModel relationsDataModel) { relationsDataModel.AddRelation(_a1.Id, _a2.Id, "", 1); relationsDataModel.AddRelation(_a1.Id, _b1.Id, "", 1000); relationsDataModel.AddRelation(_a2.Id, _b1.Id, "", 200); relationsDataModel.AddRelation(_a1.Id, _b2.Id, "", 30); relationsDataModel.AddRelation(_a2.Id, _b2.Id, "", 4); relationsDataModel.AddRelation(_a1.Id, _c2.Id, "", 5); relationsDataModel.AddRelation(_b2.Id, _a1.Id, "", 2); relationsDataModel.AddRelation(_b2.Id, _a2.Id, "", 3); relationsDataModel.AddRelation(_c1.Id, _a2.Id, "", 4); relationsDataModel.AddRelation(_c1.Id, _c2.Id, "", 1); relationsDataModel.AddRelation(_c2.Id, _c1.Id, "", 1); }
public void GivenModelIsFilledWhenGetWeightWithOtherThenReturnsCalculatedDerivedWeights() { DsmRelationModel model = new DsmRelationModel(_elementsDataModel); CreateElementRelations(model); Assert.AreEqual(1000, model.GetDependencyWeight(_a1.Id, _b1.Id)); Assert.AreEqual(200, model.GetDependencyWeight(_a2.Id, _b1.Id)); Assert.AreEqual(30, model.GetDependencyWeight(_a1.Id, _b2.Id)); Assert.AreEqual(4, model.GetDependencyWeight(_a2.Id, _b2.Id)); Assert.AreEqual(1030, model.GetDependencyWeight(_a1.Id, _b.Id)); Assert.AreEqual(204, model.GetDependencyWeight(_a2.Id, _b.Id)); Assert.AreEqual(1200, model.GetDependencyWeight(_a.Id, _b1.Id)); Assert.AreEqual(34, model.GetDependencyWeight(_a.Id, _b2.Id)); Assert.AreEqual(1234, model.GetDependencyWeight(_a.Id, _b.Id)); }
public void GivenModelIsFilledWhenChangeRelationWeightThenUpdatesCalculatedDerivedWeights() { DsmRelationModel model = new DsmRelationModel(_elementsDataModel); CreateElementRelations(model); Assert.AreEqual(1000, model.GetDependencyWeight(_a1.Id, _b1.Id)); Assert.AreEqual(200, model.GetDependencyWeight(_a2.Id, _b1.Id)); Assert.AreEqual(30, model.GetDependencyWeight(_a1.Id, _b2.Id)); Assert.AreEqual(4, model.GetDependencyWeight(_a2.Id, _b2.Id)); Assert.AreEqual(1030, model.GetDependencyWeight(_a1.Id, _b.Id)); Assert.AreEqual(204, model.GetDependencyWeight(_a2.Id, _b.Id)); Assert.AreEqual(1200, model.GetDependencyWeight(_a.Id, _b1.Id)); Assert.AreEqual(34, model.GetDependencyWeight(_a.Id, _b2.Id)); Assert.AreEqual(1234, model.GetDependencyWeight(_a.Id, _b.Id)); IDsmRelation relation = model.FindRelations(_a2, _b2).FirstOrDefault(); Assert.IsNotNull(relation); model.ChangeRelationWeight(relation, 5); Assert.AreEqual(1000, model.GetDependencyWeight(_a1.Id, _b1.Id)); Assert.AreEqual(200, model.GetDependencyWeight(_a2.Id, _b1.Id)); Assert.AreEqual(30, model.GetDependencyWeight(_a1.Id, _b2.Id)); Assert.AreEqual(5, model.GetDependencyWeight(_a2.Id, _b2.Id)); Assert.AreEqual(1030, model.GetDependencyWeight(_a1.Id, _b.Id)); Assert.AreEqual(205, model.GetDependencyWeight(_a2.Id, _b.Id)); Assert.AreEqual(1200, model.GetDependencyWeight(_a.Id, _b1.Id)); Assert.AreEqual(35, model.GetDependencyWeight(_a.Id, _b2.Id)); Assert.AreEqual(1235, model.GetDependencyWeight(_a.Id, _b.Id)); }
public void WhenModelIsConstructedThenItIsEmpty() { DsmRelationModel model = new DsmRelationModel(_elementsDataModel); Assert.AreEqual(0, model.GetExportedRelationCount()); }