Różnice między wybraną wersją a wersją aktualną.
Both sides previous revision Poprzednia wersja Nowa wersja | Poprzednia wersja | ||
pakietassert [2015/07/01 15:16] t.zoltak [Funkcje weryfikujące związane ze środowiskiem ('enviroment')] |
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 256: | Linia 263: | ||
|_period_for_decimal_point | ::: | ::: | ::: | ::: | | |_period_for_decimal_point | ::: | ::: | ::: | ::: | | ||
=====Funkcje weryfikujące związane z typem i możliwościami systemu===== | =====Funkcje weryfikujące związane z typem i możliwościami systemu===== | ||
- | =====Inne funkcje===== | ||
- | =====Argumenty, które powinny być jednoelementowe===== | ||
- | |||
- | **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ć. | ||
- | |||
- | * **use_first()**: | ||
- | * Funkcja zwraca pierwszy element obiektu, a jeśli miał ich więcej, dodatkowo pluje ostrzeżeniem. | ||
- | * 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. | ||
- | |||
- | ====Testowanie złożonych typów==== | ||
- | |||
- | ====Testowanie możliwości środowiska==== | ||
* Funkcje **[assert_]r_has_[...]_capabilities**. | * Funkcje **[assert_]r_has_[...]_capabilities**. | ||
Linia 298: | Linia 277: | ||
* [assert_]is_unix(); | * [assert_]is_unix(); | ||
* [assert_]is_windows(); | * [assert_]is_windows(); | ||
+ | =====Inne funkcje===== | ||
+ | |||
+ | * **use_first()**: | ||
+ | * Funkcja zwraca pierwszy element obiektu, a jeśli miał ich więcej, dodatkowo pluje ostrzeżeniem. | ||
+ | * 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). | ||
+ | * **DIM()**: | ||
+ | * Funkcja zwraca liczbę wymiarów lub długość (jeśli obiekt nie ma wymiarów). | ||
+ | * **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()). | ||
+ | * **coerce_to()**: | ||
+ | * Funkcja przeprowadza rzutowanie typów (w sposób nieco bardziej bezpieczny niż funkcje rodziny as.[...]). | ||
+ | |||
+ |