// Path: src/main/java/com/martensigwart/fakeload/MemoryUnit.java
// public enum MemoryUnit {
// 
//     /**
//      * Represents bytes
//      */
//     BYTES(1),
// 
//     /**
//      * Represents kilobytes, 1 kilobyte = 1024 bytes ({@link #BYTES}).
//      */
//     KB(BYTES.multiplier *1024),
// 
//     /**
//      * Represents megabytes, 1 megabyte = 1024 kilobytes ({@link #KB}).
//      */
//     MB(KB.multiplier *1024),
// 
//     /**
//      * Represents gigabytes, 1 gigabyte = 1024 megabytes ({@link #MB}).
//      */
//     GB(MB.multiplier *1024);
// 
//     private final long multiplier;
// 
//     MemoryUnit(long multiplier) {
//         this.multiplier = multiplier;
//     }
// 
// 
//     public long toBytes(long amount) {
//         return amount* multiplier;
//     }
// 
//     public double toKB(long amount) {
//         return convert(amount, KB);
//     }
// 
//     public double toMB(long amount) {
//         return convert(amount, MB);
//     }
// 
//     public double toGB(long amount) {
//         return convert(amount, GB);
//     }
// 
//     private double convert(long amount, MemoryUnit toUnit) {
//         return (double)amount * ((double)this.multiplier/toUnit.multiplier);
//     }
// 
//     public static String mbString(long bytes) {
//         return String.format("%d bytes (%.2f MB)", bytes, (double)bytes / (MB.multiplier));
//     }
// 
// }


import com.martensigwart.fakeload.MemoryUnit;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.*;
import java.util.Random;
import java.util.concurrent.TimeUnit;
package com.martensigwart.fakeload.util;




public class DiskIOBenchmark {

    private static final Logger log = LoggerFactory.getLogger(DiskIOBenchmark.class);

    public static void main(String... args) {
        log.info("Welcome to DiskIO Benchmark - Test Class");

        int seconds = 10;
        if (args.length > 0) {
            int timeArg = Integer.valueOf(args[0]);
            seconds = (timeArg == 0 ? 10 : timeArg);
        }

        System.out.println(MemoryUnit.BYTES.toGB(Integer.MAX_VALUE));

//        String readPath = "/tmp/input.tmp";
//        read(readPath, seconds);


        long start = System.nanoTime();
        long bytes = MemoryUnit.GB.toBytes(1);
// Path: src/main/java/com/martensigwart/fakeload/MemoryUnit.java
// public enum MemoryUnit {
// 
//     /**
//      * Represents bytes
//      */
//     BYTES(1),
// 
//     /**
//      * Represents kilobytes, 1 kilobyte = 1024 bytes ({@link #BYTES}).
//      */
//     KB(BYTES.multiplier *1024),
// 
//     /**
//      * Represents megabytes, 1 megabyte = 1024 kilobytes ({@link #KB}).
//      */
//     MB(KB.multiplier *1024),
// 
//     /**
//      * Represents gigabytes, 1 gigabyte = 1024 megabytes ({@link #MB}).
//      */
//     GB(MB.multiplier *1024);
// 
//     private final long multiplier;
// 
//     MemoryUnit(long multiplier) {
//         this.multiplier = multiplier;
//     }
// 
// 
//     public long toBytes(long amount) {
//         return amount* multiplier;
//     }
// 
//     public double toKB(long amount) {
//         return convert(amount, KB);
//     }
// 
//     public double toMB(long amount) {
//         return convert(amount, MB);
//     }
// 
//     public double toGB(long amount) {
//         return convert(amount, GB);
//     }
// 
//     private double convert(long amount, MemoryUnit toUnit) {
//         return (double)amount * ((double)this.multiplier/toUnit.multiplier);
//     }
// 
//     public static String mbString(long bytes) {
//         return String.format("%d bytes (%.2f MB)", bytes, (double)bytes / (MB.multiplier));
//     }
// 
// }


// Path: src/test/java/com/martensigwart/fakeload/util/DiskIOBenchmark.java
import com.martensigwart.fakeload.MemoryUnit;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.*;
import java.util.Random;
import java.util.concurrent.TimeUnit;

package com.martensigwart.fakeload.util;




public class DiskIOBenchmark {

    private static final Logger log = LoggerFactory.getLogger(DiskIOBenchmark.class);

    public static void main(String... args) {
        log.info("Welcome to DiskIO Benchmark - Test Class");

        int seconds = 10;
        if (args.length > 0) {
            int timeArg = Integer.valueOf(args[0]);
            seconds = (timeArg == 0 ? 10 : timeArg);
        }

        System.out.println(MemoryUnit.BYTES.toGB(Integer.MAX_VALUE));

//        String readPath = "/tmp/input.tmp";
//        read(readPath, seconds);


        long start = System.nanoTime();
        long bytes = MemoryUnit.GB.toBytes(1);
        long mod = bytes % (4 * MemoryUnit.MB.toBytes(1));