public void TestMixed()
        {
            _index.Remove(new[] {_testEvents[1]});
            ICollection<EventBean> result = _index.Lookup(new Object[] {1, "b"});
            Assert.AreEqual(1, result.Count);
            Assert.IsTrue(result.Contains(_testEvents[4]));

            // iterate
            Object[] underlying = ArrayAssertionUtil.EnumeratorToArrayUnderlying(_index.GetEnumerator());
            EPAssertionUtil.AssertEqualsAnyOrder(
                new[] {_testEventsUnd[0], _testEventsUnd[2], _testEventsUnd[3], _testEventsUnd[4], _testEventsUnd[5]},
                underlying);

            _index.Remove(new[] {_testEvents[4]});
            result = _index.Lookup(new Object[] {1, "b"});
            Assert.IsNull(result);

            // iterate
            underlying = ArrayAssertionUtil.EnumeratorToArrayUnderlying(_index.GetEnumerator());
            EPAssertionUtil.AssertEqualsAnyOrder(
                new[] {_testEventsUnd[0], _testEventsUnd[2], _testEventsUnd[3], _testEventsUnd[5]}, underlying);

            _index.Add(new[] {_testEvents[1]});
            result = _index.Lookup(new Object[] {1, "b"});
            Assert.AreEqual(1, result.Count);
            Assert.IsTrue(result.Contains(_testEvents[1]));

            // iterate
            underlying = ArrayAssertionUtil.EnumeratorToArrayUnderlying(_index.GetEnumerator());
            EPAssertionUtil.AssertEqualsAnyOrder(
                new[] {_testEventsUnd[0], _testEventsUnd[1], _testEventsUnd[2], _testEventsUnd[3], _testEventsUnd[5]},
                underlying);
        }