//*******************************************************************************
//*
//*   Copyright (C) 1998-2000, International Business Machines
//*   Corporation and others.  All Rights Reserved.
//*
//*******************************************************************************


// This is a test resource to check new types of resources

testtypes
{
    zerotest { "abc\u0000def" } // The length of this string should be 7, not 3
    binarytest:bin { 000102030405060708090a0b0c0d0e } // Binary 15 bytes long 
    onehundredtwentythree:int {123 } //
    one:int { 1 } // number one
    importtest:import { "importtest.bin" }
    integerarray:intvector { 1, 2, 3, -3, 4, 5, 6, 7 } // an array of 32-bit integers
    minusone:int {-1}  // number -1
	plusone:int {1} // number 1
	    
    // Empties
    emptyexplicitstring:string { "" }
    emptystring { "" }
    emptyintv:intvector { }
    emptybin:bin { "" }
    emptyint:int { "" }
    emptytable:table { }
    emptyarray:array 
    {
    }
    testescape{ "tab:\t cr:\r ff:\f newline:\n backslash:\\\\ quote=\\\' doubleQuote=\\\" singlequoutes=''" }
    string{ }
    stringTable{{}}
    //nested table
    menu {
        file {
		 open { "Open" }
	         save { "Save" }
	         exit { "Exit" }
	     }
      }
    test_underscores{
        "test message ...."
    }
            
}

//eof


