public void GetRepairedConstructionsTest() { //arrange var H = new byte[, ] { { 1, 1, 1, 0, 1, 0, 0 }, { 1, 0, 1, 1, 0, 1, 0 }, { 0, 1, 1, 1, 0, 0, 1 } }; var constructionlist = new List <byte[]> { new byte[] { 1, 0, 1, 0, 1, 0, 1, 1 }, new byte[] { 1, 0, 1, 1, 1, 0, 1, 1 }, new byte[] { 1, 1, 1, 0, 1, 0, 1, 1 }, }; var expectedRepairConstructions = new List <byte[]> { new byte[] { 1, 0, 0, 0, 1, 0, 1, 1 }, new byte[] { 1, 0, 1, 1, 1, 0, 1, 1 }, new byte[] { 1, 1, 1, 0, 1, 0, 1, 1 }, }; //act var tools = new HammingRepairTools(H); var syndromes = tools.GetSyndromeList(constructionlist); var actualRepairConstructions = tools.GetRepairedConstructions(constructionlist, syndromes); //assert Assert.That.AreEqual(expectedRepairConstructions, actualRepairConstructions, (m1, m2) => { if (m1.Where((t, i) => t.Length != m2[i].Length).Any()) { return(false); } for (var j = 0; j < m2.Count; j++) { for (var k = 0; k < m2[0].Length; k++) { if (m1[j][k] != m2[j][k]) { return(false); } } } return(true); }); }
private void RepairMessageBlocks() { SyndromeCollection.Clear(); Corrections.Clear(); var arrConstructions = ConvertObsCollectionToListOfByteArray(HCodesCollection); HammingTools = new HammingRepairTools(_checkCodesMatrix); var slist = HammingTools.GetSyndromeList(arrConstructions); foreach (var arr in slist) { SyndromeCollection.Add(new SyndromeViewModel(arr)); } var arrcorrections = HammingTools.GetRepairedConstructions(arrConstructions, slist); for (var i = 0; i < arrcorrections.Count; i++) { Corrections.Add(new CorrectionViewModel(slist[i], arrcorrections[i])); } _eventAggregator.GetEvent <RepairedCodeSentEvent>().Publish(arrcorrections); }
public void HammingRepairToolsTest() { //arrange var H = new byte[, ] { { 1, 1, 1, 0, 1, 0, 0 }, { 1, 0, 1, 1, 0, 1, 0 }, { 0, 1, 1, 1, 0, 0, 1 } }; var extendedH = new byte[, ] { { 1, 1, 1, 1, 1, 1, 1, 1 }, { 0, 1, 1, 1, 0, 1, 0, 0 }, { 0, 1, 0, 1, 1, 0, 1, 0 }, { 0, 0, 1, 1, 1, 0, 0, 1 } }; //act var tools = new HammingRepairTools(H); var actualExtended = tools.ExtendedMatrix; //assert CollectionAssert.AreEqual(extendedH, actualExtended); }