private void EnumeratorTest(IIndexedVector <string, VectorMember <string> > vector) { int i = 0; foreach (var item in vector) { Assert.AreEqual(item.Key, i.ToString()); Assert.AreEqual(item.Value.Key, i.ToString()); i++; } var keys = new HashSet <string>(this.stringKeys); Assert.AreEqual(vector.Count, keys.Count); foreach (string key in keys) { Assert.IsTrue(vector.ContainsKey(key)); } foreach (var kvp in vector) { Assert.IsTrue(vector.ContainsKey(kvp.Key)); Assert.IsTrue(vector.TryGetValue(kvp.Key, out var value)); Assert.AreEqual(kvp.Key, value.Key); keys.Remove(value.Key); } Assert.AreEqual(0, keys.Count); }
public FlatSharpAttributes(IIndexedVector <string, Schema.KeyValue>?attrs) { this.parsed = new(); this.rawAttributes = attrs ?? new IndexedVector <string, Schema.KeyValue>(); foreach (var unsupported in MetadataKeys.UnsupportedStandardAttributes) { if (this.rawAttributes.ContainsKey(unsupported)) { ErrorContext.Current.RegisterError($"FlatSharp does not support the '{unsupported}' attribute."); } } }
public static IIndexedVector <TKey, TValue>?Clone <TKey, TValue>(IIndexedVector <TKey, TValue>?source, Func <TValue, TValue> cloneItem) where TKey : notnull where TValue : class { if (source is null) { return(null); } IndexedVector <TKey, TValue> vector = new IndexedVector <TKey, TValue>(source.Count); foreach (var pair in source) { var item = cloneItem(pair.Value); vector.Add(item); } return(vector); }
public static IIndexedVector <TKey, TValue> Clone <TKey, TValue>( this IIndexedVector <TKey, TValue> source, Func <TValue, TValue> valueClone) where TValue : class { return(new IndexedVector <TKey, TValue>(source.Select(x => valueClone(x.Value)), source.Count, mutable: false)); }