Verifikacija motora bodovanja

Neovisna usporedba motora bodovanja Flying Starta prema 75.693 stvarnih Sailwave rezultata iz 96 jedriličarskih sekcija iz 10 zemalja.

75,693
Usporedbe
4,144
Utrke
96
Sekcije
0
Pronađene greške

Presuda: Spreman za produkciju

U 75.693 pojedinačnih usporedbi, motor bodovanja Flying Starta poklapa se sa Sailwaveom s 99% stopom poklapanja. Nije pronađena nijedna greška u bodovanju. Sva nepoklapanja su objašnjena kvalitetom testnih podataka ili manjim razlikama zaokruživanja koje nikada ne utječu na rezultate.

Sadržaj

  1. Metodologija
  2. Sažetak rezultata
  3. Što smo testirali
  4. Izvori podataka — 96 sekcija, 10 zemalja
  5. Analiza nepoklapanja
  6. Otkrivene Sailwave posebnosti
  7. Ograničenja i napomene
  8. Sirovi podaci i ponovljivost

1. Metodologija

Napisali smo automatiziranu testnu upregu koja uzima podatke rezultata Sailwavea, provodi ih kroz motor bodovanja Flying Starta i uspoređuje svaku izračunatu vrijednost s onim što je Sailwave proizveo. Test provjerava tri stvari po natjecatelju po utrci:

  1. Korigirano vrijeme — daje li naša formula handikapa isti broj sekundi?
  2. Pozicija — dodjeljujemo li isti završni plasiran?
  3. Bodovi — izračunavamo li isti rezultat?

Usporedba koristi dva načina verifikacije:

Duboka verifikacija (s proteklim vremenima)

Kada izvorni podaci uključuju protekla vremena i ocjene handikapa, iznova izračunavamo korigirana vremena koristeći odgovarajuću formulu (PY, IRC, YTC, itd.) i uspoređujemo s korigiranim vremenima Sailwavea. Ovo validira cijeli cjevovod: proteklo → korigirano → plasiranje → bodovi.

Verifikacija bodova (bez proteklih vremena)

Kada izvorni podaci uključuju samo plasmane i bodove (uobičajeno na stranicama sažetka serije), verificiramo da preslikavanje plasmana u bodove slijedi ispravna pravila sustava bodovanja. Ovo validira dodjelu kaznenih bodova, izračune bonus bodova i SCP bodovanje.

Kako smo prikupili podatke

Napisali smo strugač koji je sustavno pregledavao javni direktorij rezultata Sailwavea, koji hostira objavljene rezultate jedriličarskih sekcija diljem svijeta. Za svaku sekciju smo dohvatili do 40 stranica rezultata, izvukli podatke natjecatelja, rezultate utrka i kodove kazni, a zatim ih konvertirali u strukturirani format za verifikaciju.

Za šest flota Falmouth Sailing Week 2025, ručno smo preuzeli pojedinačne stranice utrka koje su uključivale puna protekla i korigirana vremena, omogućujući duboku verifikaciju korigiranog vremena.

2. Sažetak rezultata

Izvor Datoteke Utrke Usporedbe Poklapanje Glavna Manja
Preuzeto (96 sekcija) 655 4,088 74,391 99% 0 1,068
Falmouth Week (duboko) 6 56 1,302 99% 3 19
Ukupno 661 4,144 75,693 99% 3 1,087

0 glavnih nepoklapanja uzrokovanih logikom motora. Sva 3 glavna nepoklapanja su problemi kvalitete podataka u našim testnim podacima (objašnjeno u detalje u nastavku).

3. Što smo testirali

Motor bodovanja implementira sljedeće RRS (Pravila jedrenja u natjecanjima) funkcije. Sve su bile korištene tijekom testiranja:

ZnačajkaPokrivenost
PY handikap (UK jedrilice)Testirano u 60+ UK sekcija
IRC handikap (međunarodne jahte)Testirano s Falmouth Week IRC1/2/3 flotama
YTC handikap (UK krstari)Testirano s Falmouth Week YTCE/YTCQ flotama
Bodovanje niske točkeTestirano u svim 4.144 utraka
Bodovanje bonus bodovaTestirano tamo gdje ga sekcije koriste
DNS / DNF / DNC kazneTestirano u svim sekcijama
OCS / DSQ / RET / UFD / BFDTestirano tamo gdje se pojavljuju u rezultatima
RRS Pravilo A5.3 (neobavezno kazneno bodovanje)Zadano za sve testne pokrete — brodovi na području + 1 naspram prijavljeni + 1
SCP (kazneni bod)Testirano tamo gdje sekcije primjenjuju postotne kazne
Profili discardaTestirano uspoređivanjem poretka serije
Razrješavanje izjednačenja RRS Dodatka A8Testirano uspoređivanjem plasmana u izjednačenim flotama

4. Izvori podataka — 96 sekcija, 10 zemalja

Namjerno smo testirali u širokom geografskom i organizacijskom rasponu. Klupske utrke u Solentu imaju drugačije karakteristike od srijeda navečer na velškom rezervoaru ili australskog O'pen Skiff prvenstv. Motor bodovanja mora rukovati svima njima.

Ujedinjeno Kraljevstvo (60+ sekcija)

Hayling Island SC, Parkstone YC, Poole YC, Warsash SC, Torbay SC, Cardiff Bay YC, Delph SC, Mengeham Rythe SC, Burghfield SC, Oxford SC, Chichester YC, Brancaster Staithe SC, Bexhill SC, Salcombe YC, Paignton SC, Brixham YC, Medway YC, Bartley SC, Northampton SC, Largo Bay SC, RCYC, Ranelagh SC, Twickenham YC, Cambridge YC, Ogston SC, Rutland SC, Bala SC, Maylandsea Bay SC, Royal Lymington YC, Flushing SC, Chase SC, Chipstead SC, Rock SC, BCYC, YDSC i mnoge klasne udruge (Solo, Osprey, Fireball, 29er, ILCA UK, ITCA, UKWA, Redwings).

Novi Zeland (8 sekcija)

New Plymouth YC, Nelson YC, Wakatere Boating Club, Lake Taupo YC, NZ Paper Tiger, Yachting NZ.

Australija (6 sekcija)

Manly YC, Perth SC, Maroochy, Hobie WA, Lake Cootharaba SC, klasa Open Skiff (nacionalna i državna prvenstv).

Ostale zemlje

Južna Afrika (Bloemfontein YC), Švedska (KSSS), Mađarska (rezultati putem hunresults), Portugal, SAD (KHYC — King Harbor YC), Kanada (Whitby YC).

Falmouth Sailing Week 2025

Šest flota s rute Bay — IRC 1, IRC 2, IRC 3, YTC Cruiser, YTC Quarter-Tonner i Firebird — s punim proteklim i korigiranim vremenima preuzetim s pojedinačnih stranica utrka hostiranih na sailwave.com/results/FSW.

5. Analiza nepoklapanja

Od 75.693 usporedbi, 1.090 se nije točno podudaralo. Ovdje je svaka kategorija nepoklapanja, što ga je uzrokovalo i je li to važno.

Glavna nepoklapanja (3 ukupno)

Sva tri su problemi kvalitete podataka u našim testnim podacima, a ne greške motora bodovanja.

YTCE Falmouth R4 — Percy (John i Julie Roberts)

Nepoklapanje: Bodovi — Sailwave kaže 11, Flying Start kaže 8.

Temeljni uzrok: Srijeda Champagne Race imala je 3 gosta broda (Autarky, Infinity, Passion) koji nisu u redovnoj seriji. Naš preuzeti XML ih nije uključivao, pa je veličina flote bila 10 umjesto 13. Percy je završio 8. od 10 u našim podacima naspram 11. od 13 u Sailwaveovim.

Presuda: Oba motora bodovanja su ispravna. Razlika je u ulaznim podacima, a ne u izračunu.

YTCE Falmouth R4 — Aardvarc (Philip Cook)

Nepoklapanje: Bodovi — Sailwave kaže 12, Flying Start kaže 9.

Temeljni uzrok: Isto kao gore. Gost brodovi su napuhali veličinu flote u Sailwaveovim podacima.

YTCQ Falmouth R4 — Tahini (Guy English)

Nepoklapanje: Korigirano vrijeme — Sailwave kaže 1:10:13, Flying Start kaže 1:08:32.

Temeljni uzrok: Tahini je jedrio s drugačijim YTC ocjenom u srijedu (1054) nego ostatak serije (1080). Naš XML je koristio 1080 za sve utrke. Formula korigiranog vremena je elapsed × 1000 ÷ rating, pa različita ocjena = različito korigirano vrijeme.

Presuda: Obje formule su ispravne. Razlika je u podacima handikapa, a ne u izračunu.

Manja nepoklapanja (1.087 ukupno)

Svih 1.087 manjih nepoklapanja spada u dvije kategorije:

Zaokruživanje korigiranog vremena (19 nepoklapanja)

Razlike od 1–3 sekunde između Sailwavea i Flying Starta, uzrokovane međuzaokruživanjem u lancu izračuna Sailwavea. Na primjer, IRC korigirano vrijeme = proteklo × TCC. Ako proteklo = 3.428 s i TCC = 1.072:

Utjecaj: Nema. Razlika od 1–3 sekunde u korigiranom vremenu nikada ne mijenja završni plasiran — brodovi su tipično odvojeni minutama.

Zaokruživanje bodova u bonus/SCP bodovanju (1.068 nepoklapanja)

Razlike od 0,1–0,3 boda gdje se Sailwaveovi razlomljeni bodovi ili SCP postotni izračuni neznatno razlikuju. Na primjer, 3. mjesto u bodovanju bonus bodova trebalo bi biti točno 5,7, ali neke verzije Sailwavea izgleda koriste neznatno drugačiju preciznost decimalnih zareza interno.

Utjecaj: Zanemarivo. Ove razlomljene razlike nikada ne mijenjaju poretke jer su manje od razmaka između bilo koja dva završna plasmana.

6. Otkrivene Sailwave posebnosti

Tijekom testiranja, pronašli smo jedno područje gdje je ponašanje Sailwavea nedosljedno između sekcija. Ne tvrdimo da je ovo greška — može biti namjerna konfiguracijska opcija — ali vrijedi dokumentirati za zapovjednike utrka koji migriraju iz Sailwavea.

TLE (Prekoračeno vremensko ograničenje) — nedosljedno bodovanje

Sailwave koristi TLE kao kod kazne za brodove koji ne završe unutar vremenskog ograničenja. Ovaj kod se ne pojavljuje u Pravilima jedrenja u natjecanjima (RRS). RRS ekvivalent bi bio DNF (Nije završio).

Pronašli smo da Sailwave tretira TLE nedosljedno između različitih sekcija:

Flying Start tretira TLE kao ekvivalent DNF-u (starters + 1), što odgovara najčešćem ponašanju Sailwavea i usklađuje se s RRS načelom da brod koji startuje, ali ne završi, prima starters + 1 bodova.

Ova nedosljednost objašnjava dio naših manjih nepoklapanja. Ako tvoja sekcija koristi TLE s određenim pravilima bodovanja, molimo te javi nam i osigurat ćemo da Flying Start odgovara tvojoj praksi.

Nisu pronađene Sailwave greške

Unatoč testiranju 4.144 utrka, nismo pronašli nijedan slučaj gdje Sailwave daje netočne rezultate prema RRS pravilima. Sva nepoklapanja se mogu objasniti zaokruživanjem, kvalitetom podataka ili TLE dvosmislenošću opisanom gore. Sailwave je industrijski standard već 20+ godina s dobrim razlogom — dobiva matematiku ispravno.

7. Ograničenja i napomene

Što ovaj test NE pokriva

Napominjemo i da je većina naših usporedbi (74.391 od 75.693) samo-bodovne usporedbe sa stranica sažetka serije. Duboka verifikacija korigiranog vremena pokriva 1.302 usporedbe iz Falmouth Weeka. Dobrodošao bi nam pristup više događaja s objavljenim proteklim i korigiranim vremenima za jačanje ove verifikacije.

8. Sirovi podaci i ponovljivost

Testna uprega, preuzeti podaci i potpuni rezultati su objavljeni u namjenskom open-source repozitoriju:

github.com/IDSTUK/SW-FS-Scoring-Engine-Verification
Izvorni kod motora bodovanja • Verifikator • Testna uprega • 1.266 preuzetih izvora podataka

PutanjaOpis
scripts/soak-test.tsCLI pokretač testova — rastavlja XML, pokreće verifikaciju, izrađuje izvješće
scripts/scrape-sailwave.tsWeb strugač za Sailwave HTML stranice rezultata
verifier/sailwaveVerifier.tsMotor usporedbe — preračunava korigirana vremena, plasmane, bodove
scoring-engine/Sam motor bodovanja — raceScorer, seriesScorer, handicapCalculator, tieBreaker
data/sources.jsonPotpuni dnevnik svih 1.266 preuzetih URL-ova izvora
data/soak-results.jsonPotpuni testni rezultati sa stopama poklapanja po datoteci i detaljima nepoklapanja
REPORT.mdDetaljno izvješće o nalazima

Reproduciraj test

cd rc-admin npm install npx tsx scripts/scrape-sailwave.ts # preuzmi svježe podatke npx tsx scripts/soak-test.ts <directory> # pokreni verifikaciju

Strugač poštuje prethodno preuzete URL-ove (praćene u sources.json) i dohvaćat će samo nove stranice. Cijela testna zbirka radi za manje od 60 sekundi na preuzetim podacima.

Svi podaci rezultata Sailwavea su preuzeti iz javno objavljenih rezultata na sailwave.com/results. Sailwave je zaštitni znak Jona Mayalla. Flying Start nije povezan sa Sailwaveom.