Blame tests/op/verifyCC.t

Packit 284210
### Empty
Packit 284210
# empty w/re not matching empty
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => "\d+",
Packit 284210
	input => "",
Packit 284210
	ret => 0,
Packit 284210
},
Packit 284210
# empty w/re matching empty
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '\d*',
Packit 284210
	input => "",
Packit 284210
	ret => 0,
Packit 284210
},
Packit 284210
Packit 284210
### Non-matching
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "TestCase",
Packit 284210
	ret => 0,
Packit 284210
},
Packit 284210
Packit 284210
### No digits in match
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => 'TestCase',
Packit 284210
	input => "TestCase",
Packit 284210
	ret => 0,
Packit 284210
},
Packit 284210
Packit 284210
### Too generic RE w/no matchs (Luhn will be called until all fail)
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '.*',
Packit 284210
	input => "TestCase",
Packit 284210
	ret => 0,
Packit 284210
},
Packit 284210
Packit 284210
### Test Good CC#
Packit 284210
# Mastercard
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "5484605089158216",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "5574407071707154",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "5351341509714210",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "5585166974020647",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "5492180332479256",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "5111178142162816",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "5511424748431031",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "5259964281562326",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "5138342589974385",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "5362069587634979",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
# VISA 16 digit
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "4916545704601136",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "4539501231827691",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "4556338049595394",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "4929326438756024",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "4485432027326322",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "4532104980682081",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "4485974616349298",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "4916580487207199",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "4532009746910413",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "4024007144622932",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
# VISA 13 digit
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "4556324125126",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "4067482954141",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "4532402654980",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "4539709679875",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "4024007182237",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
# American Express
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "343918934573386",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "344881778330710",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "345439478558905",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "346465614421111",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "372263817755618",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
# Discover
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "6011402777433576",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "6011890045362751",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "6011439091242416",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
# Diners Club
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "30162519308318",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "30311556856867",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "36850112043985",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
# enRoute
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "201427829075664",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "201434726660424",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "201453368666085",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
# JCB 15 digit
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "210091499965007",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "210072739882947",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "180013970064072",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
# JCB 16 digit
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "3096676276259096",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "3158726040010070",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "3096531217494742",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
# Voyager
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "869974262335041",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "869905005856398",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "869950500085465",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
Packit 284210
### Test Bad CC#
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d+)(?:[^\d]|$)',
Packit 284210
	input => "1234567890012345",
Packit 284210
	ret => 0,
Packit 284210
},
Packit 284210
Packit 284210
### Test regex + Luhn
Packit 284210
# from http://www.merriampark.com/anatomycc.htm
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d{4}\-?\d{4}\-?\d{2}\-?\d{2}\-?\d{1,4})(?:[^\d]|$)',
Packit 284210
	input => "4417123456789113",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d{4}\-?\d{4}\-?\d{2}\-?\d{2}\-?\d{1,4})(?:[^\d]|$)',
Packit 284210
	input => "4408041234567893",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d{4}\-?\d{4}\-?\d{2}\-?\d{2}\-?\d{1,4})(?:[^\d]|$)',
Packit 284210
	input => "4408041234567890",
Packit 284210
	ret => 0,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d{4}\-?\d{4}\-?\d{2}\-?\d{2}\-?\d{1,4})(?:[^\d]|$)',
Packit 284210
	input => "4417123456789112",
Packit 284210
	ret => 0,
Packit 284210
},
Packit 284210
# on word boundary
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d{4}\-?\d{4}\-?\d{2}\-?\d{2}\-?\d{1,4})(?:[^\d]|$)',
Packit 284210
	input => "a5484605089158216",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d{4}\-?\d{4}\-?\d{2}\-?\d{2}\-?\d{1,4})(?:[^\d]|$)',
Packit 284210
	input => "a5484605089158216b",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d{4}\-?\d{4}\-?\d{2}\-?\d{2}\-?\d{1,4})(?:[^\d]|$)',
Packit 284210
	input => "5484605089158216b",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
# valid patterns
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d{4}\-?\d{4}\-?\d{2}\-?\d{2}\-?\d{1,4})(?:[^\d]|$)',
Packit 284210
	input => "5484-6050-8915-8216",
Packit 284210
	ret => 1,
Packit 284210
},
Packit 284210
# changed digit from table above
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d{4}\-?\d{4}\-?\d{2}\-?\d{2}\-?\d{1,4})(?:[^\d]|$)',
Packit 284210
	input => "5484605089158217",
Packit 284210
	ret => 0,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d{4}\-?\d{4}\-?\d{2}\-?\d{2}\-?\d{1,4})(?:[^\d]|$)',
Packit 284210
	input => "5574407071807154",
Packit 284210
	ret => 0,
Packit 284210
},
Packit 284210
# wrong patterns
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d{4}\-?\d{4}\-?\d{2}\-?\d{2}\-?\d{1,4})(?:[^\d]|$)',
Packit 284210
	input => "5-484-6050-8915-8216",
Packit 284210
	ret => 0,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d{4}\-?\d{4}\-?\d{2}\-?\d{2}\-?\d{1,4})(?:[^\d]|$)',
Packit 284210
	input => "5484 6050 8915 8216",
Packit 284210
	ret => 0,
Packit 284210
},
Packit 284210
# not on digits boundary
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d{4}\-?\d{4}\-?\d{2}\-?\d{2}\-?\d{1,4})(?:[^\d]|$)',
Packit 284210
	input => "15484605089158216",
Packit 284210
	ret => 0,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d{4}\-?\d{4}\-?\d{2}\-?\d{2}\-?\d{1,4})(?:[^\d]|$)',
Packit 284210
	input => "154846050891582162",
Packit 284210
	ret => 0,
Packit 284210
},
Packit 284210
{
Packit 284210
	type => "op",
Packit 284210
	name => "verifyCC",
Packit 284210
	param => '(?:^|[^\d])(\d{4}\-?\d{4}\-?\d{2}\-?\d{2}\-?\d{1,4})(?:[^\d]|$)',
Packit 284210
	input => "54846050891582162",
Packit 284210
	ret => 0,
Packit 284210
},