internal void Remove_UpdateDicionaryAsExpected(SimpleHashSet <string> target, string removed)
        {
            bool success;
            var  expected = new HashSet <string>(target);
            bool result   = expected.Remove(removed);

            var res = target.Remove(removed, out success);

            res.Should().BeEquivalentTo(expected);
            result.Should().Be(success);
        }
        internal void Remove_ReturnDifferentInstance_IfLimitReaches(SimpleHashSet <string> target, string removed)
        {
            bool success;

            var res = target.Remove(removed, out success);

            if (res.Count == _Transition - 1)
            {
                res.Should().BeOfType <ListSet <string> >();
            }
            else
            {
                res.Should().BeSameAs(target);
            }
        }