コード例 #1
0
        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));
        }
コード例 #2
0
        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"));
        }
コード例 #3
0
        public void BothNullWillReturnAnEmptyList()
        {
            //
            var fi = File.RelativeComplement(null, null);

            Assert.IsInstanceOf <List <FileInfo> >(fi);
            Assert.AreEqual(0, fi.Count);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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"));
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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);
        }