// Path: EventBusPerformance/src/org/greenrobot/eventbusperf/Test.java
// public abstract class Test {
//     protected final Context context;
//     protected final TestParams params;
//     public final AtomicLong eventsReceivedCount = new AtomicLong();
//     protected long primaryResultMicros;
//     protected int primaryResultCount;
//     protected String otherTestResults;
// 
//     protected boolean canceled;
// 
//     public Test(Context context, TestParams params) {
//         this.context = context;
//         this.params = params;
//     }
// 
//     public void cancel() {
//         canceled = true;
//     }
// 
//     /** prepares the test, all things which are not relevant for test results */
//     public abstract void prepareTest();
// 
//     public abstract void runTest();
// 
//     /** returns the display name of the test. e.g. EventBus */
//     public abstract String getDisplayName();
// 
//     protected void waitForReceivedEventCount(int expectedEventCount) {
//         while (eventsReceivedCount.get() < expectedEventCount) {
//             try {
//                 Thread.sleep(1);
//             } catch (InterruptedException e) {
//                 throw new RuntimeException(e);
//             }
//         }
//     }
// 
//     public long getPrimaryResultMicros() {
//         return primaryResultMicros;
//     }
// 
//     public double getPrimaryResultRate() {
//         return primaryResultCount / (primaryResultMicros / 1000000d);
//     }
// 
//     public String getOtherTestResults() {
//         return otherTestResults;
//     }
// 
// }
// 
// Path: EventBusPerformance/src/org/greenrobot/eventbusperf/TestEvent.java
// public class TestEvent {
// 
// }


import org.greenrobot.eventbusperf.TestEvent;
import org.greenrobot.eventbusperf.TestParams;
import android.app.Activity;
import android.content.Context;
import android.os.Looper;
import com.squareup.otto.Bus;
import com.squareup.otto.Subscribe;
import com.squareup.otto.ThreadEnforcer;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.concurrent.ConcurrentHashMap;
import org.greenrobot.eventbusperf.Test;
        public Subscriber() {
        }

        @Subscribe
        public void onEvent(TestEvent event) {
            eventsReceivedCount.incrementAndGet();
        }

        public void dummy() {
        }

        public void dummy2() {
        }

        public void dummy3() {
        }

        public void dummy4() {
        }

        public void dummy5() {
        }

    }

    private long registerSubscribers() {
        long time = 0;
        for (Object subscriber : subscribers) {
            long timeStart = System.nanoTime();
            eventBus.register(subscriber);
// Path: EventBusPerformance/src/org/greenrobot/eventbusperf/Test.java
// public abstract class Test {
//     protected final Context context;
//     protected final TestParams params;
//     public final AtomicLong eventsReceivedCount = new AtomicLong();
//     protected long primaryResultMicros;
//     protected int primaryResultCount;
//     protected String otherTestResults;
// 
//     protected boolean canceled;
// 
//     public Test(Context context, TestParams params) {
//         this.context = context;
//         this.params = params;
//     }
// 
//     public void cancel() {
//         canceled = true;
//     }
// 
//     /** prepares the test, all things which are not relevant for test results */
//     public abstract void prepareTest();
// 
//     public abstract void runTest();
// 
//     /** returns the display name of the test. e.g. EventBus */
//     public abstract String getDisplayName();
// 
//     protected void waitForReceivedEventCount(int expectedEventCount) {
//         while (eventsReceivedCount.get() < expectedEventCount) {
//             try {
//                 Thread.sleep(1);
//             } catch (InterruptedException e) {
//                 throw new RuntimeException(e);
//             }
//         }
//     }
// 
//     public long getPrimaryResultMicros() {
//         return primaryResultMicros;
//     }
// 
//     public double getPrimaryResultRate() {
//         return primaryResultCount / (primaryResultMicros / 1000000d);
//     }
// 
//     public String getOtherTestResults() {
//         return otherTestResults;
//     }
// 
// }
// 
// Path: EventBusPerformance/src/org/greenrobot/eventbusperf/TestEvent.java
// public class TestEvent {
// 
// }


// Path: EventBusPerformance/src/org/greenrobot/eventbusperf/testsubject/PerfTestOtto.java
import org.greenrobot.eventbusperf.TestEvent;
import org.greenrobot.eventbusperf.TestParams;
import android.app.Activity;
import android.content.Context;
import android.os.Looper;
import com.squareup.otto.Bus;
import com.squareup.otto.Subscribe;
import com.squareup.otto.ThreadEnforcer;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.concurrent.ConcurrentHashMap;
import org.greenrobot.eventbusperf.Test;

        public Subscriber() {
        }

        @Subscribe
        public void onEvent(TestEvent event) {
            eventsReceivedCount.incrementAndGet();
        }

        public void dummy() {
        }

        public void dummy2() {
        }

        public void dummy3() {
        }

        public void dummy4() {
        }

        public void dummy5() {
        }

    }

    private long registerSubscribers() {
        long time = 0;
        for (Object subscriber : subscribers) {
            long timeStart = System.nanoTime();
            eventBus.register(subscriber);
            long timeEnd = System.nanoTime();