290 lines · 10.4 KB · C#
RawDownload
//******************************************************************************************************//  FileBackedHashSetTest.cs - Gbtc////  Copyright © 2014, Grid Protection Alliance.  All Rights Reserved.////  Licensed to the Grid Protection Alliance (GPA) under one or more contributor license agreements. See//  the NOTICE file distributed with this work for additional information regarding copyright ownership.//  The GPA licenses this file to you under the MIT License (MIT), the "License"; you may//  not use this file except in compliance with the License. You may obtain a copy of the License at:////      http://www.opensource.org/licenses/MIT////  Unless agreed to in writing, the subject software distributed under the License is distributed on an//  "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. Refer to the//  License for the specific language governing permissions and limitations.////  Code Modification History://  ----------------------------------------------------------------------------------------------------//  12/03/2014 - Stephen C. Wills//       Generated original version of source code.////****************************************************************************************************** using System.Linq;using GSF.Collections;using Microsoft.VisualStudio.TestTools.UnitTesting; namespace GSF.Core.Tests.GSF.Collections{    [TestClass()]    public class FileBackedHashSetTest    {        [TestMethod()]        public void AddTest()        {            using (FileBackedHashSet<int> hashSet = new FileBackedHashSet<int>())            {                hashSet.Add(0);                Assert.IsTrue(hashSet.Contains(0));                Assert.AreEqual(hashSet.Count, 1);            }        }         [TestMethod()]        public void RemoveTest()        {            using (FileBackedHashSet<int> hashSet = new FileBackedHashSet<int>())            {                hashSet.Add(0);                Assert.IsTrue(hashSet.Contains(0));                hashSet.Remove(0);                Assert.IsFalse(hashSet.Contains(0));                Assert.AreEqual(hashSet.Count, 0);            }        }         [TestMethod()]        public void UnionWithTest()        {            using (FileBackedHashSet<int> hashSet = new FileBackedHashSet<int>())            {                for (int i = 0; i < 10; i++)                    hashSet.Add(i);                 hashSet.UnionWith(Enumerable.Range(5, 10));                 for (int i = 0; i < 15; i++)                    Assert.IsTrue(hashSet.Contains(i), i.ToString());                 Assert.AreEqual(hashSet.Count, 15);            }        }         [TestMethod()]        public void IntersectWithTest()        {            using (FileBackedHashSet<int> hashSet = new FileBackedHashSet<int>())            {                for (int i = 0; i < 10; i++)                    hashSet.Add(i);                 hashSet.IntersectWith(Enumerable.Range(5, 10));                 for (int i = 5; i < 10; i++)                    Assert.IsTrue(hashSet.Contains(i), i.ToString());                 Assert.AreEqual(hashSet.Count, 5);            }        }         [TestMethod()]        public void ExceptWithTest()        {            using (FileBackedHashSet<int> hashSet = new FileBackedHashSet<int>())            {                for (int i = 0; i < 10; i++)                    hashSet.Add(i);                 hashSet.ExceptWith(Enumerable.Range(5, 10));                 for (int i = 0; i < 5; i++)                    Assert.IsTrue(hashSet.Contains(i), i.ToString());                 Assert.AreEqual(hashSet.Count, 5);            }        }         [TestMethod()]        public void SymmetricExceptWithTest()        {            using (FileBackedHashSet<int> hashSet = new FileBackedHashSet<int>())            {                for (int i = 0; i < 10; i++)                    hashSet.Add(i);                 hashSet.SymmetricExceptWith(Enumerable.Range(5, 10));                 for (int i = 0; i < 5; i++)                    Assert.IsTrue(hashSet.Contains(i), i.ToString());                 for (int i = 10; i < 15; i++)                    Assert.IsTrue(hashSet.Contains(i), i.ToString());                 Assert.AreEqual(hashSet.Count, 10);            }        }         [TestMethod()]        public void IsSubsetOfTest()        {            using (FileBackedHashSet<int> hashSet = new FileBackedHashSet<int>())            {                for (int i = 0; i < 5; i++)                    hashSet.Add(i);                 Assert.IsTrue(hashSet.IsSubsetOf(Enumerable.Range(0, 5)), "Equal");                Assert.IsTrue(hashSet.IsSubsetOf(Enumerable.Range(0, 10)), "Superset");                Assert.IsFalse(hashSet.IsSubsetOf(Enumerable.Range(0, 3)), "Subset");                Assert.IsFalse(hashSet.IsSubsetOf(Enumerable.Range(1, 5)), "Overlap");                Assert.IsFalse(hashSet.IsSubsetOf(Enumerable.Range(5, 5)), "Disjoint");            }        }         [TestMethod()]        public void IsSupersetOfTest()        {            using (FileBackedHashSet<int> hashSet = new FileBackedHashSet<int>())            {                for (int i = 0; i < 5; i++)                    hashSet.Add(i);                 Assert.IsTrue(hashSet.IsSupersetOf(Enumerable.Range(0, 5)), "Equal");                Assert.IsFalse(hashSet.IsSupersetOf(Enumerable.Range(0, 10)), "Superset");                Assert.IsTrue(hashSet.IsSupersetOf(Enumerable.Range(0, 3)), "Subset");                Assert.IsFalse(hashSet.IsSupersetOf(Enumerable.Range(1, 5)), "Overlap");                Assert.IsFalse(hashSet.IsSupersetOf(Enumerable.Range(5, 5)), "Disjoint");            }        }         [TestMethod()]        public void IsProperSupersetOfTest()        {            using (FileBackedHashSet<int> hashSet = new FileBackedHashSet<int>())            {                for (int i = 0; i < 5; i++)                    hashSet.Add(i);                 Assert.IsFalse(hashSet.IsProperSupersetOf(Enumerable.Range(0, 5)), "Equal");                Assert.IsFalse(hashSet.IsProperSupersetOf(Enumerable.Range(0, 10)), "Superset");                Assert.IsTrue(hashSet.IsProperSupersetOf(Enumerable.Range(0, 3)), "Subset");                Assert.IsFalse(hashSet.IsProperSupersetOf(Enumerable.Range(1, 5)), "Overlap");                Assert.IsFalse(hashSet.IsProperSupersetOf(Enumerable.Range(5, 5)), "Disjoint");            }        }         [TestMethod()]        public void IsProperSubsetOfTest()        {            using (FileBackedHashSet<int> hashSet = new FileBackedHashSet<int>())            {                for (int i = 0; i < 5; i++)                    hashSet.Add(i);                 Assert.IsFalse(hashSet.IsProperSubsetOf(Enumerable.Range(0, 5)), "Equal");                Assert.IsTrue(hashSet.IsProperSubsetOf(Enumerable.Range(0, 10)), "Superset");                Assert.IsFalse(hashSet.IsProperSubsetOf(Enumerable.Range(0, 3)), "Subset");                Assert.IsFalse(hashSet.IsProperSubsetOf(Enumerable.Range(1, 5)), "Overlap");                Assert.IsFalse(hashSet.IsProperSubsetOf(Enumerable.Range(5, 5)), "Disjoint");            }        }         [TestMethod()]        public void OverlapsTest()        {            using (FileBackedHashSet<int> hashSet = new FileBackedHashSet<int>())            {                for (int i = 0; i < 5; i++)                    hashSet.Add(i);                 Assert.IsTrue(hashSet.Overlaps(Enumerable.Range(0, 5)), "Equal");                Assert.IsTrue(hashSet.Overlaps(Enumerable.Range(0, 10)), "Superset");                Assert.IsTrue(hashSet.Overlaps(Enumerable.Range(0, 3)), "Subset");                Assert.IsTrue(hashSet.Overlaps(Enumerable.Range(1, 5)), "Overlap");                Assert.IsFalse(hashSet.Overlaps(Enumerable.Range(5, 5)), "Disjoint");            }        }         [TestMethod()]        public void SetEqualsTest()        {            using (FileBackedHashSet<int> hashSet = new FileBackedHashSet<int>())            {                for (int i = 0; i < 5; i++)                    hashSet.Add(i);                 Assert.IsTrue(hashSet.SetEquals(Enumerable.Range(0, 5)), "Equal");                Assert.IsFalse(hashSet.SetEquals(Enumerable.Range(0, 10)), "Superset");                Assert.IsFalse(hashSet.SetEquals(Enumerable.Range(0, 3)), "Subset");                Assert.IsFalse(hashSet.SetEquals(Enumerable.Range(1, 5)), "Overlap");                Assert.IsFalse(hashSet.SetEquals(Enumerable.Range(5, 5)), "Disjoint");            }        }         [TestMethod()]        public void ClearTest()        {            using (FileBackedHashSet<int> hashSet = new FileBackedHashSet<int>())            {                for (int i = 0; i < 100; i++)                    hashSet.Add(i);                 Assert.AreEqual(hashSet.Count, 100);                hashSet.Clear();                Assert.AreEqual(hashSet.Count, 0);            }        }         [TestMethod()]        public void CopyToTest()        {            int[] array;             using (FileBackedHashSet<int> hashSet = new FileBackedHashSet<int>())            {                for (int i = 1; i <= 100; i++)                    hashSet.Add(i);                 Assert.AreEqual(hashSet.Count, 100);                 array = new int[hashSet.Count];                hashSet.CopyTo(array, 0);                 foreach (int i in array)                    Assert.IsTrue(hashSet.Contains(i));            }        }         [TestMethod()]        public void CompactTest()        {            using (FileBackedHashSet<int> hashSet = new FileBackedHashSet<int>())            {                for (int i = 0; i < 10000; i += 4)                {                    hashSet.Add(i);                     if (i % 100 == 0)                        hashSet.Remove(i);                     if (i % 400 == 0)                        hashSet.Add(i);                }                 hashSet.Compact();                 for (int i = 0; i < 10000; i++)                {                    if (i % 400 == 0)                        Assert.IsTrue(hashSet.Contains(i));                    else if (i % 100 == 0)                        Assert.IsFalse(hashSet.Contains(i));                    else if (i % 4 == 0)                        Assert.IsTrue(hashSet.Contains(i));                    else                        Assert.IsFalse(hashSet.Contains(i));                }            }        }    }}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t