// Path: src/main/java/com/technofovea/hllib/enums/DirectoryItemType.java
// public enum DirectoryItemType implements JnaEnum<DirectoryItemType> {
// 
//     
//     NONE,
//     FOLDER,
//     FILE;
// 
// 
//     private static int start = 0;
// 
//     public int getIntValue() {
//         return this.ordinal()+start;
//     }
// 
// 
//     public DirectoryItemType getForValue(int i) {
//         for(DirectoryItemType o : this.values()){
//             if(o.getIntValue() == i){
//                 return o;
//             }
//         }
//         return null;
//     }
// 
// 
// 
// 
// }
// 
// Path: src/main/java/com/technofovea/hllib/enums/PackageType.java
// public enum PackageType implements JnaEnum<PackageType> {
// 
//     NONE,
//     BSP,
//     GCF,
//     PAK,
//     VBSP,
//     WAD,
//     XZP,
//     ZIP,
//     NCF,
//     VPK;
//     
//     private static int start = 0;
// 
//     public int getIntValue() {
//         return this.ordinal() + start;
//     }
// 
//     public PackageType getForValue(
//             int i) {
//         for (PackageType o : this.values()) {
//             if (o.getIntValue() == i) {
//                 return o;
//             }
// 
//         }
//         return null;
//     }
// }
// 
// Path: src/main/java/com/technofovea/hllib/masks/FileMode.java
// public class FileMode extends MappedMask{
//     
// 	public static final int INDEX_MODE_READ= 0;
// 	public static final int INDEX_MODE_WRITE= 1;
// 	public static final int INDEX_MODE_CREATE= 2;
// 	public static final int INDEX_MODE_VOLATILE= 3;
// 	public static final int INDEX_MODE_NO_FILEMAPPING= 4;
// 	public static final int INDEX_MODE_QUICK_FILEMAPPING= 5;
// 
// }
// 
// Path: src/main/java/com/technofovea/hllib/methods/FullLibrary.java
// public interface FullLibrary extends BasicLibrary {
// 
//     /**
//      * Called to initialize the DLL library.
//      */
//     public void initialize();
// 
//     /**
//      * Called to shut down the DLL library.
//      */
//     public void shutdown();
// 
//     public boolean itemGetSize(DirectoryItem item, IntByReference size);
// 
//     public boolean itemGetSizeEx(DirectoryItem item, LongByReference size);
// 
//     public boolean itemGetSizeOnDisk(DirectoryItem item, IntByReference size);
// 
//     public boolean itemGetSizeOnDiskEx(DirectoryItem item, LongByReference size);
// 
//     public void itemGetPath(DirectoryItem item, byte[] buffer, int bufsize);
// 
//     public boolean createPackage(PackageType ePackageType, IntByReference packageId);
// 
//     public void packageClose();
// 
//     public void deletePackage(HlPackage pkg);
// 
//     public boolean packageGetExtractable(DirectoryItem file, ByteByReference extractable);
// 
//     public boolean packageGetFileSize(DirectoryItem file, IntByReference size);
// 
//     public boolean packageGetFileSizeOnDisk(DirectoryItem file, IntByReference size);
// 
//     public boolean packageCreateStream(DirectoryItem file, PointerByReference stream);
// 
//     public boolean fileCreateStream(DirectoryItem item, PointerByReference stream);
// }
// 
// Path: src/main/java/com/technofovea/hllib/methods/ManagedLibrary.java
// public interface ManagedLibrary extends BasicLibrary, ManagedCalls{       
// 
// }


import com.sun.jna.Memory;
import com.technofovea.hllib.enums.DirectoryItemType;
import com.technofovea.hllib.enums.PackageType;
import com.technofovea.hllib.masks.FileMode;
import com.technofovea.hllib.methods.FullLibrary;
import com.technofovea.hllib.methods.ManagedLibrary;
import java.io.File;
import java.io.FileInputStream;
import java.net.URL;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import junit.framework.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
        expected.add("root\\lumps\\utest_l_13.lmp");
        expected.add("root\\lumps\\utest_l_14.lmp");
        expected.add("root\\lumps\\utest_l_16.lmp");
        expected.add("root\\lumps\\utest_l_17.lmp");
        expected.add("root\\lumps\\utest_l_18.lmp");
        expected.add("root\\lumps\\utest_l_19.lmp");
        expected.add("root\\lumps\\utest_l_20.lmp");
        expected.add("root\\lumps\\utest_l_21.lmp");
        expected.add("root\\lumps\\utest_l_27.lmp");
        expected.add("root\\lumps\\utest_l_28.lmp");
        expected.add("root\\lumps\\utest_l_29.lmp");
        expected.add("root\\lumps\\utest_l_30.lmp");
        expected.add("root\\lumps\\utest_l_31.lmp");
        expected.add("root\\lumps\\utest_l_35.lmp");
        expected.add("root\\lumps\\utest_l_37.lmp");
        expected.add("root\\lumps\\utest_l_39.lmp");
        expected.add("root\\lumps\\utest_l_40.lmp");
        expected.add("root\\lumps\\utest_l_43.lmp");
        expected.add("root\\lumps\\utest_l_44.lmp");
        expected.add("root\\lumps\\utest_l_46.lmp");
        expected.add("root\\lumps\\utest_l_47.lmp");
        expected.add("root\\lumps\\utest_l_51.lmp");
        expected.add("root\\lumps\\utest_l_52.lmp");
        expected.add("root\\lumps\\utest_l_55.lmp");
        expected.add("root\\lumps\\utest_l_56.lmp");
        expected.add("root\\lumps\\utest_l_59.lmp");
        expected.add("root\\materials\\maps\\utest\\dev\\dev_blendmeasure2_wvt_patch.vmt");
        expected.add("root\\materials\\maps\\utest\\dev\\dev_blendmeasure_wvt_patch.vmt");
        expected.add("root\\utest.ent");
        expected.add("root\\utest.zip");
// Path: src/main/java/com/technofovea/hllib/enums/DirectoryItemType.java
// public enum DirectoryItemType implements JnaEnum<DirectoryItemType> {
// 
//     
//     NONE,
//     FOLDER,
//     FILE;
// 
// 
//     private static int start = 0;
// 
//     public int getIntValue() {
//         return this.ordinal()+start;
//     }
// 
// 
//     public DirectoryItemType getForValue(int i) {
//         for(DirectoryItemType o : this.values()){
//             if(o.getIntValue() == i){
//                 return o;
//             }
//         }
//         return null;
//     }
// 
// 
// 
// 
// }
// 
// Path: src/main/java/com/technofovea/hllib/enums/PackageType.java
// public enum PackageType implements JnaEnum<PackageType> {
// 
//     NONE,
//     BSP,
//     GCF,
//     PAK,
//     VBSP,
//     WAD,
//     XZP,
//     ZIP,
//     NCF,
//     VPK;
//     
//     private static int start = 0;
// 
//     public int getIntValue() {
//         return this.ordinal() + start;
//     }
// 
//     public PackageType getForValue(
//             int i) {
//         for (PackageType o : this.values()) {
//             if (o.getIntValue() == i) {
//                 return o;
//             }
// 
//         }
//         return null;
//     }
// }
// 
// Path: src/main/java/com/technofovea/hllib/masks/FileMode.java
// public class FileMode extends MappedMask{
//     
// 	public static final int INDEX_MODE_READ= 0;
// 	public static final int INDEX_MODE_WRITE= 1;
// 	public static final int INDEX_MODE_CREATE= 2;
// 	public static final int INDEX_MODE_VOLATILE= 3;
// 	public static final int INDEX_MODE_NO_FILEMAPPING= 4;
// 	public static final int INDEX_MODE_QUICK_FILEMAPPING= 5;
// 
// }
// 
// Path: src/main/java/com/technofovea/hllib/methods/FullLibrary.java
// public interface FullLibrary extends BasicLibrary {
// 
//     /**
//      * Called to initialize the DLL library.
//      */
//     public void initialize();
// 
//     /**
//      * Called to shut down the DLL library.
//      */
//     public void shutdown();
// 
//     public boolean itemGetSize(DirectoryItem item, IntByReference size);
// 
//     public boolean itemGetSizeEx(DirectoryItem item, LongByReference size);
// 
//     public boolean itemGetSizeOnDisk(DirectoryItem item, IntByReference size);
// 
//     public boolean itemGetSizeOnDiskEx(DirectoryItem item, LongByReference size);
// 
//     public void itemGetPath(DirectoryItem item, byte[] buffer, int bufsize);
// 
//     public boolean createPackage(PackageType ePackageType, IntByReference packageId);
// 
//     public void packageClose();
// 
//     public void deletePackage(HlPackage pkg);
// 
//     public boolean packageGetExtractable(DirectoryItem file, ByteByReference extractable);
// 
//     public boolean packageGetFileSize(DirectoryItem file, IntByReference size);
// 
//     public boolean packageGetFileSizeOnDisk(DirectoryItem file, IntByReference size);
// 
//     public boolean packageCreateStream(DirectoryItem file, PointerByReference stream);
// 
//     public boolean fileCreateStream(DirectoryItem item, PointerByReference stream);
// }
// 
// Path: src/main/java/com/technofovea/hllib/methods/ManagedLibrary.java
// public interface ManagedLibrary extends BasicLibrary, ManagedCalls{       
// 
// }


// Path: src/test/java/com/technofovea/hllib/FileListingTest.java
import com.sun.jna.Memory;
import com.technofovea.hllib.enums.DirectoryItemType;
import com.technofovea.hllib.enums.PackageType;
import com.technofovea.hllib.masks.FileMode;
import com.technofovea.hllib.methods.FullLibrary;
import com.technofovea.hllib.methods.ManagedLibrary;
import java.io.File;
import java.io.FileInputStream;
import java.net.URL;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import junit.framework.Assert;
import org.junit.BeforeClass;
import org.junit.Test;

        expected.add("root\\lumps\\utest_l_13.lmp");
        expected.add("root\\lumps\\utest_l_14.lmp");
        expected.add("root\\lumps\\utest_l_16.lmp");
        expected.add("root\\lumps\\utest_l_17.lmp");
        expected.add("root\\lumps\\utest_l_18.lmp");
        expected.add("root\\lumps\\utest_l_19.lmp");
        expected.add("root\\lumps\\utest_l_20.lmp");
        expected.add("root\\lumps\\utest_l_21.lmp");
        expected.add("root\\lumps\\utest_l_27.lmp");
        expected.add("root\\lumps\\utest_l_28.lmp");
        expected.add("root\\lumps\\utest_l_29.lmp");
        expected.add("root\\lumps\\utest_l_30.lmp");
        expected.add("root\\lumps\\utest_l_31.lmp");
        expected.add("root\\lumps\\utest_l_35.lmp");
        expected.add("root\\lumps\\utest_l_37.lmp");
        expected.add("root\\lumps\\utest_l_39.lmp");
        expected.add("root\\lumps\\utest_l_40.lmp");
        expected.add("root\\lumps\\utest_l_43.lmp");
        expected.add("root\\lumps\\utest_l_44.lmp");
        expected.add("root\\lumps\\utest_l_46.lmp");
        expected.add("root\\lumps\\utest_l_47.lmp");
        expected.add("root\\lumps\\utest_l_51.lmp");
        expected.add("root\\lumps\\utest_l_52.lmp");
        expected.add("root\\lumps\\utest_l_55.lmp");
        expected.add("root\\lumps\\utest_l_56.lmp");
        expected.add("root\\lumps\\utest_l_59.lmp");
        expected.add("root\\materials\\maps\\utest\\dev\\dev_blendmeasure2_wvt_patch.vmt");
        expected.add("root\\materials\\maps\\utest\\dev\\dev_blendmeasure_wvt_patch.vmt");
        expected.add("root\\utest.ent");
        expected.add("root\\utest.zip");
        Set<String> found = new HashSet<String>();