public void SetUp()
        {
            _callCountCriterion     = new CallCountCriterion();
            _timeActiveCriterion    = new TimeActiveCriterion();
            _timeWallClockCriterion = new TimeWallClockCriterion();

            _maxCallCount           = new UintValue(50);
            _maxTimeWallClock       = new Uint64Value(100);
            _maxTimeActive          = new DoubleValue(150);
            _tracingCriteriaContext = new TracingCriteriaContext(_maxCallCount, _maxTimeWallClock, _maxTimeActive);
        }
        protected void CreateCriteriaContext()
        {
            var maxCallCount         = new UintValue(uint.MinValue);
            var maxWallClockDuration = new Uint64Value(uint.MinValue);
            var maxActiveTime        = new DoubleValue(double.MinValue);

            foreach (Method method in _methodDictionary.Values)
            {
                maxCallCount =
                    (UintValue)Max(method.GetValueFor(TracingCriteriaContext.CallCountCriterion), maxCallCount);
                maxWallClockDuration =
                    (Uint64Value)
                    Max(method.GetValueFor(TracingCriteriaContext.TimeWallClockCriterion), maxWallClockDuration);
                maxActiveTime =
                    (DoubleValue)Max(method.GetValueFor(TracingCriteriaContext.TimeActiveCriterion), maxActiveTime);
            }

            CriteriaContext = new TracingCriteriaContext(
                maxCallCount,
                maxWallClockDuration,
                maxActiveTime);
        }