/// <summary>Duplicates this factor.</summary> /// <returns>a copy of the factor</returns> public virtual GraphicalModel.Factor CloneFactor() { GraphicalModel.Factor clone = new GraphicalModel.Factor(); clone.neigborIndices = neigborIndices.MemberwiseClone(); clone.featuresTable = featuresTable.CloneTable(); clone.metaData.PutAll(metaData); return(clone); }
public virtual void TestCloneTable(ConcatVector[][][] factor3) { ConcatVectorTable concatVectorTable = ConvertArrayToVectorTable((ConcatVector[][][])factor3); ConcatVectorTable cloned = concatVectorTable.CloneTable(); for (int i = 0; i < factor3.Length; i++) { for (int j = 0; j < factor3[0].Length; j++) { for (int k = 0; k < factor3[0][0].Length; k++) { NUnit.Framework.Assert.IsTrue(factor3[i][j][k].ValueEquals(cloned.GetAssignmentValue(new int[] { i, j, k }).Get(), 1.0e-5)); } } } NUnit.Framework.Assert.IsTrue(concatVectorTable.ValueEquals(cloned, 1.0e-5)); }