public void AddOrThrow_Func() { var target = new ConcurrentIndexed <int, string>(); target.AddOrThrow(1, () => "1"); Assert.ThrowsAny <Exception>(() => target.AddOrThrow(1, () => "1!")); }
public void AddUpdateOrThrow(int i) { var thing = new ConcurrentIndexed <int, string>(); thing.AddOrThrow(i, "hello"); Assert.Equal("hello", thing.GetOrThrow(i)); Assert.Throws <Exception>(() => { thing.AddOrThrow(i, "hello"); }); thing.UpdateOrThrow(i, (s) => s + " world"); Assert.Equal("hello world", thing.GetOrThrow(i)); }
public void GetOrTrhow() { var target = new ConcurrentIndexed <int, string>(); Assert.ThrowsAny <Exception>(() => target.GetOrThrow(1)); target.AddOrThrow(1, "1"); Assert.Equal("1", target.GetOrThrow(1)); }
public void TryGetValue() { var target = new ConcurrentIndexed <int, string>(); Assert.False(target.TryGetValue(1, out var _)); target.AddOrThrow(1, "1"); Assert.True(target.TryGetValue(1, out var second)); Assert.Equal("1", second); }
public void Enumerate() { var thing = new ConcurrentIndexed <int, string>(); for (var i = 0; i < 100; i++) { thing.AddOrThrow(i, () => $"{i}"); } var count = 0; foreach (var uhh in thing) { count++; } Assert.Equal(100, count); }
public void DoOrThrow_Func() { var target = new ConcurrentIndexed <int, string>(); Assert.ThrowsAny <Exception>(() => target.DoOrThrow(1, x => x + "!")); target.AddOrThrow(1, "1"); string s = null; target.DoOrThrow(1, x => { s = x + "!"; return(x); }); Assert.Equal("1!", s); }
public void TryGetValue() { var target = new ConcurrentIndexed <HashTestHelper, int>(); target.AddOrThrow(new HashTestHelper(1, 1), 1); target.AddOrThrow(new HashTestHelper(1, 2), 2); target.AddOrThrow(new HashTestHelper(1, 3), 3); target.AddOrThrow(new HashTestHelper(1, 4), 4); target.AddOrThrow(new HashTestHelper(1, 5), 5); target.AddOrThrow(new HashTestHelper(1, 6), 6); Assert.True(target.TryGetValue(new HashTestHelper(1, 1), out var res1)); Assert.Equal(1, res1); Assert.True(target.TryGetValue(new HashTestHelper(1, 2), out var res2)); Assert.Equal(2, res2); Assert.True(target.TryGetValue(new HashTestHelper(1, 3), out var res3)); Assert.Equal(3, res3); Assert.True(target.TryGetValue(new HashTestHelper(1, 4), out var res4)); Assert.Equal(4, res4); Assert.True(target.TryGetValue(new HashTestHelper(1, 5), out var res5)); Assert.Equal(5, res5); Assert.True(target.TryGetValue(new HashTestHelper(1, 6), out var res6)); Assert.Equal(6, res6); }
// not convinced this is going to work... // it's written but not called // MemberKindLookup goes before the types are made // so how would we get the field? internal void AddStaticField(FieldInfo fieldInfo, IMemberDefinition member) { staticFields.AddOrThrow(member, fieldInfo); }
internal void AddTacField(IOrType <IObjectDefiniton, IInterfaceType, ITypeOr> codeElement, IMemberDefinition contextDefinition) { tacFields.AddOrThrow(contextDefinition, codeElement); }
internal void AddArgument(IOrType <IImplementationDefinition, IInternalMethodDefinition, IEntryPointDefinition> codeElement, IMemberDefinition parameterDefinition) { arguments.AddOrThrow(parameterDefinition, codeElement); }
internal void AddLocal(IOrType <IEntryPointDefinition, IImplementationDefinition, IInternalMethodDefinition, IRootScope> owner, IMemberDefinition value) { locals.AddOrThrow(value, owner); }