mirror of https://github.com/swig/swig
127 lines
3.2 KiB
C#
127 lines
3.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using cpp11_std_unordered_mapNamespace;
|
|
|
|
public class runme
|
|
{
|
|
static void checkThat(bool mustBeTrue)
|
|
{
|
|
if (!mustBeTrue)
|
|
{
|
|
throw new Exception("checkThat failed");
|
|
}
|
|
}
|
|
|
|
static void Main()
|
|
{
|
|
global::System.Collections.Generic.IDictionary<string, int> sim = new UnorderedMapStringInt();
|
|
global::System.Collections.Generic.IDictionary<int, int> iim = new UnorderedMapIntInt();
|
|
|
|
checkThat(((UnorderedMapStringInt)sim).IsEmpty);
|
|
checkThat(((UnorderedMapIntInt)iim).IsEmpty);
|
|
|
|
checkThat(sim.Count == 0);
|
|
checkThat(iim.Count == 0);
|
|
|
|
int myInt;
|
|
checkThat(!sim.TryGetValue("key", out myInt));
|
|
checkThat(!iim.TryGetValue(1, out myInt));
|
|
|
|
checkThat(!sim.ContainsKey("key"));
|
|
checkThat(!iim.ContainsKey(1));
|
|
|
|
sim.Add("key", 2);
|
|
iim.Add(1, 2);
|
|
|
|
checkThat(sim.Count == 1);
|
|
checkThat(iim.Count == 1);
|
|
|
|
checkThat(sim["key"] == 2);
|
|
checkThat(iim[1] == 2);
|
|
|
|
checkThat(sim.Remove("key"));
|
|
checkThat(iim.Remove(1));
|
|
|
|
checkThat(sim.Count == 0);
|
|
checkThat(iim.Count == 0);
|
|
|
|
checkThat(!sim.TryGetValue("key", out myInt));
|
|
checkThat(!iim.TryGetValue(1, out myInt));
|
|
|
|
checkThat(!sim.Remove("key"));
|
|
checkThat(!iim.Remove(1));
|
|
|
|
sim["key"] = 2;
|
|
iim[1] = 2;
|
|
|
|
sim.Clear();
|
|
iim.Clear();
|
|
checkThat(sim.Count == 0);
|
|
checkThat(iim.Count == 0);
|
|
|
|
sim["key1"] = 1;
|
|
iim[1] = 1;
|
|
sim["key2"] = 2;
|
|
iim[2] = 2;
|
|
|
|
checkThat(sim.Count == 2);
|
|
checkThat(iim.Count == 2);
|
|
checkThat(sim["key1"] == 1);
|
|
checkThat(iim[1] == 1);
|
|
checkThat(sim["key2"] == 2);
|
|
checkThat(iim[2] == 2);
|
|
|
|
sim["key1"] = 3;
|
|
iim[1] = 3;
|
|
|
|
checkThat(sim.Count == 2);
|
|
checkThat(iim.Count == 2);
|
|
checkThat(sim["key1"] == 3);
|
|
checkThat(iim[1] == 3);
|
|
|
|
{
|
|
int collectionSize = 20;
|
|
UnorderedMapStringInt simap = new UnorderedMapStringInt();
|
|
for (int i = 0; i < collectionSize; i++)
|
|
{
|
|
int val = i * 18;
|
|
simap.Add(i.ToString(), val);
|
|
}
|
|
|
|
// Keys and Values test
|
|
IList<string> keys = new List<string>(simap.Keys);
|
|
IList<int> values = new List<int>(simap.Values);
|
|
Dictionary<string, int> check = new Dictionary<string, int>();
|
|
if (keys.Count != collectionSize)
|
|
throw new Exception("Keys count test failed");
|
|
|
|
if (values.Count != collectionSize)
|
|
throw new Exception("Values count test failed");
|
|
|
|
for (int i = 0; i < keys.Count; i++)
|
|
{
|
|
if (simap[keys[i]] != values[i])
|
|
throw new Exception("Keys and values test failed for index " + i);
|
|
check.Add(keys[i], values[i]);
|
|
}
|
|
|
|
for (int i = 0; i < collectionSize; i++)
|
|
{
|
|
if (!check.ContainsKey(i.ToString()))
|
|
throw new Exception("Keys and Values ContainsKey test " + i + " failed");
|
|
}
|
|
|
|
// CopyTo() test
|
|
{
|
|
KeyValuePair<string, int>[] outputarray = new KeyValuePair<string, int>[collectionSize];
|
|
simap.CopyTo(outputarray);
|
|
foreach (KeyValuePair<string, int> val in outputarray)
|
|
{
|
|
if (simap[val.Key] != val.Value)
|
|
throw new Exception("CopyTo (1) test failed, index:" + val.Key);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|