Bu veri seti nedir?
TCKN ve VKN doğrulamasının kurallarını anlatan bir belge değil, çalıştırılabilir hâli. Her kayıt bir girdi dizgisi, beklenen geçerlilik sonucu ve beklenen hata kodlarından oluşur:
{
"input": "10000000146",
"valid": true,
"errors": [],
"note": "gecerli"
}Bir implementasyon bu dosyayı okuyup her vakayı çalıştırdığında, sözleşmeye uyup uymadığı tartışmaya yer bırakmadan ortaya çıkar.
Neden ortak bir veri seti?
Aynı algoritmanın 19 ayrı implementasyonu var. Her repo kendi testini kendi koduna göre yazarsa, hepsi kendi hatasıyla yeşil kalır — Go ile Python aynı numaraya farklı cevap verse kimse fark etmez.
Ortak veri seti soruyu tersine çevirir: artık “bu implementasyon doğru mu?” değil, “ortak sözleşmeye uyuyor mu?” diye sorulur.
İçinde ne var?
| Bölüm | Adet | İçerik |
|---|---|---|
tckn.cases | 22 | 7 geçerli, 15 geçersiz TCKN vakası |
vkn.cases | 17 | 7 geçerli, 10 geçersiz VKN vakası |
errorCodes | 5 | Standart hata kodları |
rules | 7 | Normalizasyon, hata sırası, checksum davranışı vb. |
Hata kodları ve değerlendirme sırası sabittir:
invalid_length → invalid_characters → invalid_first_digit
→ invalid_pattern → invalid_checksumSıra sözleşmenin parçasıdır: aynı girdi birden çok kuralı ihlal ediyorsa, hangi hatanın önce bildirileceği implementasyona bırakılmaz.
Nasıl kullanılır?
Dosyayı doğrudan indirin:
golden-dataset.json Depo ve şartname
CI'ınızda bütünlüğü sabitlemeniz önerilir — veri seti sürümlenir ve değişiklikler kasıtlıdır:
sha256sum -c <<< "e472cca15d825160877053da1e6e7078e8c1c18ef32fa25f5abb100bef217df9 golden-dataset.json"Hash eşleşmiyorsa dosya sizin beklediğiniz sürüm değildir; testleriniz sessizce başka bir sözleşmeye göre çalışır.
Sürümleme ve lisans
Sürümler spec-vX.Y.Z etiketiyle işaretlenir. Kırıcı değişiklik = mevcut bir vakanın beklenen sonucunun değişmesi ya da yeni hata kodu eklenmesi (major artışı). Ek vaka minor artışıdır.
Veri seti MIT lisanslıdır; ticari kullanım dahil serbesttir, ücretsizdir.