From ca32d00e3536a5fc97276f5e3d66b5d8c5c25203 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paulo=20Sima=CC=83o?= Date: Thu, 30 Sep 2021 17:18:47 -0300 Subject: [PATCH] Corrigido calculo DV --- cpf/lib.go | 15 ++++++++++++--- cpf/lib_test.go | 2 ++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/cpf/lib.go b/cpf/lib.go index c58828f..60ee8a6 100644 --- a/cpf/lib.go +++ b/cpf/lib.go @@ -39,8 +39,12 @@ func Check(s string) bool { d1 = d1 + (v * mul) mul-- } - mod1 := (d1 * 10) % 11 - + mod1 := (d1) % 11 + if mod1 < 2 { + mod1 = 0 + } else { + mod1 = 11 - mod1 + } d2 := 0 mul = 11 for _, v := range nums[0 : len(nums)-2] { @@ -49,6 +53,11 @@ func Check(s string) bool { } d2 = d2 + (mod1 * mul) - mod2 := (d2 * 10) % 11 + mod2 := (d2) % 11 + if mod2 < 2 { + mod2 = 0 + } else { + mod2 = 11 - mod2 + } return mod1 == nums[len(nums)-2] && mod2 == nums[len(nums)-1] } diff --git a/cpf/lib_test.go b/cpf/lib_test.go index aa0b4dc..5d2a008 100644 --- a/cpf/lib_test.go +++ b/cpf/lib_test.go @@ -15,6 +15,8 @@ func TestCheck(t *testing.T) { "377.100.400-46", "845.846.910-37", "845.846.910-17", + "39412818602", + "768.974.608-00", } { ret := Check(v) log.Printf("%s=>%v", v, ret)