Różnice między wybraną wersją a wersją aktualną.
Both sides previous revision Poprzednia wersja Nowa wersja | Poprzednia wersja | ||
pakietassert [2015/07/01 15:18] t.zoltak [Testowanie złożonych typów] |
pakietassert [2015/07/01 15:33] t.zoltak [Przewodnik po funkcjach pakietu assertive] |
||
---|---|---|---|
Linia 1: | Linia 1: | ||
======Przewodnik po funkcjach pakietu assertive====== | ======Przewodnik po funkcjach pakietu assertive====== | ||
+ | Warto zapoznać się z winietkami od pakietu, autorstwa Richarda Cottona: | ||
+ | |||
+ | * [[http://cran.at.r-project.org/web/packages/assertive/vignettes/introduction.html|Introduction]]. | ||
+ | * [[http://cran.at.r-project.org/web/packages/assertive/vignettes/checking_function_inputs.html|Checking function inputs]]. | ||
+ | * [[http://cran.at.r-project.org/web/packages/assertive/vignettes/checklists.html|Checklists of checks]] | ||
=====Typy funkcji===== | =====Typy funkcji===== | ||
Linia 76: | Linia 81: | ||
Jeśli to czytasz, zapoznaj się z funkcją **is_if_conditon()**! | Jeśli to czytasz, zapoznaj się z funkcją **is_if_conditon()**! | ||
+ | |||
+ | **Uwaga:** Wszystkim opisanym poniżej funkcjom, z wyjątkiem [assert_]is_if_condition(), nie przeszkadza, jeśli obiekty zawierają pojedynczy brak danych (NA, lub wartości o podobnym znaczeniu: NaN, Inf, -Inf). Jeśli takiego przypadku nie dopuszczamy, należy go oddzielnie obsłużyć. | ||
^//dopełnienie// ^ is, are ^ assert_is ^ assert_all_are ^ assert_any_are | | ^//dopełnienie// ^ is, are ^ assert_is ^ assert_all_are ^ assert_any_are | | ||
Linia 276: | Linia 283: | ||
* Uwagi: | * Uwagi: | ||
* **Jeśli przekazywany obiekt jest listą**, to zostanie zwrócony jej pierwszy element, czym by nie był. Także o wyświetleniu lub nie ostrzeżenia decyduje długość samej listy (a nie struktura jej elementów). | * **Jeśli przekazywany obiekt jest listą**, to zostanie zwrócony jej pierwszy element, czym by nie był. Także o wyświetleniu lub nie ostrzeżenia decyduje długość samej listy (a nie struktura jej elementów). | ||
- | =====Argumenty, które powinny być jednoelementowe===== | + | * **DIM()**: |
- | + | * Funkcja zwraca liczbę wymiarów lub długość (jeśli obiekt nie ma wymiarów). | |
- | **Uwaga:** Wszystkim opisanym poniżej funkcjom nie przeszkadza, jeśli obiekty zawierają pojedynczy brak danych (NA, lub wartości o podobnym znaczeniu: NaN, Inf, -Inf). Jeśli takiego przypadku nie dopuszczamy, należy go oddzielnie obsłużyć. | + | * **n_elements()**: |
- | + | * Funkcja zwraca liczbę „atomowych” elementów obiektu (np. w przypadku macierzy - liczba komórek, w przypadku listy - długość wektora powstającego przez wywołanie na liście unlist()). | |
- | * **use_first()**: | + | * **coerce_to()**: |
- | * Funkcja zwraca pierwszy element obiektu, a jeśli miał ich więcej, dodatkowo pluje ostrzeżeniem. | + | * Funkcja przeprowadza rzutowanie typów (w sposób nieco bardziej bezpieczny niż funkcje rodziny as.[...]). |
- | * Uwagi: | + | |
- | * **Jeśli przekazywany obiekt jest listą**, to zostanie zwrócony jej pierwszy element, czym by nie był. Także o wyświetleniu lub nie ostrzeżenia decyduje długość samej listy (a nie struktura jej elementów). | + | |
- | * **is_scalar()**: | + | |
- | * Sprawdza, czy obiekt jest skalarem (tj. długości jeden). | + | |
- | * Funkcje **[assert_]is_a[n]_[...]**: | + | |
- | * Funkcje testują, czy obiekt jest danego typu i **jednocześnie** jest skalarem (tj. długości jeden). | + | |
- | * Funkcje 'is_a_[...]' zwracają, czy warunki są spełnione. | + | |
- | * Funkcje 'assert_is_a_[...]' zwracają błędy, jeśli warunki nie są spełnione. | + | |
- | * Typy, które można testować obejmują: | + | |
- | * [assert_]is_a_bool - typ //logical//. | + | |
- | * [assert_]is_an_empty_string - pusty ciąg znaków (''). | + | |
- | * [assert_]is_a_complex - typ //complex// (np. //1i//). | + | |
- | * [assert_]is_an_integer - typ //integer//. | + | |
- | * [assert_]is_a_non_empty_string - niepusty ciąg znaków | + | |
- | * [assert_]is_a_number - typ //numeric// (//integer// lub //double//). | + | |
- | * [assert_]is_a_raw - typ //raw// (takie dziwne coś, p. //?raw//). | + | |
- | * [assert_]is_a_string - ciąg znaków. | + | |