<?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="SGTIN-198" name="ValidSchemeType" desc="Validate if the header corresponds to a defined coding scheme">
		<input value="001101100111010000000100100000010001000011110101000111101001100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" 
		filter="" outputlevel="LEGACY"/>
		<output value="20073796510026" serial="1"/>
		<test-parameter name="schemeType" status="PASSED" errorMsg=""/>
	</testcase>
	
	<!-- Test Output Levels -->
	<testcase type="SGTIN-198" name="ValidBinaryOutput" desc="Validate binary output format">
		<input value="20073796510026" 
		filter="3" serial="1" companyprefixlength="7" outputlevel="BINARY"/>
		<output value="001101100111010000000100100000010001000011110101000111101001100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="binary_encoding" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SGTIN-198" name="ValidTagURIOutput" desc="Validate tag URI output format">
		<input value="20073796510026" 
		filter="3" serial="1" companyprefixlength="7" outputlevel="TAG_ENCODING"/>
		<output value="urn:epc:tag:SGTIN-198:3.0073796.251002.1"/>
		<test-parameter name="taguri_encoding" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SGTIN-198" name="ValidPureIdentityOutput" desc="Validate pure identity output format">
		<input value="20073796510026" 
		filter="3" serial="1" companyprefixlength="7" outputlevel="PURE_IDENTITY"/>
		<output value="urn:epc:id:sgtin:0073796.251002.1"/>
		<test-parameter name="pureidentity_encoding" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SGTIN-198" name="ValidLength" desc="Validate if the length is valid">
		<input value="001100000111010000000100100000010001000011110101000111101000000000000000000000000000000000000001" 
		filter="3" serial="1" companyprefixlength="7" outputlevel="LEGACY"/>
		<output value="gtin=20073796510026;serial=1"/>
		<test-parameter name="length" status="PASSED" errorMsg=""/>
	</testcase>

	<!-- Test Filter Values -->
	<testcase type="SGTIN-198" name="ValidFilter-0" desc="Validate Filter Value">
		<input value="20073796510026" 
		filter="0" serial="1" companyprefixlength="7" outputlevel="BINARY"/>
		<output value="001101100001010000000100100000010001000011110101000111101001100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="filter" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SGTIN-198" name="ValidFilter-1" desc="Validate Filter Value">
		<input value="20073796510026" 
		filter="1" serial="1" companyprefixlength="7" outputlevel="BINARY"/>
		<output value="001101100011010000000100100000010001000011110101000111101001100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="filter" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SGTIN-198" name="ValidFilter-2" desc="Validate Filter Value">
		<input value="20073796510026" 
		filter="2" serial="1" companyprefixlength="7" outputlevel="BINARY"/>
		<output value="001101100101010000000100100000010001000011110101000111101001100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="filter" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SGTIN-198" name="ValidFilter-4" desc="Validate Filter Value">
		<input value="20073796510026" 
		filter="4" serial="1" companyprefixlength="7" outputlevel="BINARY"/>
		<output value="001101101001010000000100100000010001000011110101000111101001100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="filter" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SGTIN-198" name="ValidFilter-5" desc="Validate Filter Value">
		<input value="20073796510026" 
		filter="5" serial="1" companyprefixlength="7" outputlevel="BINARY"/>
		<output value="001101101011010000000100100000010001000011110101000111101001100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="filter" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SGTIN-198" name="ValidFilter-6" desc="Validate Filter Value">
		<input value="20073796510026" 
		filter="6" serial="1" companyprefixlength="7" outputlevel="BINARY"/>
		<output value="001101101101010000000100100000010001000011110101000111101001100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="filter" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SGTIN-198" name="ValidFilter-7" desc="Validate Filter Value">
		<input value="20073796510026" 
		filter="7" serial="1" companyprefixlength="7" outputlevel="BINARY"/>
		<output value="001101101111010000000100100000010001000011110101000111101001100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="filter" status="PASSED" errorMsg=""/>
	</testcase>

	<!-- Test CompanyPrefix Length -->
	<testcase type="SGTIN-198" name="ValidCompanyPrefix-6" desc="Validate CompanyPrefix">
		<input value="00380040000009" 
		filter="3" serial="1" companyprefixlength="6" outputlevel="BINARY"/>
		<output value="001101100111100000100101000111010000000000000000000000000001100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="companyprefix" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SGTIN-198" name="ValidCompanyPrefix-8" desc="Validate CompanyPrefix">
		<input value="00841058000006" 
		filter="3" serial="1" companyprefixlength="8" outputlevel="BINARY"/>
		<output value="001101100111000001000000001010101110101000000000000000000001100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="companyprefix" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SGTIN-198" name="ValidCompanyPrefix-9" desc="Validate CompanyPrefix">
		<input value="00835924000009" 
		filter="3" serial="1" companyprefixlength="9" outputlevel="BINARY"/>
		<output value="001101100110110001001111101110000100110100000000000000000001100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="companyprefix" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SGTIN-198" name="ValidCompanyPrefix-10" desc="Validate CompanyPrefix">
		<input value="00850583001006" 
		filter="3" serial="1" companyprefixlength="10" outputlevel="BINARY"/>
		<output value="001101100111010000110011111010100101110000000000000110010001100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="companyprefix" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SGTIN-198" name="ValidCompanyPrefix-12" desc="Validate CompanyPrefix">
		<input value="25790001265339" 
		filter="3" serial="1" companyprefixlength="12" outputlevel="BINARY"/>
		<output value="001101100110001000011011001111000110001100110001000101001001100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="companyprefix" status="PASSED" errorMsg=""/>
	</testcase>

	<!-- Test Item Reference -->
	<testcase type="SGTIN-198" name="ValidMinItemRef-6" desc="Validate Item Reference">
		<input value="00380040000009" 
		filter="3" serial="1" companyprefixlength="6" outputlevel="BINARY"/>
		<output value="001101100111100000100101000111010000000000000000000000000001100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="itemref" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SGTIN-198" name="ValidMaxItemRef-6" desc="Validate Item Reference">
		<input value="10380040485759" 
		filter="3" serial="1" companyprefixlength="6" outputlevel="BINARY"/>
		<output value="001101100111100000100101000111010000001111111111111111111101100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="itemref" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SGTIN-198" name="ValidMinItemRef-7" desc="Validate Item Reference">
		<input value="00073796000004" 
		filter="3" serial="1" companyprefixlength="7" outputlevel="BINARY"/>
		<output value="001101100111010000000100100000010001000000000000000000000001100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="itemref" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SGTIN-198" name="ValidMaxItemRef-7" desc="Validate Item Reference">
		<input value="90073796999998" 
		filter="3" serial="1" companyprefixlength="7" outputlevel="BINARY"/>
		<output value="001101100111010000000100100000010001001111010000100011111101100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="itemref" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SGTIN-198" name="ValidMinItemRef-8" desc="Validate Item Reference">
		<input value="00841058000006" 
		filter="3" serial="1" companyprefixlength="8" outputlevel="BINARY"/>
		<output value="001101100111000001000000001010101110101000000000000000000001100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="itemref" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SGTIN-198" name="ValidMaxItemRef-8" desc="Validate Item Reference">
		<input value="90841058099997" 
		filter="3" serial="1" companyprefixlength="8" outputlevel="BINARY"/>
		<output value="001101100111000001000000001010101110101001100001101001111101100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="itemref" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SGTIN-198" name="ValidMinItemRef-9" desc="Validate Item Reference">
		<input value="00835924000009" 
		filter="3" serial="1" companyprefixlength="9" outputlevel="BINARY"/>
		<output value="001101100110110001001111101110000100110100000000000000000001100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="itemref" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SGTIN-198" name="ValidMaxItemRef-9" desc="Validate Item Reference">
		<input value="90835924009999" 
		filter="3" serial="1" companyprefixlength="9" outputlevel="BINARY"/>
		<output value="001101100110110001001111101110000100110100001001110000111101100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="itemref" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SGTIN-198" name="ValidMinItemRef-10" desc="Validate Item Reference">
		<input value="00850583001006" 
		filter="3" serial="1" companyprefixlength="10" outputlevel="BINARY"/>
		<output value="001101100110100000110010101100101101110111011001000000000001100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="itemref" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SGTIN-198" name="ValidMaxItemRef-10" desc="Validate Item Reference">
		<input value="90850583001993" 
		filter="3" serial="1" companyprefixlength="10" outputlevel="BINARY"/>
		<output value="001101100110100000110010101100101101110111011001111110011101100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="itemref" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SGTIN-198" name="ValidMinItemRef-12" desc="Validate Item Reference">
		<input value="05790001265335" 
		filter="3" serial="1" companyprefixlength="12" outputlevel="BINARY"/>
		<output value="001101100110001000011011001111000110001100110001000101000001100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="itemref" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SGTIN-198" name="ValidMaxItemRef-12" desc="Validate Item Reference">
		<input value="95790001265338" 
		filter="3" serial="1" companyprefixlength="12" outputlevel="BINARY"/>
		<output value="001101100110001000011011001111000110001100110001000101100101100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="itemref" status="PASSED" errorMsg=""/>
	</testcase>

	<!-- Test Serial Number -->
	<testcase type="SGTIN-198" name="ValidSerial-1" desc="Validate serial number value">
		<input value="20073796510026" 
		filter="3" serial="1" companyprefixlength="7" outputlevel="BINARY"/>
		<output value="001101100111010000000100100000010001000011110101000111101001100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="serial" status="PASSED" errorMsg=""/>
	</testcase>
	<testcase type="SGTIN-198" name="ValidSerial-2" desc="Validate maximum serial number value">
		<input value="20073796510026" 
		filter="3" serial="A!0=?&'()*+-/:;<>a_-" companyprefixlength="7" outputlevel="BINARY"/>
		<output value="001101100111010000000100100000010001000011110101000111101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>
		<test-parameter name="serial" status="PASSED" errorMsg=""/>
	</testcase>
		
	<!-- Invalid Test Scenarios -->
	<testcase type="SGTIN-198" name="InvalidSchemeType" desc="Validate if the header corresponds to a defined coding scheme"">
		<input value="111111100111010000000100100000010001000011110101000111101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" 
		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="SGTIN-198" name="InvalidPartitionValue" 
			  desc="Validate if the partition value is within the range allowed for the coding scheme">
		<input value="111111100111110000000100100000010001000011110101000111101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" 
		filter="" outputlevel="LEGACY"/>
		<output value="" scheme="SGTIN-198"/>
		<test-parameter name="partitionValue" 
		status="FAILED" errorMsg="Partition value is greater than maximum value permitted in this coding scheme"/>
	</testcase>
	<testcase type="SGTIN-198" name="InvalidMinCompanyPrefixLength" desc="Validate min. company prefix length">
		<input value="20073796510026" 
		filter="3" serial="1" 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="SGTIN-198" name="InvalidMaxCompanyPrefixLength" desc="Validate max. company prefix length">
		<input value="20073796510026" 
		filter="3" serial="1" companyprefixlength="13" outputlevel="BINARY"/>
		<output value=""/>
		<test-parameter name="mincompanyprefixlength" status="FAILED" errorMsg="Company Prefix length cannot be greater than 12 digits"/>
	</testcase>
	<testcase type="SGTIN-198" name="InvalidLength" desc="Validate if the length is valid">
		<input value="20073796510026" 
		filter="" outputlevel="LEGACY"/>
		<output value="" />
		<test-parameter name="length" status="FAILED" errorMsg="Invalid GTIN value. Cannot be greater than 14 digits long"/>
	</testcase>
	<testcase type="SGTIN-198" name="InvalidSerial" desc="Validate serial number value allowed">
		<input value="20073796510026" 
		filter="3" serial="1#$" companyprefixlength="7" outputlevel="BINARY"/>
		<output value=""/>
		<test-parameter name="serial" status="FAILED" errorMsg="Invalid character in serial number value"/>
	</testcase>
	<testcase type="SGTIN-198" name="InvalidFilter" desc="Validate filter value">
		<input value="20073796510026" 
		filter="8" serial="1" companyprefixlength="7" outputlevel="BINARY"/>
		<output value=""/>
		<test-parameter name="filter" status="FAILED" errorMsg="Filter value cannot be greater than 7"/>
	</testcase>
</testcases>