138 lines · 4.9 KB · C#
RawDownload
//******************************************************************************************************//  FileBackedDictionaryTest.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.Collections.Generic;using GSF.Collections;using Microsoft.VisualStudio.TestTools.UnitTesting; namespace GSF.Core.Tests.GSF.Collections{    [TestClass()]    public class FileBackedDictionaryTest    {        [TestMethod()]        public void AddTest()        {            using (FileBackedDictionary<int, int> dictionary = new FileBackedDictionary<int, int>())            {                dictionary.Add(0, 0);                Assert.IsTrue(dictionary.ContainsKey(0));                Assert.AreEqual(dictionary.Count, 1);            }        }         [TestMethod()]        public void RemoveTest()        {            using (FileBackedDictionary<int, int> dictionary = new FileBackedDictionary<int, int>())            {                dictionary.Add(0, 0);                Assert.IsTrue(dictionary.ContainsKey(0));                dictionary.Remove(0);                Assert.IsFalse(dictionary.ContainsKey(0));                Assert.AreEqual(dictionary.Count, 0);            }        }         [TestMethod()]        public void TryGetValueTest()        {            int value;             using (FileBackedDictionary<int, int> dictionary = new FileBackedDictionary<int, int>())            {                dictionary.Add(0, 0);                Assert.IsTrue(dictionary.TryGetValue(0, out value));                Assert.AreEqual(value, 0);            }        }         [TestMethod()]        public void ClearTest()        {            using (FileBackedDictionary<int, int> dictionary = new FileBackedDictionary<int, int>())            {                for (int i = 0; i < 100; i++)                    dictionary.Add(i, i);                 Assert.AreEqual(dictionary.Count, 100);                dictionary.Clear();                Assert.AreEqual(dictionary.Count, 0);            }        }         [TestMethod()]        public void CopyToTest()        {            KeyValuePair<int, int>[] array;             using (FileBackedDictionary<int, int> dictionary = new FileBackedDictionary<int, int>())            {                for (int i = 1; i <= 100; i++)                    dictionary.Add(i, i);                 Assert.AreEqual(dictionary.Count, 100);                 array = new KeyValuePair<int, int>[dictionary.Count];                dictionary.CopyTo(array, 0);                 foreach (KeyValuePair<int, int> kvp in array)                {                    Assert.IsTrue(dictionary.Contains(kvp), kvp.Key.ToString());                    Assert.AreEqual(dictionary[kvp.Key], kvp.Value);                }            }        }         [TestMethod()]        public void CompactTest()        {            using (FileBackedDictionary<int, int> dictionary = new FileBackedDictionary<int, int>())            {                for (int i = 0; i < 10000; i += 4)                {                    dictionary.Add(i, 4);                     if (i % 400 == 0)                        dictionary[i] = 400;                    else if (i % 100 == 0)                        dictionary.Remove(i);                }                 dictionary.Compact();                 for (int i = 0; i < 10000; i++)                {                    if (i % 400 == 0)                        Assert.AreEqual(dictionary[i], 400);                    else if (i % 100 == 0)                        Assert.IsFalse(dictionary.ContainsKey(i), i.ToString());                    else if (i % 4 ==  0)                        Assert.AreEqual(dictionary[i], 4);                    else                        Assert.IsFalse(dictionary.ContainsKey(i), i.ToString());                }            }        }    }}

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