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);
        }