public void LargeRelativeComplementWithOneMatch() { const int count = 10000; var fisA = new List <FileInfo>(count); for (var i = 0; i < count; ++i) { fisA.Add(new FileInfo($"c:\\{Guid.NewGuid()}.txt")); } // B has everything in A and one extra var extra = new FileInfo($"c:\\{Guid.NewGuid()}.txt"); var fisB = new List <FileInfo>(fisA) { extra }; // var fisC = File.RelativeComplement(fisA, fisB); // Return the list of elements that are in B but not in A // in other words ... just 'extra' Assert.AreEqual(1, fisC.Count); Assert.IsTrue(File.Equals(fisC[0], extra)); }
public void SimpleComplement() { var fisA = new List <FileInfo> { new FileInfo("z:\\c.txt"), }; var fisB = new List <FileInfo> { new FileInfo("z:\\a.txt"), new FileInfo("z:\\b.txt"), new FileInfo("z:\\c.txt") }; var fisC = File.RelativeComplement(fisA, fisB); Assert.AreEqual(2, fisC.Count); Assert.AreEqual(1, fisC.Count(f => f.FullName == "z:\\a.txt")); Assert.AreEqual(1, fisC.Count(f => f.FullName == "z:\\b.txt")); Assert.AreEqual(1, fisA.Count); Assert.AreEqual(1, fisA.Count(f => f.FullName == "z:\\c.txt")); Assert.AreEqual(3, fisB.Count); Assert.AreEqual(1, fisB.Count(f => f.FullName == "z:\\a.txt")); Assert.AreEqual(1, fisB.Count(f => f.FullName == "z:\\b.txt")); Assert.AreEqual(1, fisB.Count(f => f.FullName == "z:\\c.txt")); }
public void BothNullWillReturnAnEmptyList() { // var fi = File.RelativeComplement(null, null); Assert.IsInstanceOf <List <FileInfo> >(fi); Assert.AreEqual(0, fi.Count); }
public void ComplementWithNullB() { var fis = new List <FileInfo> { new FileInfo("z:\\a.txt"), new FileInfo("z:\\b.txt"), }; var fisC = File.RelativeComplement(fis, null); Assert.AreEqual(0, fisC.Count); Assert.IsInstanceOf <List <FileInfo> >(fisC); }
public void ComplementWithNullA() { var fis = new List <FileInfo> { new FileInfo("z:\\a.txt"), new FileInfo("z:\\b.txt"), }; var fisC = File.RelativeComplement(null, fis); Assert.AreEqual(2, fisC.Count); Assert.AreEqual(1, fisC.Count(f => f.FullName == "z:\\a.txt")); Assert.AreEqual(1, fisC.Count(f => f.FullName == "z:\\b.txt")); }
public void LargeRelativeComplementWithNoMatch() { const int count = 10000; var fisA = new List <FileInfo>(count); for (var i = 0; i < count; ++i) { fisA.Add(new FileInfo($"c:\\{Guid.NewGuid()}.txt")); } // B has everything in A var fisB = new List <FileInfo>(fisA); var fisC = File.RelativeComplement(fisA, fisB); // everything in A is in B ... so nothing is in C Assert.AreEqual(0, fisC.Count); }
public void LargeRelativeComplemenAllMatch() { const int count = 10000; // A has nothing in it at all. var fisA = new List <FileInfo>(); var fisB = new List <FileInfo>(count); for (var i = 0; i < count; ++i) { fisB.Add(new FileInfo($"c:\\{Guid.NewGuid()}.txt")); } // Return the list of elements that are in B but not in A // in other words ... everything. var fisC = File.RelativeComplement(fisA, fisB); // everything in A is in B ... so nothing is in C Assert.AreEqual(count, fisC.Count); }