<?xml version="1.0" encoding="UTF-8"?>
<testcases version="1.0" tds_version="1.3" timestamp="08-15-2005">
	<!-- Test Header/Scheme Type -->
	<testcase type="GIAI-202" name="ValidSchemeType" desc="Validate if the header corresponds to a defined coding scheme">
		<input value="0011100000010100000001001000000100010001100000110000011000001100000110000011000001100000110000011000001100000110000011000001100000110000011000001100000110001000000000000000000000000000000000000000000000" 
		filter="" outputlevel="LEGACY"/>
		<output value="giai=007379600000000000000001"/>
		<test-parameter name="schemeType" status="PASSED" errorMsg=""/>
	</testcase>
	
	<!-- Test Output Levels -->
	<testcase type="GIAI-202" name="ValidBinaryOutput" desc="Validate binary output format">
		<input value="007379600000000000000001" 
		filter="0"  companyprefixlength="7" outputlevel="BINARY"/>
		<output value="0011100000010100000001001000000100010001100000110000011000001100000110000011000001100000110000011000001100000110000011000001100000110000011000001100000110001000000000000000000000000000000000000000000000"/>
		<test-parameter name="binary_encoding" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="GIAI-202" name="ValidTagURIOutput" desc="Validate tag URI output format">
		<input value="007379600000000000000001" 
		filter="0" companyprefixlength="7" outputlevel="TAG_ENCODING"/>
		<output value="urn:epc:tag:giai-202:0.0073796.00000000000000001"/>
		<test-parameter name="taguri_encoding" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="GIAI-202" name="ValidPureIdentityOutput" desc="Validate pure identity output format">
		<input value="007379600000000000000001" 
		filter="0"  companyprefixlength="7" outputlevel="PURE_typeENTITY"/>
		<output value="urn:epc:id:giai:0073796.00000000000000001"/>
		<test-parameter name="pureidentity_encoding" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="GIAI-202" name="ValidLength" desc="Validate legacy output format">
		<input value="0011100000010100000001001000000100010001100000110000011000001100000110000011000001100000110000011000001100000110000011000001100000110000011000001100000110001000000000000000000000000000000000000000000000" 
		filter="0"  companyprefixlength="7" outputlevel="LEGACY"/>
		<output value="giai=007379600000000000000001"/>
		<test-parameter name="length" status="PASSED" errorMsg=""/>
	</testcase>

	<!-- Test CompanyPrefix Length -->
	<testcase type="GIAI-202" name="ValidCompanyPrefix-6" desc="Validate CompanyPrefix">
		<input value="038004000000000000000001" 
		filter="0"  companyprefixlength="6" outputlevel="BINARY"/>
		<output value="0011100000011000001001010001110100011000001100000110000011000001100000110000011000001100000110000011000001100000110000011000001100000110000011000001100000110001000000000000000000000000000000000000000000"/>
		<test-parameter name="companyprefix" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="GIAI-202" name="ValidCompanyPrefix-8" desc="Validate CompanyPrefix length">
		<input value="084105800000000000000001" 
		filter="0" companyprefixlength="8" outputlevel="BINARY"/>
		<output value="0011100000010000010000000010101011101010001100000110000011000001100000110000011000001100000110000011000001100000110000011000001100000110000011000001100010000000000000000000000000000000000000000000000000"/>
		<test-parameter name="companyprefix" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="GIAI-202" name="ValidCompanyPrefix-9" desc="Validate CompanyPrefix length">
		<input value="083592400000000000000000001" 
		filter="0" companyprefixlength="9" outputlevel="BINARY"/>
		<output value="0011100000001100010011111011100001001101000001100000110000011000001100000110000011000001100000110000011000001100000110000011000001100000110000011000001100000110000011000100000000000000000000000000000000"/>
		<test-parameter name="companyprefix" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="GIAI-202" name="ValidCompanyPrefix-10" desc="Validate CompanyPrefix length">
		<input value="0850583001000000000000000001" 
		filter="0" companyprefixlength="10" outputlevel="BINARY"/>
		<output value="0011100000001000001100101011001011011101110110010110000011000001100000110000011000001100000110000011000001100000110000011000001100000110000011000001100000110000011000001100010000000000000000000000000000"/>
		<test-parameter name="companyprefix" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="GIAI-202" name="ValidCompanyPrefix-12" desc="Validate CompanyPrefix length">
		<input value="057900012653301" 
		filter="0" companyprefixlength="12" outputlevel="BINARY"/>
		<output value="0011100000000000001101011110110001110000010100011011010110011011000001100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="companyprefix" status="PASSED" errorMsg=""/>
	</testcase>
	
	<!-- Test Asset Reference -->
	<testcase type="GIAI-202" name="ValidMinAssetRef-6" desc="Validate minimum asset reference value allowed">
		<input value="038004000000000000000000" 
		filter="0" companyprefixlength="6" outputlevel="BINARY"/>
		<output value="0011100000011000001001010001110100011000001100000110000011000001100000110000011000001100000110000011000001100000110000011000001100000110000011000001100000110000000000000000000000000000000000000000000000"/>
		<test-parameter name="serial" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="GIAI-202" name="ValidMaxAssetRef-6" desc="Validate maximum asset reference value allowed">
		<input value="038004999999999999999999" 
		filter="0" companyprefixlength="6" outputlevel="BINARY"/>
		<output value="0011100000011000001001010001110100011100101110010111001011100101110010111001011100101110010111001011100101110010111001011100101110010111001011100101110010111001000000000000000000000000000000000000000000"/>
		<test-parameter name="indassetref" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="GIAI-202" name="ValidMinAssetRef-7" desc="Validate minimum asset ref value allowed">
		<input value="007379600000000000000000" 
		filter="0" serial="0" companyprefixlength="7" outputlevel="BINARY"/>
		<output value="0011100000010100000001001000000100010001100000110000011000001100000110000011000001100000110000011000001100000110000011000001100000110000011000001100000110000000000000000000000000000000000000000000000000"/>
		<test-parameter name="indassetref" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="GIAI-202" name="ValidMaxSerial-7" desc="Validate maximum serial number value allowed">
		<input value="007379699999999999999999" 
		filter="0" companyprefixlength="7" outputlevel="BINARY"/>
		<output value="0011100000010100000001001000000100010001110010111001011100101110010111001011100101110010111001011100101110010111001011100101110010111001011100101110010111001000000000000000000000000000000000000000000000"/>
		<test-parameter name="serial" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="GIAI-202" name="ValidMinAssetRef-8" desc="Validate minimum asset ref value allowed">
		<input value="084105800000000000000000" 
		filter="0" serial="0" companyprefixlength="8" outputlevel="BINARY"/>
		<output value="0011100000010000010000000010101011101010001100000110000011000001100000110000011000001100000110000011000001100000110000011000001100000110000011000001100000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="indassetref" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="GIAI-202" name="ValidMaxSerial-8" desc="Validate maximum serial number value allowed">
		<input value="084105809999999999999999" 
		filter="0" companyprefixlength="8" outputlevel="BINARY"/>
		<output value="0011100000010000010000000010101011101010001110010111001011100101110010111001011100101110010111001011100101110010111001011100101110010111001011100101110010000000000000000000000000000000000000000000000000"/>
		<test-parameter name="serial" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="GIAI-202" name="ValidMinAssetRef-9" desc="Validate minimum asset ref value allowed">
		<input value="083592400000000000000000" 
		filter="0" serial="0" companyprefixlength="9" outputlevel="BINARY"/>
		<output value="0011100000001100010011111011100001001101000001100000110000011000001100000110000011000001100000110000011000001100000110000011000001100000110000011000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="indassetref" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="GIAI-202" name="ValidMaxSerial-9" desc="Validate maximum serial number value allowed">
		<input value="083592400999999999999999" 
		filter="0" companyprefixlength="9" outputlevel="BINARY"/>
		<output value="0011100000001100010011111011100001001101000001110010111001011100101110010111001011100101110010111001011100101110010111001011100101110010111001011100100000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="serial" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="GIAI-202" name="ValidMinAssetRef-10" desc="Validate minimum asset ref value allowed">
		<input value="085058300100000000000000" 
		filter="0" serial="0" companyprefixlength="10" outputlevel="BINARY"/>
		<output value="0011100000001000001100101011001011011101110110010110000011000001100000110000011000001100000110000011000001100000110000011000001100000110000011000000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="indassetref" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="GIAI-202" name="ValidMaxSerial-10" desc="Validate maximum serial number value allowed">
		<input value="085058300199999999999999" 
		filter="0" companyprefixlength="10" outputlevel="BINARY"/>
		<output value="0011100000001000001100101011001011011101110110010111001011100101110010111001011100101110010111001011100101110010111001011100101110010111001011100100000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="serial" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="GIAI-202" name="ValidMaxSerial-12" desc="Validate maximum serial number value allowed">
		<input value="085058300199999999999999" 
		filter="0" companyprefixlength="10" outputlevel="BINARY"/>
		<output value="0011100000001000001100101011001011011101110110010111001011100101110010111001011100101110010111001011100101110010111001011100101110010111001011100100000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="serial" status="PASSED" errorMsg=""/>
	</testcase>
		
	<!-- Invalid Test Scenarios -->
	<testcase type="GIAI-202" name="InvalidSchemeType" desc="Validate if the header corresponds to a defined coding scheme"">
		<input value="1111111100001000001100101011001011011101110110010111001011100101110010111001011100101110010111001011100101110010111001011100101110010111001011100100000000000000000000000000000000000000000000000000000000" 
		filter="" outputlevel="LEGACY"/>
		<output value="" />
		<test-parameter name="schemeType" status="FAILED" errorMsg="Header value 11111111 is not currently defined in EPC Tag Data Standards"/>
	</testcase>
	<testcase type="GIAI-202" name="InvalidMinCompanyPrefixLength" desc="Validate min. company prefix length">
		<input value="007379600000000000000000" 
		filter="0"  companyprefixlength="5" outputlevel="BINARY"/>
		<output value=""/>
		<test-parameter name="mincompanyprefixlength" status="FAILED" errorMsg="Company Prefix length cannot be less than 6 digits"/>
	</testcase>
	<testcase type="GIAI-202" name="InvalidMaxCompanyPrefixLength" desc="Validate max. company prefix length">
		<input value="007379600000000000000000" 
		filter="0"  companyprefixlength="13" outputlevel="BINARY"/>
		<output value=""/>
		<test-parameter name="maxcompanyprefixlength" status="FAILED" errorMsg="Company Prefix length cannot be greater than 12 digits"/>
	</testcase>
	<testcase type="GIAI-202" name="InvalidFilter" desc="Validate filter value">
		<input value="007379600000000000000000" 
		filter="8"  companyprefixlength="7" outputlevel="BINARY"/>
		<output value=""/>
		<test-parameter name="filter" status="FAILED" errorMsg="Filter value cannot be greater than 7"/>
	</testcase>
	<testcase type="GIAI-202" name="InvalidSerial" desc="Validate serial value">
		<input value="0073796000000#$" 
		filter="8"  companyprefixlength="7" outputlevel="BINARY"/>
		<output value=""/>
		<test-parameter name="filter" status="FAILED" errorMsg="Filter value cannot be greater than 7"/>
	</testcase>
</testcases>