public void ShouldTranslateALoopWithAContinueStatement()
        {
            var intVariable             = Expression.Variable(typeof(int), "i");
            var intLessThanThree        = Expression.LessThan(intVariable, Expression.Constant(3));
            var incrementVariable       = Expression.Increment(intVariable);
            var continueLoop            = Expression.Continue(Expression.Label());
            var incrementAndContinue    = Expression.Block(incrementVariable, continueLoop);
            var ifLessThanThreeContinue = Expression.IfThen(intLessThanThree, incrementAndContinue);
            var writeFinished           = CreateLambda(() => Console.Write("Finished!"));
            var returnFromLoop          = Expression.Return(Expression.Label());
            var loopBody = Expression.Block(ifLessThanThreeContinue, writeFinished.Body, returnFromLoop);
            var loop     = Expression.Loop(loopBody, returnFromLoop.Target, continueLoop.Target);

            var translated = ToReadableString(loop);

            const string EXPECTED = @"
while (true)
{
    if (i < 3)
    {
        ++i;
        continue;
    }

    Console.Write(""Finished!"");
    return;
}";

            translated.ShouldBe(EXPECTED.TrimStart());
        }