コード例 #1
0
ファイル: IntervalInt32.cs プロジェクト: Virtlink/noofax
		/// <summary>
		/// Merges two overlapping intervals into one.
		/// </summary>
		/// <param name="x">The first interval to merge.</param>
		/// <param name="y">The second interval to merge.</param>
		/// <returns>The merged interval.</returns>
		public static IntervalInt32 Merge(IntervalInt32 x, IntervalInt32 y)
		{
			#region Contract
			Contract.Requires<ArgumentNullException>(x.Intersects(y) || x.End == y.Start);
			#endregion
			int start = Math.Min(x.Start, y.Start);
			int end = x.End != Int32.MinValue && y.End != Int32.MinValue ? Math.Max(x.End, y.End) : Int32.MinValue;
			return new IntervalInt32(start, end);
		}
コード例 #2
0
ファイル: IntervalInt32Tests.cs プロジェクト: Virtlink/noofax
		public void Intersects(int xStart, int xEnd, int yStart, int yEnd, bool expectedResult)
		{
			// Arrange
			var x = new IntervalInt32(xStart, xEnd);
			var y = new IntervalInt32(yStart, yEnd);

			// Act
			bool intersects = x.Intersects(y);
			bool intersects2 = y.Intersects(x);

			// Assert
			Assert.That(intersects, Is.EqualTo(expectedResult));
			Assert.That(intersects, Is.EqualTo(intersects2));
		}