Regex validate PIN code

ATM machines allow 4 or 6 digit PIN codes and PIN codes cannot contain anything but exactly 4 digits or exactly 6 digits.

If the function is passed a valid PIN string, return true, else return false.

Examples (Input –> Output)

"1234" --> true
"12345" --> false
"a234" --> false
"1234"   -->  true
"12345"  -->  false
"a234"   -->  false
"1234" --> true "12345" --> false "a234" --> false

Enter fullscreen mode Exit fullscreen mode

Sample Tests

import codewars_test as test
from solution import validate_pin
@test.describe("Fixed Tests")
def fixed_tests():
@test.it("should return False for pins with length other than 4 or 6")
def basic_test_cases():
test.assert_equals(validate_pin("1"),False, "Wrong output for '1'")
test.assert_equals(validate_pin("12"),False, "Wrong output for '12'")
test.assert_equals(validate_pin("123"),False, "Wrong output for '123'")
test.assert_equals(validate_pin("12345"),False, "Wrong output for '12345'")
test.assert_equals(validate_pin("1234567"),False, "Wrong output for '1234567'")
test.assert_equals(validate_pin("-1234"),False, "Wrong output for '-1234'")
test.assert_equals(validate_pin("-12345"),False, "Wrong output for '-12345'")
test.assert_equals(validate_pin("1.234"),False, "Wrong output for '1.234'")
test.assert_equals(validate_pin("00000000"),False, "Wrong output for '00000000'")
@test.it("should return False for pins which contain characters other than digits")
def _():
test.assert_equals(validate_pin("a234"),False, "Wrong output for 'a234'")
test.assert_equals(validate_pin(".234"),False, "Wrong output for '.234'")
@test.it("should return True for valid pins")
def _():
test.assert_equals(validate_pin("1234"),True, "Wrong output for '1234'")
test.assert_equals(validate_pin("0000"),True, "Wrong output for '0000'")
test.assert_equals(validate_pin("1111"),True, "Wrong output for '1111'")
test.assert_equals(validate_pin("123456"),True, "Wrong output for '123456'")
test.assert_equals(validate_pin("098765"),True, "Wrong output for '098765'")
test.assert_equals(validate_pin("000000"),True, "Wrong output for '000000'")
test.assert_equals(validate_pin("123456"),True, "Wrong output for '123456'")
test.assert_equals(validate_pin("090909"),True, "Wrong output for '090909'")
import codewars_test as test
from solution import validate_pin

@test.describe("Fixed Tests")
def fixed_tests():
    @test.it("should return False for pins with length other than 4 or 6")
    def basic_test_cases():    
        test.assert_equals(validate_pin("1"),False, "Wrong output for '1'")
        test.assert_equals(validate_pin("12"),False, "Wrong output for '12'")
        test.assert_equals(validate_pin("123"),False, "Wrong output for '123'")
        test.assert_equals(validate_pin("12345"),False, "Wrong output for '12345'")
        test.assert_equals(validate_pin("1234567"),False, "Wrong output for '1234567'")
        test.assert_equals(validate_pin("-1234"),False, "Wrong output for '-1234'")
        test.assert_equals(validate_pin("-12345"),False, "Wrong output for '-12345'")
        test.assert_equals(validate_pin("1.234"),False, "Wrong output for '1.234'")
        test.assert_equals(validate_pin("00000000"),False, "Wrong output for '00000000'")

    @test.it("should return False for pins which contain characters other than digits")
    def _():
        test.assert_equals(validate_pin("a234"),False, "Wrong output for 'a234'")
        test.assert_equals(validate_pin(".234"),False, "Wrong output for '.234'")

    @test.it("should return True for valid pins")
    def _():
        test.assert_equals(validate_pin("1234"),True, "Wrong output for '1234'")
        test.assert_equals(validate_pin("0000"),True, "Wrong output for '0000'")
        test.assert_equals(validate_pin("1111"),True, "Wrong output for '1111'")
        test.assert_equals(validate_pin("123456"),True, "Wrong output for '123456'")
        test.assert_equals(validate_pin("098765"),True, "Wrong output for '098765'")
        test.assert_equals(validate_pin("000000"),True, "Wrong output for '000000'")
        test.assert_equals(validate_pin("123456"),True, "Wrong output for '123456'")
        test.assert_equals(validate_pin("090909"),True, "Wrong output for '090909'")
import codewars_test as test from solution import validate_pin @test.describe("Fixed Tests") def fixed_tests(): @test.it("should return False for pins with length other than 4 or 6") def basic_test_cases(): test.assert_equals(validate_pin("1"),False, "Wrong output for '1'") test.assert_equals(validate_pin("12"),False, "Wrong output for '12'") test.assert_equals(validate_pin("123"),False, "Wrong output for '123'") test.assert_equals(validate_pin("12345"),False, "Wrong output for '12345'") test.assert_equals(validate_pin("1234567"),False, "Wrong output for '1234567'") test.assert_equals(validate_pin("-1234"),False, "Wrong output for '-1234'") test.assert_equals(validate_pin("-12345"),False, "Wrong output for '-12345'") test.assert_equals(validate_pin("1.234"),False, "Wrong output for '1.234'") test.assert_equals(validate_pin("00000000"),False, "Wrong output for '00000000'") @test.it("should return False for pins which contain characters other than digits") def _(): test.assert_equals(validate_pin("a234"),False, "Wrong output for 'a234'") test.assert_equals(validate_pin(".234"),False, "Wrong output for '.234'") @test.it("should return True for valid pins") def _(): test.assert_equals(validate_pin("1234"),True, "Wrong output for '1234'") test.assert_equals(validate_pin("0000"),True, "Wrong output for '0000'") test.assert_equals(validate_pin("1111"),True, "Wrong output for '1111'") test.assert_equals(validate_pin("123456"),True, "Wrong output for '123456'") test.assert_equals(validate_pin("098765"),True, "Wrong output for '098765'") test.assert_equals(validate_pin("000000"),True, "Wrong output for '000000'") test.assert_equals(validate_pin("123456"),True, "Wrong output for '123456'") test.assert_equals(validate_pin("090909"),True, "Wrong output for '090909'")

Enter fullscreen mode Exit fullscreen mode

Solution- ###Python

def validate_pin(pin):
if(type(pin) != str or len(pin) not in [4, 6]):
return(False)
for c in pin:
if c not in "0123456789":
return(False)
return(True)
def validate_pin(pin):
    if(type(pin) != str or len(pin) not in [4, 6]):
        return(False)
    for c in pin:
        if c not in "0123456789":
            return(False)
    return(True)
def validate_pin(pin): if(type(pin) != str or len(pin) not in [4, 6]): return(False) for c in pin: if c not in "0123456789": return(False) return(True)

Enter fullscreen mode Exit fullscreen mode

原文链接:Regex validate PIN code

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
I am the luckiest person in the world.
我是世界上最幸运的人
评论 抢沙发

请登录后发表评论

    暂无评论内容