Skip to content

Commit 996c91d

Browse files
committed
fix: bugs
1 parent f5c7f8a commit 996c91d

File tree

2 files changed

+19
-9
lines changed

2 files changed

+19
-9
lines changed

ogrn/models.go

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -80,15 +80,21 @@ type serialNumbers struct {
8080
}
8181

8282
func (sn serialNumbers) IsValid() bool {
83-
return false
83+
maxL := 0
84+
for i := 0; i < sn.len; i++ {
85+
maxL = maxL*10 + 9
86+
}
87+
return sn.val >= 0 && sn.val <= maxL
8488
}
8589

8690
func (sn serialNumbers) String() string {
8791
return utils.StrCode(sn.val, sn.len)
8892
}
8993

9094
func (sn serialNumbers) Ints() []int {
91-
return nil
95+
res := make([]int, sn.len)
96+
utils.FillSlice(utils.CodeToInts(int(sn.val)), res, sn.len-1)
97+
return res
9298
}
9399

94100
type checkSum int
@@ -126,9 +132,9 @@ func GenerateYearsNumbers() YearsNumbers {
126132
}
127133

128134
func GenerateSerialNumbers(ogrnType OGRNType) serialNumbers {
129-
n := legalLength
135+
n := legalCodeLength
130136
if ogrnType == Physical {
131-
n = physicalLength
137+
n = physicalCodeLength
132138
}
133139

134140
return serialNumbers{
@@ -271,7 +277,8 @@ func (o *OGRNStruct) makeSliceInts() []int {
271277

272278
utils.FillSlice(o.yearsNumbers.Ints(), res, 2)
273279
utils.FillSlice(o.region.Ints(), res, 4)
274-
utils.FillSlice(o.serialNumbers.Ints(), res, n-1)
280+
fmt.Println("fillSlice", o.serialNumbers.Ints(), res)
281+
utils.FillSlice(o.serialNumbers.Ints(), res, n-2)
275282

276283
return res
277284
}

ogrn/ogrn_test.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package ogrn
22

33
import (
4-
"errors"
54
"fmt"
65
"testing"
76

@@ -81,12 +80,16 @@ func TestValidate(t *testing.T) {
8180
},
8281
}
8382

84-
for _, tc := range testCases {
83+
for i, tc := range testCases {
8584
tc := tc
8685

8786
isValid, err := Validate(tc.Code)
88-
assert.Equal(t, tc.IsValid, isValid, tc.Code, tc.IsValid)
89-
assert.Equal(t, true, errors.Is(tc.Error, err), tc.Code)
87+
assert.Equal(t, tc.IsValid, isValid, tc.Code)
88+
if err != nil {
89+
assert.ErrorAs(t, err, &tc.Error, fmt.Sprintf("invalid test case %d: input: %s", i, tc.Code))
90+
} else {
91+
assert.Empty(t, err, fmt.Sprintf("invalid test case %d: input: %s", i, tc.Code))
92+
}
9093
}
9194
})
9295
}

0 commit comments

Comments
 (0)