<?xml version="1.0" encoding="UTF-8"?>
<testcases version="1.0" tds_version="1.1 Rev1.27" timestamp="08-15-2005">
	<!-- Test Header/Scheme Type -->
	<testcase type="SSCC-96" name="ValidSchemeType" desc="Validate if the header corresponds to a defined coding scheme">
		<input value="001100010101010000000100100000010001000000000000001001010011001100011100000000000000000000000000" 
		filter="" outputlevel="LEGACY"/>
		<output value="sscc=000737960024379162"/>
		<test-parameter name="schemeType" status="PASSED" errorMsg=""/>
	</testcase>
	
	<!-- Test Output Levels -->
	<testcase type="SSCC-96" name="ValidBinaryOutput" desc="Validate binary output format">
		<input value="000737960024379162" 
		filter="2"  companyprefixlength="7" outputlevel="BINARY"/>
		<output value="001100010101010000000100100000010001000000000000001001010011001100011100000000000000000000000000"/>
		<test-parameter name="binary_encoding" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SSCC-96" name="ValidTagURIOutput" desc="Validate tag URI output format">
		<input value="000737960024379162" 
		filter="2" companyprefixlength="7" outputlevel="TAG_ENCODING"/>
		<output value="urn:epc:tag:sscc-96:2.0073796.0002437916"/>
		<test-parameter name="taguri_encoding" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SSCC-96" name="ValidPureIdentityOutput" desc="Validate pure identity output format">
		<input value="000737960024379162" 
		filter="2"  companyprefixlength="7" outputlevel="PURE_IDENTITY"/>
		<output value="urn:epc:id:sscc:0073796.0002437916"/>
		<test-parameter name="pureidentity_encoding" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SSCC-96" name="ValidLength" desc="Validate if the length is valid">
		<input value="001100010101010000000100100000010001000000000000001001010011001100011100000000000000000000000000" 
		filter="2"  companyprefixlength="7" outputlevel="LEGACY"/>
		<output value="sscc=000737960024379162"/>
		<test-parameter name="length" status="PASSED" errorMsg=""/>
	</testcase>

	<!-- Test Filter Values -->
	<testcase type="SSCC-96" name="ValidFilter-0" desc="Validate Filter Value">
		<input value="000737960024379162" 
		filter="0"  companyprefixlength="7" outputlevel="BINARY"/>
		<output value="001100010001010000000100100000010001000000000000001001010011001100011100000000000000000000000000"/>
		<test-parameter name="filter" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SSCC-96" name="ValidFilter-1" desc="Validate Filter Value">
		<input value="000737960024379162" 
		filter="1"  companyprefixlength="7" outputlevel="BINARY"/>
		<output value="001100010011010000000100100000010001000000000000001001010011001100011100000000000000000000000000"/>
		<test-parameter name="filter" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SSCC-96" name="ValidFilter-2" desc="Validate Filter Value">
		<input value="000737960024379162" 
		filter="3"  companyprefixlength="7" outputlevel="BINARY"/>
		<output value="001100010111010000000100100000010001000000000000001001010011001100011100000000000000000000000000"/>
		<test-parameter name="filter" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SSCC-96" name="ValidFilter-4" desc="Validate Filter Value">
		<input value="000737960024379162" 
		filter="4"  companyprefixlength="7" outputlevel="BINARY"/>
		<output value="001100011001010000000100100000010001000000000000001001010011001100011100000000000000000000000000"/>
		<test-parameter name="filter" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SSCC-96" name="ValidFilter-5" desc="Validate Filter Value">
		<input value="000737960024379162" 
		filter="5"  companyprefixlength="7" outputlevel="BINARY"/>
		<output value="001100011011010000000100100000010001000000000000001001010011001100011100000000000000000000000000"/>
		<test-parameter name="filter" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SSCC-96" name="ValidFilter-6" desc="Validate Filter Value">
		<input value="000737960024379162" 
		filter="6"  companyprefixlength="7" outputlevel="BINARY"/>
		<output value="001100011101010000000100100000010001000000000000001001010011001100011100000000000000000000000000"/>
		<test-parameter name="filter" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SSCC-96" name="ValidFilter-7" desc="Validate Filter Value">
		<input value="000737960024379162" 
		filter="7"  companyprefixlength="7" outputlevel="BINARY"/>
		<output value="001100011111010000000100100000010001000000000000001001010011001100011100000000000000000000000000"/>
		<test-parameter name="filter" status="PASSED" errorMsg=""/>
	</testcase>

	<!-- Test CompanyPrefix Length -->
	<testcase type="SSCC-96" name="ValidCompanyPrefix-6" desc="Validate CompanyPrefix">
		<input value="003800400000000009" 
		filter="2"  companyprefixlength="6" outputlevel="BINARY"/>
		<output value="001100010101100000100101000111010000000000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="companyprefix" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SSCC-96" name="ValidCompanyPrefix-8" desc="Validate CompanyPrefix length">
		<input value="008410580000000006" 
		filter="3" serial="1" companyprefixlength="8" outputlevel="BINARY"/>
		<output value="001100010101000001000000001010101110101000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="companyprefix" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SSCC-96" name="ValidCompanyPrefix-9" desc="Validate CompanyPrefix length">
		<input value="008359240000000009" 
		filter="3" serial="1" companyprefixlength="9" outputlevel="BINARY"/>
		<output value="001100010100110001001111101110000100110100000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="companyprefix" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SSCC-96" name="ValidCompanyPrefix-10" desc="Validate CompanyPrefix length">
		<input value="008505830010000006" 
		filter="3" serial="1" companyprefixlength="10" outputlevel="BINARY"/>
		<output value="001100010100100000110010101100101101110111011001000000000000000000000000000000000000000000000000"/>
		<test-parameter name="companyprefix" status="PASSED" errorMsg=""/>
	</testcase>
	
	<!-- Test Serial Number -->
	<testcase type="SSCC-96" name="ValidMinSerial-6" desc="Validate minimum serial number value allowed">
		<input value="003800400000000009" 
		filter="2" companyprefixlength="6" outputlevel="BINARY"/>
		<output value="001100010101010000010111001100100010000000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="serial" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SSCC-96" name="ValidMaxSerial-6" desc="Validate maximum serial number value allowed">
		<input value="003800499999999999" 
		filter="2" serial="99999999999" companyprefixlength="6" outputlevel="BINARY"/>
		<output value="001100010101010000010111001100100100010000111011100110101100100111111111000000000000000000000000"/>
		<test-parameter name="serial" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SSCC-96" name="ValidMinSerial-7" desc="Validate minimum serial number value allowed">
		<input value="000737960000000008" 
		filter="2" serial="0" companyprefixlength="7" outputlevel="BINARY"/>
		<output value="001100010101010000000100100000010001000000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="serial" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SSCC-96" name="ValidMaxSerial-7" desc="Validate maximum serial number value allowed">
		<input value="000737969999999995" 
		filter="2" serial="9999999999" companyprefixlength="7" outputlevel="BINARY"/>
		<output value="001100010101010000000100100000010001000000111011100110101100100111111111000000000000000000000000"/>
		<test-parameter name="serial" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SSCC-64" name="ValidMinSerial-8" desc="Validate minimum serial number value allowed">
		<input value="008410580000000006" 
		filter="2" serial="0" companyprefixlength="8" outputlevel="BINARY"/>
		<output value="001100010101000001000000001010101110101000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="serial" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SSCC-64" name="ValidMaxSerial-8" desc="Validate maximum serial number value allowed">
		<input value="908410580999999995" 
		filter="2" serial="999999999" companyprefixlength="8" outputlevel="BINARY"/>
		<output value="001100010101000001000000001010101110101000111011100110101100100111111111000000000000000000000000"/>
		<test-parameter name="serial" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SSCC-64" name="ValidMinSerial-9" desc="Validate minimum serial number value allowed">
		<input value="008359240000000009" 
		filter="2" serial="0" companyprefixlength="9" outputlevel="BINARY"/>
		<output value="001100010100110001001111101110000100110100000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="serial" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SSCC-64" name="ValidMaxSerial-9" desc="Validate maximum serial number value allowed">
		<input value="908359240099999997" 
		filter="2" serial="99999999" companyprefixlength="9" outputlevel="BINARY"/>
		<output value="001100010100110001001111101110000100110100000101111101011110000011111111000000000000000000000000"/>
		<test-parameter name="serial" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SSCC-64" name="ValidMinSerial-10" desc="Validate minimum serial number value allowed">
		<input value="008505830010000006" 
		filter="2" serial="0" companyprefixlength="10" outputlevel="BINARY"/>
		<output value="001100010100100000110010101100101101110111011001000000000000000000000000000000000000000000000000"/>
		<test-parameter name="serial" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SSCC-64" name="ValidMaxSerial-10" desc="Validate maximum serial number value allowed">
		<input value="908505830019999991" 
		filter="2" serial="9999999" companyprefixlength="10" outputlevel="BINARY"/>
		<output value="001100010100100000110010101100101101110111011001100110001001011001111111000000000000000000000000"/>
		<test-parameter name="serial" status="PASSED" errorMsg=""/>
	</testcase>
		
	<!-- Invalid Test Scenarios -->
	<testcase type="SSCC-96" name="InvalidSchemeType" desc="Validate if the header corresponds to a defined coding scheme"">
		<input value="111111110101010000000100100000010001000000111011100110101100100111111111000000000000000000000000" 
		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="SSCC-96" name="InvalidMinCompanyPrefixLength" desc="Validate min. company prefix length">
		<input value="000737960024379162" 
		filter="2"  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="SSCC-96" name="InvalidMaxCompanyPrefixLength" desc="Validate max. company prefix length">
		<input value="000737960024379162" 
		filter="2"  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="SSCC-96" name="InvalidLength" desc="Validate if the length is valid">
		<input value="0000737960024379162" 
		filter="" outputlevel="LEGACY"/>
		<output value="" />
		<test-parameter name="length" status="FAILED" errorMsg="Invalid GTIN value. Cannot be greater than 18 digits long"/>
	</testcase>
	<testcase type="SSCC-96" name="InvalidMinSerial" desc="Validate minimum serial number value allowed">
		<input value="000737960024379162" 
		filter="2" serial="-1" companyprefixlength="7" outputlevel="BINARY"/>
		<output value=""/>
		<test-parameter name="serial" status="FAILED" errorMsg="Minimum serial number value cannot be less than 0"/>
	</testcase>
	<testcase type="SSCC-96" name="InvalidFilter" desc="Validate filter value">
		<input value="000737960024379162" 
		filter="8"  companyprefixlength="7" outputlevel="BINARY"/>
		<output value=""/>
		<test-parameter name="filter" status="FAILED" errorMsg="Filter value cannot be greater than 7"/>
	</testcase>
</testcases>