- 3konfiguroitua kalenteriavähittäiskauppa 4-5-4, vähittäiskauppa 4-4-5, gregoriaaninen
- 504testattua kalenterikonfiguraatiotajokainen vuosi 2000–2039
- 3error-tason tarkistusta oikealla datallajoka ajossa, ennen yhtään raporttia
- 10,4 %oikopolun keskimääräinen kuukausivirhetämä virhe poistuu
Yksi konfiguraatio
Jokainen kalenteri, jolla liiketoiminta raportoi, määritellään kerran tiedostossa config/calendars.toml. Sen muuttaminen on katselmoitava muutos, koska se muuttaa raportoituja jaksoja. Jokainen merkintä kertoo kuvion, viikon aloituspäivän ja sen, miten vuosi päättyy. Mikään kalenteriin liittyvä ei ole raportin sisällä.
Yksi konfiguraatiotiedosto määrittelee kolme kalenteria: retail_454, 4-5-4-kalenteri, jonka viikot alkavat sunnuntaina ja vuosi päättyy 31. tammikuuta lähimpään lauantaihin; retail_445, 4-4-5-kalenteri, jonka viikot alkavat maanantaina ja vuosi päättyy joulukuun viimeiseen sunnuntaihin; sekä gregorian, jonka viikot ovat ISO-standardin mukaisia ja alkavat maanantaina.
Päivämääristä jokaiseen kalenteriin
Generaattori kirjoittaa yhden rivin päivää ja kalenteria kohden. Viikot kootaan vähittäiskaupan jaksoiksi; kalenterikuukaudet muodostetaan pelkistä päivämääristä eikä koskaan viikoista. Faktoilla on päivämäärä, ne liitetään päivämäärärunkoon ja kootaan sen kalenterin kautta, jota kysymys edellyttää. Siksi yleiskatsaussivun oikopolku ei voi toteutua tässä: yksikään taulu ei kohdista kokonaista viikkoa kuukaudelle.
Gold-kalenteritaulut: calendar_date, jossa on yksi rivi päivää ja kalenteria kohden, calendar_week, calendar_period ja gregorian_month. Faktataulut liitetään päivämäärään, joten viikko-, jakso- ja kalenterikuukausiraportit koostavat kaikki samat päivittäiset faktat.
53. viikko
Kokonaisista viikoista koostuva vähittäiskaupan vuosi on 364 päivää, joten muutaman vuoden välein tarvitaan 53. viikko. Sen sijoitus muuttaa vuosivertailuja. Tässä se sijoitetaan yksiselitteisesti: se lisätään jaksoon 12 ja merkitään is_leap_week-lipulla, jotta raportti voi tietoisesti ottaa sen mukaan tai jättää sen pois. Kalenteritestit varmistavat, että 53 viikon vuodet toistuvat viiden tai kuuden vuoden välein jokaisessa konfiguraatiossa.
Kaksitoista vähittäiskaupan jaksoa noudattaa 4-5-4-kuviota 52 viikon ajan. 53 viikon vuonna ylimääräinen viikko lisätään jaksoon 12, joka pitenee 5 viikon mittaiseksi, ja viikko merkitään karkausviikoksi.
Tarkistetaan joka ajossa
Yksikkötestit varmistavat logiikan; nämä tarkistukset varmistavat datan. Ne ajetaan oikeille tapahtumille aina, kun kalenterivaihe ajetaan. Jokaisen vakavuustaso on error: epäonnistuminen pysäyttää dataputken ennen kuin mikään päätyy raporttiin, ja jokainen tulos kirjoitetaan tauluun ops.dq_results.
Kalenterivaihe generoi kalenteritaulut ja ajaa sitten oikealle datalle kolme error-tason tarkistusta: jokainen tapahtumapäivä vastaa täsmälleen yhtä kalenteripäivää, jokainen vähittäiskaupan viikko kuuluu täsmälleen yhteen jaksoon, ja summat säilyvät viikoittain ja jaksoittain jokaisessa konfiguroidussa kalenterissa. Vasta sitten taulut syöttävät raportteja.
- GenerointiKalenteritaulutTiedostosta config/calendars.toml, jokaiselle konfiguroidulle kalenterille.
- Tarkistus 1Jokainen tapahtumapäivä kohdistettuJokaisella päivällä, jolla on myyntiä, on täsmälleen yksi kalenteririvi.
- transaction_
dates_ mapped
errorpysäyttää ajon - transaction_
- Tarkistus 2Yksi jakso viikkoa kohdenYhtäkään vähittäiskaupan viikkoa ei jaeta jaksojen kesken.
- retail_
week_ in_ one_ period
errorpysäyttää ajon - retail_
- Tarkistus 3Summat säilyvätViikoittain ja jaksoittain laskettu summa on sama kuin päivittäin laskettu.
- totals_
conserved_ by_ week_ and_ period
errorpysäyttää ajon - totals_
- JulkaisuRaportitVain ajo, joka läpäisee jokaisen tarkistuksen, päätyy Gold-mart-tauluihin.
504 kalenteria, 40 vuotta
Kolme konfiguroitua kalenteria ovat vain ne, joita tämä liiketoiminta käyttää. Kalenterimoottori testataan jokaisella vähittäiskaupan kalenterilla, jonka se voi konfiguraatiosta riippuen tuottaa. Jokaisessa 504 konfiguraatiossa jokaisen vuoden 2000–2039 on seurattava edellistä ilman aukkoa tai päällekkäisyyttä, alettava konfiguroituna viikonpäivänä, kestettävä 364 tai 371 päivää ja päätyttävä vuoden päättymissäännön mukaiseen päivään, ja 53 viikon vuosien on toistuttava viiden tai kuuden vuoden välein. Jaksojen pituuksien on noudatettava kuviota, ja karkausviikko voi olla vain jaksossa 12. Sitä, että jokainen päivämäärä vastaa täsmälleen yhtä viikkoa ja jaksoa, testataan edustavalla joukolla kalentereita, ja se tarkistetaan oikealla datalla joka ajossa.
3 jaksokuviota kertaa 7 viikon aloituspäivää kertaa 2 vuoden päättymissääntöä kertaa 12 päättymiskuukautta on 504 vähittäiskaupan kalenterikonfiguraatiota, joiden vuodenvaihteet testataan jokaiselta vuodelta 2000–2039.