// Path: src/performance/java/com/lmax/disruptor/support/FizzBuzzEvent.java
// public final class FizzBuzzEvent
// {
//     private boolean fizz = false;
//     private boolean buzz = false;
//     private long value = 0;
// 
//     public long getValue()
//     {
//         return value;
//     }
// 
//     public void setValue(final long value)
//     {
//         fizz = false;
//         buzz = false;
//         this.value = value;
//     }
// 
//     public boolean isFizz()
//     {
//         return fizz;
//     }
// 
//     public void setFizz(final boolean fizz)
//     {
//         this.fizz = fizz;
//     }
// 
//     public boolean isBuzz()
//     {
//         return buzz;
//     }
// 
//     public void setBuzz(final boolean buzz)
//     {
//         this.buzz = buzz;
//     }
// 
//     public final static EventFactory<FizzBuzzEvent> EVENT_FACTORY = new EventFactory<FizzBuzzEvent>()
//     {
//         public FizzBuzzEvent newInstance()
//         {
//             return new FizzBuzzEvent();
//         }
//     };
// }


import com.lmax.disruptor.support.FizzBuzzEvent;
import com.lmax.disruptor.support.FizzBuzzEventHandler;
import com.lmax.disruptor.support.FizzBuzzQueueProcessor;
import com.lmax.disruptor.support.FizzBuzzStep;
import org.junit.Assert;
import org.junit.Test;
import java.util.concurrent.*;
            boolean fizz = 0 == (i % 3L);
            boolean buzz = 0 == (i % 5L);

            if (fizz && buzz)
            {
                ++temp;
            }
        }

        expectedResult = temp;
    }

    ///////////////////////////////////////////////////////////////////////////////////////////////

    private final BlockingQueue<Long> fizzInputQueue = new LinkedBlockingQueue<Long>(BUFFER_SIZE);
    private final BlockingQueue<Long> buzzInputQueue = new LinkedBlockingQueue<Long>(BUFFER_SIZE);
    private final BlockingQueue<Boolean> fizzOutputQueue = new LinkedBlockingQueue<Boolean>(BUFFER_SIZE);
    private final BlockingQueue<Boolean> buzzOutputQueue = new LinkedBlockingQueue<Boolean>(BUFFER_SIZE);

    private final FizzBuzzQueueProcessor fizzQueueProcessor =
        new FizzBuzzQueueProcessor(FizzBuzzStep.FIZZ, fizzInputQueue, buzzInputQueue, fizzOutputQueue, buzzOutputQueue, ITERATIONS - 1);

    private final FizzBuzzQueueProcessor buzzQueueProcessor =
        new FizzBuzzQueueProcessor(FizzBuzzStep.BUZZ, fizzInputQueue, buzzInputQueue, fizzOutputQueue, buzzOutputQueue, ITERATIONS - 1);

    private final FizzBuzzQueueProcessor fizzBuzzQueueProcessor =
        new FizzBuzzQueueProcessor(FizzBuzzStep.FIZZ_BUZZ, fizzInputQueue, buzzInputQueue, fizzOutputQueue, buzzOutputQueue, ITERATIONS - 1);

    ///////////////////////////////////////////////////////////////////////////////////////////////

// Path: src/performance/java/com/lmax/disruptor/support/FizzBuzzEvent.java
// public final class FizzBuzzEvent
// {
//     private boolean fizz = false;
//     private boolean buzz = false;
//     private long value = 0;
// 
//     public long getValue()
//     {
//         return value;
//     }
// 
//     public void setValue(final long value)
//     {
//         fizz = false;
//         buzz = false;
//         this.value = value;
//     }
// 
//     public boolean isFizz()
//     {
//         return fizz;
//     }
// 
//     public void setFizz(final boolean fizz)
//     {
//         this.fizz = fizz;
//     }
// 
//     public boolean isBuzz()
//     {
//         return buzz;
//     }
// 
//     public void setBuzz(final boolean buzz)
//     {
//         this.buzz = buzz;
//     }
// 
//     public final static EventFactory<FizzBuzzEvent> EVENT_FACTORY = new EventFactory<FizzBuzzEvent>()
//     {
//         public FizzBuzzEvent newInstance()
//         {
//             return new FizzBuzzEvent();
//         }
//     };
// }


// Path: src/performance/java/com/lmax/disruptor/OnePublisherToThreeProcessorDiamondThroughputTest.java
import com.lmax.disruptor.support.FizzBuzzEvent;
import com.lmax.disruptor.support.FizzBuzzEventHandler;
import com.lmax.disruptor.support.FizzBuzzQueueProcessor;
import com.lmax.disruptor.support.FizzBuzzStep;
import org.junit.Assert;
import org.junit.Test;
import java.util.concurrent.*;

            boolean fizz = 0 == (i % 3L);
            boolean buzz = 0 == (i % 5L);

            if (fizz && buzz)
            {
                ++temp;
            }
        }

        expectedResult = temp;
    }

    ///////////////////////////////////////////////////////////////////////////////////////////////

    private final BlockingQueue<Long> fizzInputQueue = new LinkedBlockingQueue<Long>(BUFFER_SIZE);
    private final BlockingQueue<Long> buzzInputQueue = new LinkedBlockingQueue<Long>(BUFFER_SIZE);
    private final BlockingQueue<Boolean> fizzOutputQueue = new LinkedBlockingQueue<Boolean>(BUFFER_SIZE);
    private final BlockingQueue<Boolean> buzzOutputQueue = new LinkedBlockingQueue<Boolean>(BUFFER_SIZE);

    private final FizzBuzzQueueProcessor fizzQueueProcessor =
        new FizzBuzzQueueProcessor(FizzBuzzStep.FIZZ, fizzInputQueue, buzzInputQueue, fizzOutputQueue, buzzOutputQueue, ITERATIONS - 1);

    private final FizzBuzzQueueProcessor buzzQueueProcessor =
        new FizzBuzzQueueProcessor(FizzBuzzStep.BUZZ, fizzInputQueue, buzzInputQueue, fizzOutputQueue, buzzOutputQueue, ITERATIONS - 1);

    private final FizzBuzzQueueProcessor fizzBuzzQueueProcessor =
        new FizzBuzzQueueProcessor(FizzBuzzStep.FIZZ_BUZZ, fizzInputQueue, buzzInputQueue, fizzOutputQueue, buzzOutputQueue, ITERATIONS - 1);

    ///////////////////////////////////////////////////////////////////////////////////////////////

    private final RingBuffer<FizzBuzzEvent> ringBuffer =