\chapter{Sprawdzenie poprawności programu} Całość powyższych rozważań teoretycznych byłaby zupełnie niepotrzebna, jeżeli nie byłaby zgodna z ogólnie przyjętymi normami. Aby upewnić się, że nie popełniłem błędów w rozumieniu oraz we wdrażaniu (w postaci programu komputerowego) badanych metod oceny jakości oddawania barw, przeprowadziłem obszerną \section{Testy jednostkowe} Najprostsze opierają się na śledzeniu tak zwanych \textit{inwariantów}, czyli wielkości, które nie zależą od sposobu ich opisu. Najlepszym i najbardziej intuicyjnym przykładem jest barwa. Nieważne, w jakiej postaci przedstawione jest to wrażenie -- czy jako słowny opis, bądź zestaw współrzędnych w wybranej matematycznej przestrzeni -- doznanie jest dokładnie takie same. Czerwony jest czerwony niezależnie od tego, z jakiej abstrakcji skorzystamy do jego opisu. Dokładnie tej samej własności należy spodziewać się od współrzędnych chromatycznych. Przejścia pomiędzy przestrzeniami powinny zachowywać barwy i być idealnie odwracalne. Wszelkie naruszenia tej zasady muszą zatem być wynikiem błędu. Szeroko stosowaną metodologią programistyczną, stworzoną do detekcji tego typu błędów jest \textit{testowanie jednostkowe}, polegającą na wyodrębnieniu i zbadaniu prostych elementów programu. Testowanie rozpocząłem od sprawdzenia, czy zaprogramowane przeze mnie przejścia między przestrzeniami barw są rzeczywiście odwracalne oraz spójne ze sobą. W tym celu, dla kilkuset losowo wybranych współrzędnych w przestrzeni CIE 1931 $(X,Y,Z)$, sprawdzałem odwracalność przejść do wszystkich innych, wdrożonych przestrzeni. Sprawdzanie było zautomatyzowane i było przeprowadzane po każdej zmianie, aby zminimalizować ryzyko wprowadzenia błędu do kodu. W taki sam sposób upewniłem się, że napisany przeze mnie program poprawnie generował rozkłady promieniowania CDC i iluminantów serii D (o zadanej CCT) oraz wyznaczał temperaturę barwową. \section{Porównanie z literaturą} Niestety, wyżej opisane testy są w stanie wykryć jedynie niespójności w samym programie. Nie można w ten sposób dostrzec niezgodności ze standardami, wynikającymi, przykładowo, ze złego zrozumienia używanych metod. Aby zapobiec błędom tego rodzaju, należy własne wyniki porównać z opublikowanymi w odpowiednich standardach lub w szeroko przyjętej literaturze. Przykładowo, współczynnik CRI $R_a$ jest zdefiniowany w taki sposób, aby dla wzorca F4 przyjmował wartość 51, przy zaokrągleniu do najbliższej liczby całkowitej. W \cite{Rea2008} autorzy opublikowali wykresy widm emisyjnych ośmiu źródeł wraz z obliczoną CCT, współczynnikami $R_a$, GAI i FSCI. Za pomocą wolnego programu \textit{Plot Digitizer} \cite{plotdigitizer} odtworzyłem dane bezpośrednio z wykresów. Proces nie jest idealnie dokładny, należy więc spodziewać się niewielkich błędów w wynikach. Tabela \ref{tab:rea2008} porównuje obliczone przeze mnie wyniki z opublikowanymi. Nazwy lamp pochodzą od ich temperatur barwowych -- ,,cool white'' (zimna biel) i ''warm white'' (ciepła biel). \begin{table}[!htb] \centering \begin{tabular}{|l|rr|cr|cr|cr|} \hline \multirow{2}{*}{Lampa} & \multicolumn{2}{c|}{CCT [K]} & \multicolumn{2}{c|}{$R_a$} & \multicolumn{2}{c|}{GAI} & \multicolumn{2}{c|}{FSCI} \\ & pub. & wł. & pub. & wł. & pub. & wł. & pub. & wł. \\ \hline \input{rea2008.tex} \hline \end{tabular} \caption{Porównanie obliczonych parametrów źródeł, opublikowanych w \cite{Rea2008} (pub.) z obliczonymi przeze mnie (wł.).} \label{tab:rea2008} \end{table} \clearpage