} // OverlapsWith

        // ----------------------------------------------------------------------
        public virtual PeriodRelation GetRelation(ITimePeriod test)
        {
            if (test == null)
            {
                throw new ArgumentNullException("test");
            }
            return(TimePeriodCalc.GetRelation(this, test));
        } // GetRelation
        } // IntersectsWith

        // ----------------------------------------------------------------------
        public virtual bool OverlapsWith(ITimePeriod test)
        {
            if (test == null)
            {
                throw new ArgumentNullException("test");
            }
            return(TimePeriodCalc.OverlapsWith(this, test));
        } // OverlapsWith
        } // HasInside

        // ----------------------------------------------------------------------
        public virtual bool HasInside(ITimePeriod test)
        {
            if (test == null)
            {
                throw new ArgumentNullException("test");
            }
            return(TimePeriodCalc.HasInside(this, test));
        } // HasInside
        } // HasInside

        // ----------------------------------------------------------------------
        public virtual bool IntersectsWith(ITimePeriod test)
        {
            if (test == null)
            {
                throw new ArgumentNullException("test");
            }
            return(TimePeriodCalc.IntersectsWith(this, test));
        } // IntersectsWith
        } // IsSamePeriod

        // ----------------------------------------------------------------------
        public virtual bool HasInside(DateTime test)
        {
            return(TimePeriodCalc.HasInside(this, test));
        } // HasInside