diff --git a/lib/faker/default/vehicle.rb b/lib/faker/default/vehicle.rb index 46aa9c3c58..b444fc75db 100644 --- a/lib/faker/default/vehicle.rb +++ b/lib/faker/default/vehicle.rb @@ -8,7 +8,7 @@ class Vehicle < Base MILEAGE_MAX = 90_000 VIN_KEYSPACE = %w[A B C D E F G H J K L M N P R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9].freeze VIN_TRANSLITERATION = { A: 1, B: 2, C: 3, D: 4, E: 5, F: 6, G: 7, H: 8, J: 1, K: 2, L: 3, M: 4, N: 5, P: 7, R: 9, S: 2, T: 3, U: 4, V: 5, W: 6, X: 7, Y: 8, Z: 9 }.freeze - VIN_WEIGHT = [8, 7, 6, 5, 4, 3, 2, 10, 0, 9, 8, 7, 6, 5, 4, 3, 2].freeze + VIN_WEIGHT = [8, 7, 6, 5, 4, 3, 2, 1, 0, 9, 8, 7, 6, 5, 4, 3, 2].freeze VIN_REGEX = /\A[A-HJ-NPR-Z0-9]{17}\z/.freeze SG_CHECKSUM_WEIGHTS = [3, 14, 2, 12, 2, 11, 1].freeze SG_CHECKSUM_CHARS = 'AYUSPLJGDBZXTRMKHEC' diff --git a/test/faker/default/test_faker_vehicle.rb b/test/faker/default/test_faker_vehicle.rb index fcf1164241..2aa327254d 100644 --- a/test/faker/default/test_faker_vehicle.rb +++ b/test/faker/default/test_faker_vehicle.rb @@ -17,6 +17,9 @@ def test_vin_validity 100.times do assert valid_vin(@tester.vin) end + assert valid_vin('11111111111111111') # known valid test string + assert valid_vin('FAKERGEM5FAKERGEM') # valid checksum + refute valid_vin('ABCDEFG1234567890') # invalid checksum end def test_manufacture