public void CloneTest(List <string> keys, KeyedVectorFull <string> vec) { var cloned = vec.Clone(); foreach (var key in keys) { Assert.Equal(vec[key], cloned[key]); } }
public void NegTest(List <string> keys, KeyedVectorFull <string> vec) { var originalVec = vec.Clone(); vec.Neg(); foreach (var key in keys) { Assert.Equal(-originalVec[key], vec[key]); } }
public void FilterSmallerTest(List <string> keys, KeyedVectorFull <string> vec, List <string> filterKeys) { var originalVec = vec.Clone(); var newVec = vec.FilterSmaller(filterKeys); Assert.Equal(filterKeys.Count, newVec.Count()); foreach (var key in keys) { Assert.Equal(originalVec[key], vec[key]); if (filterKeys.Contains(key)) { Assert.Equal(vec[key], newVec[key]); } } }
public void SubTest(List <string> keys, KeyedVectorFull <string> vec1, KeyedVectorPartial <string> vec2) { var originalVec = vec1.Clone(); var commonKeys = vec2.Select(x => x.Key).ToHashSet(); vec1.Sub(vec2); foreach (var key in keys) { if (commonKeys.Contains(key)) { Assert.Equal(originalVec[key] - vec2[key], vec1[key]); } else { Assert.Equal(originalVec[key], vec1[key]); } } }