/// <summary>
 /// Creates a range window.
 /// </summary>
 /// <typeparam name="TValue">The type of the upper boundary condition.</typeparam>
 /// <param name="lowerBoundary">The lower boundary.</param>
 /// <param name="upperBoundary">The upper boundary.</param>
 /// <returns>A range window.</returns>
 public static RangeWindow Create <TValue>(KeywordRangeWindowBoundary lowerBoundary, TValue upperBoundary)
 {
     return(new RangeWindow(lowerBoundary, new ValueRangeWindowBoundary <TValue>(upperBoundary)));
 }
 /// <summary>
 /// Creates a range window.
 /// </summary>
 /// <param name="lowerBoundary">The lower boundary.</param>
 /// <param name="upperBoundary">The upper boundary.</param>
 /// <returns>A range window.</returns>
 public static RangeWindow Create(TimeRangeWindowBoundary lowerBoundary, KeywordRangeWindowBoundary upperBoundary)
 {
     return(new RangeWindow(lowerBoundary, upperBoundary));
 }
 /// <summary>
 /// Creates a range window.
 /// </summary>
 /// <typeparam name="TValue">The type of the lower boundary condition.</typeparam>
 /// <param name="lowerBoundary">The lower boundary.</param>
 /// <param name="upperBoundary">The upper boundary.</param>
 /// <returns>A range window.</returns>
 public static RangeWindow Create <TValue>(TValue lowerBoundary, KeywordRangeWindowBoundary upperBoundary)
 {
     return(new RangeWindow(new ValueRangeWindowBoundary <TValue>(lowerBoundary), upperBoundary));
 }