Test1()
{
// 2 rows of 3 bins each, space left over at top.
RectangleBinner oRectangleBinner = new RectangleBinner(
new Rectangle( new Point(1, 1), new Size(6, 5) ),
2);
Rectangle oReturnedBin;
foreach (Rectangle oExpectedBin in new Rectangle[] {
new Rectangle( new Point(1, 4), new Size(2, 2) ),
new Rectangle( new Point(3, 4), new Size(2, 2) ),
new Rectangle( new Point(5, 4), new Size(2, 2) ),
new Rectangle( new Point(1, 2), new Size(2, 2) ),
new Rectangle( new Point(3, 2), new Size(2, 2) ),
new Rectangle( new Point(5, 2), new Size(2, 2) ),
} )
{
Assert.IsTrue( oRectangleBinner.TryGetNextBin(out oReturnedBin) );
Assert.AreEqual(oExpectedBin, oReturnedBin);
}
Assert.IsFalse( oRectangleBinner.TryGetNextBin(out oReturnedBin) );
Assert.IsFalse( oRectangleBinner.TryGetNextBin(out oReturnedBin) );
Rectangle oRemainingRectangle;
Assert.IsTrue( oRectangleBinner.TryGetRemainingRectangle(
out oRemainingRectangle) );
Assert.AreEqual(new Rectangle( new Point(1, 1), new Size(6, 1) ),
oRemainingRectangle);
}