assertive.base/0000755000176200001440000000000013031315273013166 5ustar liggesusersassertive.base/po/0000755000176200001440000000000013021047322013600 5ustar liggesusersassertive.base/po/R-ua.po0000644000176200001440000000660513021047322014753 0ustar liggesusersmsgid "" msgstr "" "Project-Id-Version: assertive.base 0.0-2\n" "Report-Msgid-Bugs-To: https://bitbucket.org/richierocks/assertive.base\n" "POT-Creation-Date: 2015-08-27 14:40\n" "PO-Revision-Date: 2015-08-17 11:46+0800\n" "Last-Translator: Ivanka Skakun \n" "Language-Team: www.coupofy.com\n" "Language: ua\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" msgid "%s and %s are not identical." msgstr "%s і %s не є ідентичними." msgid "The values of %s are not all FALSE." msgstr "Значення %s не завжди ПОМИЛКОВІ." msgid "The values of %s are never FALSE." msgstr "Значення %s ніколи не є ПОМИЛКОВИМИ." msgid "The values of %s are not all NA." msgstr "Значення %s не всі NA." msgid "The values of %s are never NA." msgstr "Значення %s ніколи не є NA." msgid "The values of %s are not all TRUE." msgstr "Значення %s не всі ІСТИННІ." msgid "The values of %s are never TRUE." msgstr "Значення %s ніколи не є ІСТИННИМИ." msgid "The values of %s are sometimes FALSE." msgstr "Значення %s іноді є ПОМИЛКОВИМИ." msgid "The values of %s are all FALSE." msgstr "Значення %s всі ПОМИЛКОВІ." msgid "The values of %s are sometimes NA." msgstr "Значення %s іноді є NA." msgid "The values of %s are all NA." msgstr "Значення %s всі NA" msgid "The values of %s are sometimes TRUE." msgstr "Значення %s іноді ІСТИННІ." msgid "The values of %s are all TRUE." msgstr "Значення %s всі ВІРНІ." msgid "The length of value should be 1 or the length of x (%d) but is %d." msgstr "Довжина значення має дорівнювати 1 або довжині x (%d) але %d." msgid "(showing the first %d)" msgstr "(показувати перший %d)" msgid "You must provide a class." msgstr "Ви повинні показати клас." msgid "target_class should be a character vector." msgstr "target_class має бути вектором орієнтації знаку." msgid "Coercing %s to class %s." msgstr "Приведення %s до класу %s." msgid "%s cannot be coerced to type %s." msgstr "%s не можна перевести до типу %s." msgid "%s cannot be coerced to any of these types: %s." msgstr "%s не можна перевести до будь-якого з цих типів: %s." msgid "%s is not identical to FALSE." msgstr "%s не збігається з ПОМИЛКОЮ." msgid "%s is not identical to NA." msgstr "%s не збігається з NA." msgid "%s is not identical to TRUE." msgstr "%s не збігається з ВІРНИМ." msgid "Duplicated arguments:" msgstr "Дубльовані аргументи:" msgid "%s has length 0." msgstr "%s має довжину 0." msgid "Only the first value of %s (= %s) will be used." msgstr "Тільки перше значення %s (= %s) буде використане." msgid "There was %d failure%s:\n" msgid_plural "There were %d failures%s:\n" msgstr[0] "Тут %d помилка%s:\n" msgstr[1] "Тут %d помилок%s:\n" msgstr[2] "Тут %d помилок%s:\n" assertive.base/po/R-fr.po0000644000176200001440000000565513021047322014761 0ustar liggesusersmsgid "" msgstr "" "Project-Id-Version: assertive.base 0.0-2\n" "Report-Msgid-Bugs-To: https://bitbucket.org/richierocks/assertive.base\n" "POT-Creation-Date: 2015-08-16 11:17\n" "PO-Revision-Date: 2015-10-05 14:45+0300\n" "Last-Translator: Hisham Ben Hamidane \n" "Language-Team: LANGUAGE \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" msgid "%s and %s are not identical." msgstr "%s et %s ne sont pas identiques." msgid "The values of %s are not all FALSE." msgstr "Les valeurs de %s ne sont pas toutes FALSE." msgid "The values of %s are never FALSE." msgstr "Les valeurs de %s ne sont jamais FALSE" msgid "The values of %s are not all NA." msgstr "Les valeurs de %s ne sont pas toutes NA" msgid "The values of %s are never NA." msgstr "Les valeurs de %s ne sont jamais NA" msgid "The values of %s are not all TRUE." msgstr "Les valeurs de %s ne sont pas toutes TRUE" msgid "The values of %s are never TRUE." msgstr "Les valeurs de %s ne sont jamais TRUE" msgid "The values of %s are sometimes FALSE." msgstr "Les valeurs de %s sont parfois FALSE" msgid "The values of %s are all FALSE." msgstr "Les valeurs de %s sont toutes FALSE" msgid "The values of %s are sometimes NA." msgstr "Les valeurs de %s sont parfois NA" msgid "The values of %s are all NA." msgstr "Les valeurs de %s sont toutes NA" msgid "The values of %s are sometimes TRUE." msgstr "Les valeurs de %s sont parfois TRUE" msgid "The values of %s are all TRUE." msgstr "Les valeurs de %s sont toutes TRUE" msgid "The length of value should be 1 or the length of x (%d) but is %d." msgstr "La longueur de value doit être de 1 ou de la longueur de x (%d) et non de %d" msgid "(showing the first %d)" msgstr "(affichage des premiers %d)" msgid "You must provide a class." msgstr "Une classe doit être specifiée" msgid "target_class should be a character vector." msgstr "target_class doit etre un vecteur de caractères" msgid "Coercing %s to class %s." msgstr "Contrainte de %s en classe %s" msgid "%s cannot be coerced to type %s." msgstr "%s ne peut etre forcé en type %s" msgid "%s cannot be coerced to any of these types: %s." msgstr "%s ne peut etre forcé en aucun des types suivant: %s" msgid "%s is not identical to FALSE." msgstr "%s n'est pas identique à FALSE" msgid "%s is not identical to NA." msgstr "%s n'est pas identique à NA" msgid "%s is not identical to TRUE." msgstr "%s n'est pas identique à TRUE" msgid "Duplicated arguments:" msgstr "Arguments dupliqués:" msgid "%s has length 0." msgstr "%s a une longueur de 0" msgid "Only the first value of %s (= %s) will be used." msgstr "Seule la première valeur de %s (= %s) sera utilisée" msgid "There was %d failure%s:\n" msgid_plural "There were %d failures%s:\n" msgstr[0] "%d echec a été observé%s:\n" msgstr[1] "%d echecs ont été observés%s:\n" assertive.base/po/R-kr.po0000644000176200001440000000572113021047322014760 0ustar liggesusersmsgid "" msgstr "" "Project-Id-Version: assertive.base 0.0-2\n" "Report-Msgid-Bugs-To: https://bitbucket.org/richierocks/assertive.base\n" "POT-Creation-Date: 2015-08-11 13:37\n" "PO-Revision-Date: 2015-08-27 14:40+0300\n" "Last-Translator: Sunkyu Choi \n" "Language-Team: LANGUAGE \n" "Language: kr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" msgid "%s and %s are not identical." msgstr "%s 와 %s는 동일하지 않다." msgid "The values of %s are not all FALSE." msgstr "%s의 값들이 모두 FALSE는 아닙니다." msgid "The values of %s are never FALSE." msgstr "%s의 값들은 절대 FALSE가 아닙니다." msgid "The values of %s are not all NA." msgstr "%s의 값들이 모두 NA는 아닙니다." msgid "The values of %s are never NA." msgstr "%s의 값들은 절대 NA가 아닙니다." msgid "The values of %s are not all TRUE." msgstr "%s의 값들이 모두 TRUE는 아닙니다." msgid "The values of %s are never TRUE." msgstr "%s의 값들은 절대 TRUE가 아닙니다." msgid "The values of %s are sometimes FALSE." msgstr "%s의 값들은 가끔 FALSE 입니다." msgid "The values of %s are all FALSE." msgstr "%s의 값들은 FALSE 입니다." msgid "The values of %s are sometimes NA." msgstr "%s의 값들은 가끔 NA 입니다." msgid "The values of %s are all NA." msgstr "%s의 값들은 NA입니다." msgid "The values of %s are sometimes TRUE." msgstr "%s의 값들은 가끔 TRUE 입니다." msgid "The values of %s are all TRUE." msgstr "%s의 값들은 모두 TRUE 입니다." msgid "The length of value should be 1 or the length of x (%d) but is %d." msgstr "값의 길이는 1 이거나 그 길이의 x (%d)이지만 %d는 아니다." msgid "(showing the first %d)" msgstr "첫번째 %d 보기." msgid "You must provide a class." msgstr "당신은 클래스를 제공해야 합니다." msgid "target_class should be a character vector." msgstr "타켓 클래스는 캐릭터 벡터이어야 합니다." msgid "Coercing %s to class %s." msgstr "%s를 클래스 %s로 강요." msgid "%s cannot be coerced to type %s." msgstr "%s는 타입 %s로 강요 받을 수 없습니다." msgid "%s cannot be coerced to any of these types: %s." msgstr "%s는 다른 어떤 타입들로 강요 받을 수 없습니다: %s." msgid "%s is not identical to FALSE." msgstr "%s는 FALSE와 같지 않습니다." msgid "%s is not identical to NA." msgstr "%s는 NA와 같지 않습니다." msgid "%s is not identical to TRUE." msgstr "%s는 TRUE와 같지 않습니다." msgid "Duplicated arguments:" msgstr "이중 인수:" msgid "%s has length 0." msgstr "%s는 0 길이를 갖습니다." msgid "Only the first value of %s (= %s) will be used." msgstr "오직 첫번째 %s의 (= %s) 값만 사용 되어 질 것 입니다." msgid "There was %d failure%s:\n" msgid_plural "There were %d failures%s:\n" msgstr[0] "%d 실패 %s:\n" assertive.base/po/R-uk.po0000644000176200001440000000657113021047322014767 0ustar liggesusersmsgid "" msgstr "" "Project-Id-Version: assertive.base 0.0-2\n" "Report-Msgid-Bugs-To: https://bitbucket.org/richierocks/assertive.base\n" "POT-Creation-Date: 2015-08-27 14:40\n" "PO-Revision-Date: 2015-08-17 11:46+0800\n" "Last-Translator: Ivanka Skakun \n" "Language-Team: www.coupofy.com\n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" msgid "%s and %s are not identical." msgstr "%s і %s не є ідентичними." msgid "The values of %s are not all FALSE." msgstr "Значення %s не завжди ПОМИЛКОВІ." msgid "The values of %s are never FALSE." msgstr "Значення %s ніколи не є ПОМИЛКОВИМИ." msgid "The values of %s are not all NA." msgstr "Значення %s не всі NA." msgid "The values of %s are never NA." msgstr "Значення %s ніколи не є NA." msgid "The values of %s are not all TRUE." msgstr "Значення %s не всі ІСТИННІ." msgid "The values of %s are never TRUE." msgstr "Значення %s ніколи не є ІСТИННИМИ." msgid "The values of %s are sometimes FALSE." msgstr "Значення %s іноді є ПОМИЛКОВИМИ." msgid "The values of %s are all FALSE." msgstr "Значення %s всі ПОМИЛКОВІ." msgid "The values of %s are sometimes NA." msgstr "Значення %s іноді є NA." msgid "The values of %s are all NA." msgstr "Значення %s всі NA" msgid "The values of %s are sometimes TRUE." msgstr "Значення %s іноді ІСТИННІ." msgid "The values of %s are all TRUE." msgstr "Значення %s всі ВІРНІ." msgid "The length of value should be 1 or the length of x (%d) but is %d." msgstr "Довжина valueмає дорівнювати 1 або довжині x (%d) але %d." msgid "(showing the first %d)" msgstr "(показувати перший %d)" msgid "You must provide a class." msgstr "Ви повинні показати клас." msgid "target_class should be a character vector." msgstr "target_class має бути вектором орієнтації знаку." msgid "Coercing %s to class %s." msgstr "Приведення %s до класу %s." msgid "%s cannot be coerced to type %s." msgstr "%s не можна перевести до типу %s." msgid "%s cannot be coerced to any of these types: %s." msgstr "%s не можна перевести до будь-якого з цих типів: %s." msgid "%s is not identical to FALSE." msgstr "%s не збігається з ПОМИЛКОЮ." msgid "%s is not identical to NA." msgstr "%s не збігається з NA." msgid "%s is not identical to TRUE." msgstr "%s не збігається з ВІРНИМ." msgid "Duplicated arguments:" msgstr "Дубльовані аргументи:" msgid "%s has length 0." msgstr "%s має довжину 0." msgid "Only the first value of %s (= %s) will be used." msgstr "Тільки перше значення %s (= %s) буде використане." msgid "There was %d failure%s:\n" msgid_plural "There were %d failures%s:\n" msgstr[0] "Тут %d помилка%s:\n" msgstr[1] "Тут %d помилок%s:\n" msgstr[2] "Тут %d помилок%s:\n" assertive.base/po/R-el.po0000644000176200001440000000704313021047322014743 0ustar liggesusersmsgid "" msgstr "" "Project-Id-Version: assertive.base 0.0-2\n" "Report-Msgid-Bugs-To: https://bitbucket.org/richierocks/assertive.base\n" "POT-Creation-Date: 2015-08-11 13:37\n" "PO-Revision-Date: 2015-10-05 13:00+0300\n" "Last-Translator: Aspasia Chatziefthymiou \n" "Language-Team: LANGUAGE \n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgid "x and y are not identical." msgstr "Το x και το y δεν είναι ταυτόσημα." msgid "The values of x are not all FALSE." msgstr "Οι τιμές του x δεν είναι όλες FALSE." msgid "The values of x are never FALSE." msgstr "Οι τιμές του x δεν είναι ποτέ FALSE." msgid "The values of x are not all NA." msgstr "Οι τιμές του x δεν είναι όλες NA." msgid "The values of x are never NA." msgstr "Οι τιμές του x δεν είναι ποτέ NA." msgid "The values of x are not all TRUE." msgstr "Οι τιμές του x δεν είναι όλες TRUE." msgid "The values of x are never TRUE." msgstr "Οι τιμές του x δεν είναι ποτέ TRUE." msgid "The values of x are sometimes FALSE." msgstr "Οι τιμές του x είναι ενίοτε FALSE " msgid "The values of x are all FALSE." msgstr "Οι τιμές του x είναι όλες FALSE " msgid "The values of x are sometimes NA." msgstr "Οι τιμές του x είναι ενίοτε NA." msgid "The values of x are all NA." msgstr "Οι τιμές του x είναι όλες NA." msgid "The values of x are sometimes TRUE." msgstr "Οι τιμές του x είναι ενίοτε TRUE." msgid "The values of x are all TRUE." msgstr "Οι τιμές του x είναι όλες TRUE." msgid "The length of value should be 1 or the length of x (%d) but is %d." msgstr "Το εύρος της value πρέπει να είναι 1 ή το εύρος του x (%d) αλλά είναι %d." msgid "(showing the first %d)" msgstr "(εμφανίζονται τα πρώτα %d)" msgid "You must provide a class." msgstr "Πρέπει να παρέχετε μια κλάση." msgid "target_class should be a character vector." msgstr "target_class πρέπει να είναι ένα διάνυσμα χαρακτήρα." msgid "Coercing %s to class %s." msgstr "Εξαναγκάζοντας το %s στη κλάση %s." msgid "%s cannot be coerced to type %s." msgstr "%s δεν γίνεται να εξαναγκαστεί στον τύπο %s." msgid "%s cannot be coerced to any of these types: %s." msgstr "%s δεν γίνεται να εξαναγκαστεί σε κανένα από αυτούς τους τύπους: %s." msgid "%s is not identical to FALSE." msgstr "%s δεν είναι ταυτόσημο με το FALSE." msgid "%s is not identical to NA." msgstr "%s δεν είναι ταυτόσημο με το NA." msgid "%s is not identical to TRUE." msgstr "%s δεν είναι ταυτόσημο με το TRUE." msgid "Duplicated arguments:" msgstr "Διπλότυπο όρισμα:" msgid "%s has length 0." msgstr "%s έχει μέγεθος τιμής 0." msgid "Only the first value of %s (= %s) will be used." msgstr "Μόνο η πρώτη τιμή του %s (= %s) θα χρησιμοποιηθεί." msgid "There was %d failure%s:\n" msgid_plural "There were %d failures%s:\n" msgstr[0] "Υπήρξε %d αποτυχία:%s\n" msgstr[1] "Υπήρξαν %d αποτυχίες:%s\n" assertive.base/po/R-hu.po0000644000176200001440000000610013021047322014750 0ustar liggesusersmsgid "" msgstr "" "Project-Id-Version: assertive.base 0.0-2\n" "Report-Msgid-Bugs-To: https://bitbucket.org/richierocks/assertive.base\n" "POT-Creation-Date: 2015-08-11 13:37\n" "PO-Revision-Date: 2015-08-27 14:40+0300\n" "Last-Translator: Gergely Daróczi \n" "Language-Team: LANGUAGE \n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 1.8.4\n" msgid "%s and %s are not identical." msgstr "%s és %s nem azonos." msgid "The values of %s are not all FALSE." msgstr "A(z) %s értékei közül nem mind FALSE." msgid "The values of %s are never FALSE." msgstr "A(z) %s értékei közül egy sem FALSE." msgid "The values of %s are not all NA." msgstr "A(z) %s értékei közül nem mind NA." msgid "The values of %s are never NA." msgstr "A(z) %s értékei közül egy sem NA." msgid "The values of %s are not all TRUE." msgstr "A(z) %s értékei közül nem mind TRUE." msgid "The values of %s are never TRUE." msgstr "A(z) %s értékei közül egy sem TRUE." msgid "The values of %s are sometimes FALSE." msgstr "Néhány elem a(z) %s értékei közül FALSE." msgid "The values of %s are all FALSE." msgstr "A(z) %s értékei közül mind FALSE." msgid "The values of %s are sometimes NA." msgstr "Néhány elem a(z) %s értékei közül NA." msgid "The values of %s are all NA." msgstr "A(z) %s értékei közül mind NA." msgid "The values of %s are sometimes TRUE." msgstr "Néhány elem a(z) %s értékei közül TRUE." msgid "The values of %s are all TRUE." msgstr "A(z) %s értékei közül mind TRUE." msgid "The length of value should be 1 or the length of x (%d) but is %d." msgstr "" "A \"value\" paraméter hossza 1 vagy \"x\" hosszúságú (%d) kellene legyen %d " "helyett." msgid "(showing the first %d)" msgstr "(az első %d mutatása)" msgid "You must provide a class." msgstr "Hiányzik a \"class\" paraméter." msgid "target_class should be a character vector." msgstr "A \"target_class\" paraméter karakter vektort vár." msgid "Coercing %s to class %s." msgstr "(A)z %s %s osztályba sorolása." msgid "%s cannot be coerced to type %s." msgstr "(A)z %s objektum nem sorolható %s osztályba." msgid "%s cannot be coerced to any of these types: %s." msgstr "(A)z %s objektum nem sorolható egyik osztályba sem: %s." msgid "%s is not identical to FALSE." msgstr "A(z) %s nem FALSE." msgid "%s is not identical to NA." msgstr "A(z) %s nem NA." msgid "%s is not identical to TRUE." msgstr "A(z) %s nem TRUE." msgid "Duplicated arguments:" msgstr "Ismétlődő objektum név:" msgid "%s has length 0." msgstr "A(z) %s hossza 0." msgid "Only the first value of %s (= %s) will be used." msgstr "A(z) %s (= %s) elemei közül csak az első kerül kiértékelésre." msgid "There was %d failure%s:\n" msgid_plural "There were %d failures%s:\n" msgstr[0] "%d hiba fordult elő%s:\n" msgstr[1] "%d hiba fordult elő%s:\n" assertive.base/po/R-de.po0000644000176200001440000000560413021047322014734 0ustar liggesusersmsgid "" msgstr "" "Project-Id-Version: assertive.base 0.0-2\n" "Report-Msgid-Bugs-To: https://bitbucket.org/richierocks/assertive.base\n" "POT-Creation-Date: 2015-08-11 13:37\n" "PO-Revision-Date: 2015-10-05 14:45+0300\n" "Last-Translator: Anja Billing \n" "Language-Team: LANGUAGE \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgid "%s and %s are not identical." msgstr "%s und %s sind nicht identisch." msgid "The values of %s are not all FALSE." msgstr "Die Werte von %s sind nicht alle FALSE." msgid "The values of %s are never FALSE." msgstr "Die Werte von %s sind nie FALSE." msgid "The values of %s are not all NA." msgstr "Die Werte von %s sind nicht alle NA." msgid "The values of %s are never NA." msgstr "Die Werte von %s sind nie NA." msgid "The values of %s are not all TRUE." msgstr "Die Werte von %s sind nicht alle TRUE." msgid "The values of %s are never TRUE." msgstr "Die Werte von %s sind nie TRUE." msgid "The values of %s are sometimes FALSE." msgstr "Die Werte von %s sind manchmal FALSE." msgid "The values of %s are all FALSE." msgstr "Die Werte von %s sind alle FALSE." msgid "The values of %s are sometimes NA." msgstr "Die Werte von %s sind manchmal NA." msgid "The values of %s are all NA." msgstr "Die Werte von %s sind alle NA." msgid "The values of %s are sometimes TRUE." msgstr "Die Werte von %s sind manchmal TRUE." msgid "The values of %s are all TRUE." msgstr "Die Werte von %s sind alle TRUE." msgid "The length of value should be 1 or the length of x (%d) but is %d." msgstr "The Laenge des Wertes sollte 1 oder die Laenge von x (%d) sein ist aber %d." msgid "(showing the first %d)" msgstr "(zeigt die ersten %d)" msgid "You must provide a class." msgstr "Du musst eine Klasse angeben." msgid "target_class should be a character vector." msgstr "target_class sollte ein Charaktervektor sein." msgid "Coercing %s to class %s." msgstr "Zwingen von %s in Klasse %s." msgid "%s cannot be coerced to type %s." msgstr "%s kann nicht gezwungen werden in %s" msgid "%s cannot be coerced to any of these types: %s." msgstr "%s kann nicht gezwungen werden in keine dieser Typen: %s." msgid "%s is not identical to FALSE." msgstr "%s ist nicht identisch mit FALSE." msgid "%s is not identical to NA." msgstr "%s ist nicht identisch mit NA." msgid "%s is not identical to TRUE." msgstr "%s ist nicht identisch mit TRUE" msgid "Duplicated arguments:" msgstr "Duplizierte Argumente:" msgid "%s has length 0." msgstr "%s hat die Laenge 0." msgid "Only the first value of %s (= %s) will be used." msgstr "Nur der erste Wert von %s (= %s) wird verwendet." msgid "There was %d failure%s:\n" msgid_plural "There were %d failures%s:\n" msgstr[0] "Es ist ein %d Fehler aufgetreten%s:\n" msgstr[1] "Es sind %d Fehler aufgetreten%s:\n" assertive.base/po/R-assertive.base.pot0000644000176200001440000000356413021047322017451 0ustar liggesusersmsgid "" msgstr "" "Project-Id-Version: assertive.base 0.0-2\n" "Report-Msgid-Bugs-To: https://bitbucket.org/richierocks/assertive.base\n" "POT-Creation-Date: 2015-07-14 11:04\n" "PO-Revision-Date: 2015-08-27 14:40+0300\n" "Last-Translator: Richard Cotton \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" msgid "%s and %s are not identical." msgstr "" msgid "The values of %s are not all FALSE." msgstr "" msgid "The values of %s are never FALSE." msgstr "" msgid "The values of %s are not all NA." msgstr "" msgid "The values of %s are never NA." msgstr "" msgid "The values of %s are not all TRUE." msgstr "" msgid "The values of %s are never TRUE." msgstr "" msgid "The values of %s are sometimes FALSE." msgstr "" msgid "The values of %s are all FALSE." msgstr "" msgid "The values of %s are sometimes NA." msgstr "" msgid "The values of %s are all NA." msgstr "" msgid "The values of %s are sometimes TRUE." msgstr "" msgid "The values of %s are all TRUE." msgstr "" msgid "The length of value should be 1 or the length of x (%d) but is %d." msgstr "" msgid "(showing the first %d)" msgstr "" msgid "You must provide a class." msgstr "" msgid "target_class should be a character vector." msgstr "" msgid "Coercing %s to class %s." msgstr "" msgid "%s cannot be coerced to type %s." msgstr "" msgid "%s cannot be coerced to any of these types: %s." msgstr "" msgid "%s is not identical to FALSE." msgstr "" msgid "%s is not identical to NA." msgstr "" msgid "%s is not identical to TRUE." msgstr "" msgid "Duplicated arguments:" msgstr "" msgid "%s has length 0." msgstr "" msgid "Only the first value of %s (= %s) will be used." msgstr "" msgid "There was %d failure%s:\n" msgid_plural "There were %d failures%s:\n" msgstr[0] "" msgstr[1] "" assertive.base/po/R-tr.po0000644000176200001440000000542613021047322014773 0ustar liggesusersmsgid "" msgstr "" "Project-Id-Version: assertive.base 0.0-2\n" "Report-Msgid-Bugs-To: https://bitbucket.org/richierocks/assertive.base\n" "POT-Creation-Date: 2015-08-17 08:40\n" "PO-Revision-Date: 2015-10-05 14:45+0300\n" "Last-Translator: Mine Çetinkaya-Rundel \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: tr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" msgid "%s and %s are not identical." msgstr "%s ve %s aynı deǧil." msgid "The values of %s are not all FALSE." msgstr "%s deǧerlerinin hepsi FALSE deǧil." msgid "The values of %s are never FALSE." msgstr "%s deǧerlerinin hiç biri FALSE deǧil." msgid "The values of %s are not all NA." msgstr "%s deǧerlerinin hepsi NA deǧil." msgid "The values of %s are never NA." msgstr "%s deǧerlerinin hiç biri NA deǧil." msgid "The values of %s are not all TRUE." msgstr "%s deǧerlerinin hepsi TRUE deǧil." msgid "The values of %s are never TRUE." msgstr "%s deǧerlerinin hiç biri TRUE deǧil." msgid "The values of %s are sometimes FALSE." msgstr "%s deǧerleri bazen FALSE." msgid "The values of %s are all FALSE." msgstr "%s deǧerlerinin hepsi FALSE." msgid "The values of %s are sometimes NA." msgstr "%s deǧerleri bazen NA." msgid "The values of %s are all NA." msgstr "%s deǧerlerinin hepsi NA." msgid "The values of %s are sometimes TRUE." msgstr "%s deǧerleri bazen TRUE." msgid "The values of %s are all TRUE." msgstr "%s deǧerlerinin hepsi TRUE." msgid "The length of value should be 1 or the length of x (%d) but is %d." msgstr "value uzunluǧu 1 veya x'in uzunluǧu (%d) olmali, ama uzunlugu %d." msgid "(showing the first %d)" msgstr "(İlk %d'yi gösteriyor)" msgid "You must provide a class." msgstr "Bir sınıf vermelisiniz." msgid "target_class should be a character vector." msgstr "target_class karakter verktörü olmalı." msgid "Coercing %s to class %s." msgstr "%s %s sınıfına uyarlanıyor." msgid "%s cannot be coerced to type %s." msgstr "%s %s tipine uyarlanamıyor." msgid "%s cannot be coerced to any of these types: %s." msgstr "%s bu tiplerden hiçbirine uyarlanamıyor: %s" msgid "%s is not identical to FALSE." msgstr "%s FALSE ile ayni değil." msgid "%s is not identical to NA." msgstr "%s NA ile ayni değil." msgid "%s is not identical to TRUE." msgstr "%s TRUE ile ayni değil." msgid "Duplicated arguments: %s" msgstr "Tekrarlanan argümanlar: %s" msgid "%s has length 0." msgstr "%s uzunluğu 0." msgid "Only the first value of %s (= %s) will be used." msgstr "%s'nin sadece (= %s) ilk değeri kullanılacak." msgid "There was %d failure%s:\n" msgid_plural "There were %d failures%s:\n" msgstr[0] "%d hata bulundu%s:\n" msgstr[1] "%d hata bulundu%s:\n" assertive.base/po/R-sv.po0000644000176200001440000000545413021047322014777 0ustar liggesusersmsgid "" msgstr "" "Project-Id-Version: assertive.base 0.0-2\n" "Report-Msgid-Bugs-To: https://bitbucket.org/richierocks/assertive.base\n" "POT-Creation-Date: 2015-08-16 14:03\n" "PO-Revision-Date: 2015-10-05 14:45+0300\n" "Last-Translator: Rasmus Bååth \n" "Language-Team: LANGUAGE \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgid "%s and %s are not identical." msgstr "%s och %s är inte identiska." msgid "The values of %s are not all FALSE." msgstr "Värdena av %s är inte alla FALSE." msgid "The values of %s are never FALSE." msgstr "Värdena av %s är aldrig FALSE." msgid "The values of %s are not all NA." msgstr "Värdena av %s är inte alla NA." msgid "The values of %s are never NA." msgstr "Värdena av %s är aldrig NA." msgid "The values of %s are not all TRUE." msgstr "Värdena av %s är inte alla TRUE." msgid "The values of %s are never TRUE." msgstr "Värdena av %s är aldrig TRUE." msgid "The values of %s are sometimes FALSE." msgstr "Värdena av %s är ibland FALSE." msgid "The values of %s are all FALSE." msgstr "Värdena av %s är alla FALSE." msgid "The values of %s are sometimes NA." msgstr "Värdena av %s är ibland NA." msgid "The values of %s are all NA." msgstr "Värdena av %s är alla NA." msgid "The values of %s are sometimes TRUE." msgstr "Värdena av %s är ibland TRUE." msgid "The values of %s are all TRUE." msgstr "Värdena av %s är alla TRUE." msgid "The length of value should be 1 or the length of x (%d) but is %d." msgstr "value längd borde vara 1 eller längden av x (%d) men är %d." msgid "(showing the first %d)" msgstr "(visar de första %d)" msgid "You must provide a class." msgstr "Du måste tillhandahålla en class." msgid "target_class should be a character vector." msgstr "target_class borde vara en character vector." msgid "Coercing %s to class %s." msgstr "Omvandlar %s till class %s." msgid "%s cannot be coerced to type %s." msgstr "%s kan inte omvandlas till typ %s." msgid "%s cannot be coerced to any of these types: %s." msgstr "%s kan inte omvandlas till någon av dessa typer: %s." msgid "%s is not identical to FALSE." msgstr "%s är inte identiskt med FALSE." msgid "%s is not identical to NA." msgstr "%s är inte identiskt med NA." msgid "%s is not identical to TRUE." msgstr "%s är inte identiskt med TRUE." msgid "Duplicated arguments:" msgstr "Duplicerade argument:" msgid "%s has length 0." msgstr "%s har längd 0." msgid "Only the first value of %s (= %s) will be used." msgstr "Bara det första värdet av %s (= %s) kommer användas." msgid "There was %d failure%s:\n" msgid_plural "There were %d failures%s:\n" msgstr[0] "Där var %d fel%s:\n" msgstr[1] "Där var %d fel%s:\n" assertive.base/po/R-ko.po0000644000176200001440000000573213021047322014757 0ustar liggesusersmsgid "" msgstr "" "Project-Id-Version: assertive.base 0.0-2\n" "Report-Msgid-Bugs-To: https://bitbucket.org/richierocks/assertive.base\n" "POT-Creation-Date: 2015-08-11 13:37\n" "PO-Revision-Date: 2015-10-05 14:45+0300\n" "Last-Translator: Sunkyu Choi \n" "Language-Team: LANGUAGE \n" "Language: ko\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" msgid "%s and %s are not identical." msgstr "%s 와 %s는 동일하지 않다." msgid "The values of %s are not all FALSE." msgstr "%s의 값들이 모두 FALSE는 아닙니다." msgid "The values of %s are never FALSE." msgstr "%s의 값들은 절대 FALSE가 아닙니다." msgid "The values of %s are not all NA." msgstr "%s의 값들이 모두 NA는 아닙니다." msgid "The values of %s are never NA." msgstr "%s의 값들은 절대 NA가 아닙니다." msgid "The values of %s are not all TRUE." msgstr "%s의 값들이 모두 TRUE는 아닙니다." msgid "The values of %s are never TRUE." msgstr "%s의 값들은 절대 TRUE가 아닙니다." msgid "The values of %s are sometimes FALSE." msgstr "%s의 값들은 가끔 FALSE 입니다." msgid "The values of %s are all FALSE." msgstr "%s의 값들은 FALSE 입니다." msgid "The values of %s are sometimes NA." msgstr "%s의 값들은 가끔 NA 입니다." msgid "The values of %s are all NA." msgstr "%s의 값들은 NA입니다." msgid "The values of %s are sometimes TRUE." msgstr "%s의 값들은 가끔 TRUE 입니다." msgid "The values of %s are all TRUE." msgstr "%s의 값들은 모두 TRUE 입니다." msgid "The length of value should be 1 or the length of x (%d) but is %d." msgstr "value 의 길이는 1 또는 X (% d 개)의 길이 만 % d 개입니다해야합니다." msgid "(showing the first %d)" msgstr "첫번째 %d 보기." msgid "You must provide a class." msgstr "당신은 클래스를 제공해야 합니다." msgid "target_class should be a character vector." msgstr "target_class 는 캐릭터 벡터이어야 합니다." msgid "Coercing %s to class %s." msgstr "%s를 클래스 %s로 강요." msgid "%s cannot be coerced to type %s." msgstr "%s는 타입 %s로 강요 받을 수 없습니다." msgid "%s cannot be coerced to any of these types: %s." msgstr "%s는 다른 어떤 타입들로 강요 받을 수 없습니다: %s." msgid "%s is not identical to FALSE." msgstr "%s는 FALSE와 같지 않습니다." msgid "%s is not identical to NA." msgstr "%s는 NA와 같지 않습니다." msgid "%s is not identical to TRUE." msgstr "%s는 TRUE와 같지 않습니다." msgid "Duplicated arguments:" msgstr "이중 인수:" msgid "%s has length 0." msgstr "%s는 0 길이를 갖습니다." msgid "Only the first value of %s (= %s) will be used." msgstr "오직 첫번째 %s의 (= %s) 값만 사용 되어 질 것 입니다." msgid "There was %d failure%s:\n" msgid_plural "There were %d failures%s:\n" msgstr[0] "%d 실패 %s:\n" assertive.base/po/R-ru.po0000644000176200001440000000707013021047322014771 0ustar liggesusersmsgid "" msgstr "" "Project-Id-Version: assertive.base\n" "Report-Msgid-Bugs-To: https://bitbucket.org/richierocks/assertive.base\n" "POT-Creation-Date: 2015-08-11 13:37\n" "PO-Revision-Date: 2015-10-05 14:45+0300\n" "Last-Translator: Anton Antonov \n" "Language-Team: LANGUAGE \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" msgid "%s and %s are not identical." msgstr "%s и %s не являются идентичными." msgid "The values of %s are not all FALSE." msgstr "Не все из значений %s являются FALSE." msgid "The values of %s are never FALSE." msgstr "Ни одно из значений %s не является FALSE." msgid "The values of %s are not all NA." msgstr "Не все из значений %s являются NA." msgid "The values of %s are never NA." msgstr "Ни одно из значений %s не является NA." msgid "The values of %s are not all TRUE." msgstr "Не все из значений %s являются TRUE." msgid "The values of %s are never TRUE." msgstr "Ни одно из значений %s не является TRUE." msgid "The values of %s are sometimes FALSE." msgstr "Некоторые значения %s являются FALSE." msgid "The values of %s are all FALSE." msgstr "Все из значений %s являются FALSE." msgid "The values of %s are sometimes NA." msgstr "Некоторые значения %s являются NA." msgid "The values of %s are all NA." msgstr "Все из значений %s являются NA." msgid "The values of %s are sometimes TRUE." msgstr "Некоторые значения %s являются TRUE." msgid "The values of %s are all TRUE." msgstr "Все из значений %s являются TRUE." msgid "The length of value should be 1 or the length of x (%d) but is %d." msgstr "Длина value должна быть равна 1 или длине x (%d), но она равна %d." msgid "(showing the first %d)" msgstr "(показаны первые %d)" msgid "You must provide a class." msgstr "Необходимо указать класс." msgid "target_class should be a character vector." msgstr "target_class должен быть текстовым вектором." msgid "Coercing %s to class %s." msgstr "Приводим %s к классу %s." msgid "%s cannot be coerced to type %s." msgstr "%s не может быть приведён к классу %s." msgid "%s cannot be coerced to any of these types: %s." msgstr "%s не может быть приведён ни к одному из этих типов: %s." msgid "%s is not identical to FALSE." msgstr "%s не идентичен FALSE." msgid "%s is not identical to NA." msgstr "%s не идентичен NA." msgid "%s is not identical to TRUE." msgstr "%s не идентичен TRUE." msgid "Duplicated arguments:" msgstr "Повторяющиеся аргументы:" msgid "%s has length 0." msgstr "%s имеет длину 0." msgid "Only the first value of %s (= %s) will be used." msgstr "Будет использовано только первое значение %s (= %s)." msgid "There was %d failure%s:\n" msgid_plural "There were %d failures%s:\n" msgstr[0] "Обнаружена %d ошибка%s:\n" msgstr[1] "Обнаружено %d ошибки%s:\n" msgstr[2] "Обнаружено %d ошибок%s:\n" assertive.base/po/R-nl.po0000644000176200001440000000554513021047322014761 0ustar liggesusersmsgid "" msgstr "" "Project-Id-Version: assertive.base 0.0-2\n" "Report-Msgid-Bugs-To: https://bitbucket.org/richierocks/assertive.base\n" "POT-Creation-Date: 2015-08-11 13:37\n" "PO-Revision-Date: 2015-10-05 14:45+0300\n" "Last-Translator: Aditya Bhagwat \n" "Language-Team: LANGUAGE \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgid "%s and %s are not identical." msgstr "%s en %s zijn niet identiek." msgid "The values of %s are not all FALSE." msgstr "Niet alle waarden in %s zijn FALSE." msgid "The values of %s are never FALSE." msgstr "Geen enkele waarde in %s is FALSE." msgid "The values of %s are not all NA." msgstr "Niet alle waarden van %s zijn NA." msgid "The values of %s are never NA." msgstr "Geen enkele waarde in %s is NA." msgid "The values of %s are not all TRUE." msgstr "Niet alle waarden in %s zijn TRUE." msgid "The values of %s are never TRUE." msgstr "Geen enkele waarde in %s is TRUE." msgid "The values of %s are sometimes FALSE." msgstr "Sommige waarden in %s zijn FALSE." msgid "The values of %s are all FALSE." msgstr "Alle waarden in %s zijn FALSE." msgid "The values of %s are sometimes NA." msgstr "Sommige waarden in %s zijn NA." msgid "The values of %s are all NA." msgstr "Alle waarden in %s zijn NA." msgid "The values of %s are sometimes TRUE." msgstr "Sommige waarden in %s zijn TRUE." msgid "The values of %s are all TRUE." msgstr "Alle waarden in %s zijn TRUE." msgid "The length of value should be 1 or the length of x (%d) but is %d." msgstr "De lengte van value moet gelijk zijn aan 1 of aan de lengte van x (%d) maar is %d." msgid "(showing the first %d)" msgstr "(de eerste %d worden getoond)" msgid "You must provide a class." msgstr "Je moet een class opgeven." msgid "target_class should be a character vector." msgstr "target_class moet een character vector zijn." msgid "Coercing %s to class %s." msgstr "%s wordt geforceerd naar class %s." msgid "%s cannot be coerced to type %s." msgstr "%s kan niet worden geforceerd naar type %s." msgid "%s cannot be coerced to any of these types: %s." msgstr "%s kan niet worden geforceerd naar eender van beide types: %s." msgid "%s is not identical to FALSE." msgstr "%s is niet identiek aan FALSE." msgid "%s is not identical to NA." msgstr "%s is niet identiek aan NA." msgid "%s is not identical to TRUE." msgstr "%s is niet identiek aan TRUE." msgid "Duplicated arguments:" msgstr "Gedupliceerde argumenten:" msgid "%s has length 0." msgstr "%s heeft lengte 0." msgid "Only the first value of %s (= %s) will be used." msgstr "Alleen de eerste waarde in %s (= %s) wordt gebruikt." msgid "There was %d failure%s:\n" msgid_plural "There were %d failures%s:\n" msgstr[0] "Er was %d failure%s:\n" msgstr[1] "Er waren %d falirues%s:\n" assertive.base/inst/0000755000176200001440000000000013021047322014137 5ustar liggesusersassertive.base/inst/po/0000755000176200001440000000000013021047322014555 5ustar liggesusersassertive.base/inst/po/nl/0000755000176200001440000000000013021047322015166 5ustar liggesusersassertive.base/inst/po/nl/LC_MESSAGES/0000755000176200001440000000000013021047322016753 5ustar liggesusersassertive.base/inst/po/nl/LC_MESSAGES/R-assertive.base.mo0000644000176200001440000000560213021047322022430 0ustar liggesusers%pq/ )F]v(B5!Tv # "%"D$g3*>+:Ml"- R/    "  ! #@ !d " !  . : ,U    %s and %s are not identical.%s cannot be coerced to any of these types: %s.%s cannot be coerced to type %s.%s has length 0.%s is not identical to FALSE.%s is not identical to NA.%s is not identical to TRUE.(showing the first %d)Coercing %s to class %s.Duplicated arguments:Only the first value of %s will be used.The length of value should be 1 or the length of x (%d) but is %d.The values of %s are all FALSE.The values of %s are all NA.The values of %s are all TRUE.The values of %s are never FALSE.The values of %s are never NA.The values of %s are never TRUE.The values of %s are not all FALSE.The values of %s are not all NA.The values of %s are not all TRUE.The values of %s are sometimes FALSE.The values of %s are sometimes NA.The values of %s are sometimes TRUE.There was %d failure%s: There were %d failures%s: You must provide a class.target_class should be a character vector.Project-Id-Version: assertive.base 0.0-2 Report-Msgid-Bugs-To: https://bitbucket.org/richierocks/assertive.base POT-Creation-Date: 2015-08-11 13:37 PO-Revision-Date: 2015-10-05 14:45+0300 Last-Translator: Aditya Bhagwat Language-Team: LANGUAGE Language: nl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); %s en %s zijn niet identiek.%s kan niet worden geforceerd naar eender van beide types: %s.%s kan niet worden geforceerd naar type %s.%s heeft lengte 0.%s is niet identiek aan FALSE.%s is niet identiek aan NA.%s is niet identiek aan TRUE.(de eerste %d worden getoond)%s wordt geforceerd naar class %s.Gedupliceerde argumenten:Alleen de eerste waarde in %s wordt gebruikt.De lengte van value moet gelijk zijn aan 1 of aan de lengte van x (%d) maar is %d.Alle waarden in %s zijn FALSE.Alle waarden in %s zijn NA.Alle waarden in %s zijn TRUE.Geen enkele waarde in %s is FALSE.Geen enkele waarde in %s is NA.Geen enkele waarde in %s is TRUE.Niet alle waarden in %s zijn FALSE.Niet alle waarden van %s zijn NA.Niet alle waarden in %s zijn TRUE.Sommige waarden in %s zijn FALSE.Sommige waarden in %s zijn NA.Sommige waarden in %s zijn TRUE.Er was %d failure%s: Er waren %d falirues%s: Je moet een class opgeven.target_class moet een character vector zijn.assertive.base/inst/po/ko/0000755000176200001440000000000013021047322015166 5ustar liggesusersassertive.base/inst/po/ko/LC_MESSAGES/0000755000176200001440000000000013021047322016753 5ustar liggesusersassertive.base/inst/po/ko/LC_MESSAGES/R-assertive.base.mo0000644000176200001440000000600413021047322022425 0ustar liggesusers%pq/ )F]v(B5!Tv # "%"D$g3*!D2H#h " > WQ !  & - *> ,i - * , ' $D &i  . 5    %s and %s are not identical.%s cannot be coerced to any of these types: %s.%s cannot be coerced to type %s.%s has length 0.%s is not identical to FALSE.%s is not identical to NA.%s is not identical to TRUE.(showing the first %d)Coercing %s to class %s.Duplicated arguments:Only the first value of %s will be used.The length of value should be 1 or the length of x (%d) but is %d.The values of %s are all FALSE.The values of %s are all NA.The values of %s are all TRUE.The values of %s are never FALSE.The values of %s are never NA.The values of %s are never TRUE.The values of %s are not all FALSE.The values of %s are not all NA.The values of %s are not all TRUE.The values of %s are sometimes FALSE.The values of %s are sometimes NA.The values of %s are sometimes TRUE.There was %d failure%s: There were %d failures%s: You must provide a class.target_class should be a character vector.Project-Id-Version: assertive.base 0.0-2 Report-Msgid-Bugs-To: https://bitbucket.org/richierocks/assertive.base POT-Creation-Date: 2015-08-11 13:37 PO-Revision-Date: 2015-10-05 14:45+0300 Last-Translator: Sunkyu Choi Language-Team: LANGUAGE Language: ko MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; %s 와 %s는 동일하지 않다.%s는 다른 어떤 타입들로 강요 받을 수 없습니다: %s.%s는 타입 %s로 강요 받을 수 없습니다.%s는 0 길이를 갖습니다.%s는 FALSE와 같지 않습니다.%s는 NA와 같지 않습니다.%s는 TRUE와 같지 않습니다.첫번째 %d 보기.%s를 클래스 %s로 강요.이중 인수:오직 첫번째 %s의 값만 사용 되어 질 것 입니다.value 의 길이는 1 또는 X (% d 개)의 길이 만 % d 개입니다해야합니다.%s의 값들은 FALSE 입니다.%s의 값들은 NA입니다.%s의 값들은 모두 TRUE 입니다.%s의 값들은 절대 FALSE가 아닙니다.%s의 값들은 절대 NA가 아닙니다.%s의 값들은 절대 TRUE가 아닙니다.%s의 값들이 모두 FALSE는 아닙니다.%s의 값들이 모두 NA는 아닙니다.%s의 값들이 모두 TRUE는 아닙니다.%s의 값들은 가끔 FALSE 입니다.%s의 값들은 가끔 NA 입니다.%s의 값들은 가끔 TRUE 입니다.%d 실패 %s: 당신은 클래스를 제공해야 합니다.target_class 는 캐릭터 벡터이어야 합니다.assertive.base/inst/po/sv/0000755000176200001440000000000013021047322015205 5ustar liggesusersassertive.base/inst/po/sv/LC_MESSAGES/0000755000176200001440000000000013021047322016772 5ustar liggesusersassertive.base/inst/po/sv/LC_MESSAGES/R-assertive.base.mo0000644000176200001440000000551113021047322022446 0ustar liggesusers%pq/ )F]v(B5!Tv # "%"D$g3*5") :[y0> Q p    # - "N q   ' # ,    %s and %s are not identical.%s cannot be coerced to any of these types: %s.%s cannot be coerced to type %s.%s has length 0.%s is not identical to FALSE.%s is not identical to NA.%s is not identical to TRUE.(showing the first %d)Coercing %s to class %s.Duplicated arguments:Only the first value of %s will be used.The length of value should be 1 or the length of x (%d) but is %d.The values of %s are all FALSE.The values of %s are all NA.The values of %s are all TRUE.The values of %s are never FALSE.The values of %s are never NA.The values of %s are never TRUE.The values of %s are not all FALSE.The values of %s are not all NA.The values of %s are not all TRUE.The values of %s are sometimes FALSE.The values of %s are sometimes NA.The values of %s are sometimes TRUE.There was %d failure%s: There were %d failures%s: You must provide a class.target_class should be a character vector.Project-Id-Version: assertive.base 0.0-2 Report-Msgid-Bugs-To: https://bitbucket.org/richierocks/assertive.base POT-Creation-Date: 2015-08-16 14:03 PO-Revision-Date: 2015-10-05 14:45+0300 Last-Translator: Rasmus Bååth Language-Team: LANGUAGE Language: sv MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); %s och %s är inte identiska.%s kan inte omvandlas till någon av dessa typer: %s.%s kan inte omvandlas till typ %s.%s har längd 0.%s är inte identiskt med FALSE.%s är inte identiskt med NA.%s är inte identiskt med TRUE.(visar de första %d)Omvandlar %s till class %s.Duplicerade argument:Bara det första värdet av %s kommer användas.value längd borde vara 1 eller längden av x (%d) men är %d.Värdena av %s är alla FALSE.Värdena av %s är alla NA.Värdena av %s är alla TRUE.Värdena av %s är aldrig FALSE.Värdena av %s är aldrig NA.Värdena av %s är aldrig TRUE.Värdena av %s är inte alla FALSE.Värdena av %s är inte alla NA.Värdena av %s är inte alla TRUE.Värdena av %s är ibland FALSE.Värdena av %s är ibland NA.Värdena av %s är ibland TRUE.Där var %d fel%s: Där var %d fel%s: Du måste tillhandahålla en class.target_class borde vara en character vector.assertive.base/inst/po/el/0000755000176200001440000000000013021047322015155 5ustar liggesusersassertive.base/inst/po/el/LC_MESSAGES/0000755000176200001440000000000013021047322016742 5ustar liggesusersassertive.base/inst/po/el/LC_MESSAGES/R-assertive.base.mo0000644000176200001440000000710013021047322022412 0ustar liggesusers%p/q  )@Y(oB 4Us"!$!#?3c*wL+(x857 .H :w L t 3 0 2 :- 7h 9 : 7 9M 7 4 6 M+ 5y U :    %s cannot be coerced to any of these types: %s.%s cannot be coerced to type %s.%s has length 0.%s is not identical to FALSE.%s is not identical to NA.%s is not identical to TRUE.(showing the first %d)Coercing %s to class %s.Duplicated arguments:Only the first value of %s will be used.The length of value should be 1 or the length of x (%d) but is %d.The values of x are all FALSE.The values of x are all NA.The values of x are all TRUE.The values of x are never FALSE.The values of x are never NA.The values of x are never TRUE.The values of x are not all FALSE.The values of x are not all NA.The values of x are not all TRUE.The values of x are sometimes FALSE.The values of x are sometimes NA.The values of x are sometimes TRUE.There was %d failure%s: There were %d failures%s: You must provide a class.target_class should be a character vector.x and y are not identical.Project-Id-Version: assertive.base 0.0-2 Report-Msgid-Bugs-To: https://bitbucket.org/richierocks/assertive.base POT-Creation-Date: 2015-08-11 13:37 PO-Revision-Date: 2015-10-05 13:00+0300 Last-Translator: Aspasia Chatziefthymiou Language-Team: LANGUAGE Language: el MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); %s δεν γίνεται να εξαναγκαστεί σε κανένα από αυτούς τους τύπους: %s.%s δεν γίνεται να εξαναγκαστεί στον τύπο %s.%s έχει μέγεθος τιμής 0.%s δεν είναι ταυτόσημο με το FALSE.%s δεν είναι ταυτόσημο με το NA.%s δεν είναι ταυτόσημο με το TRUE.(εμφανίζονται τα πρώτα %d)Εξαναγκάζοντας το %s στη κλάση %s.Διπλότυπο όρισμα:Μόνο η πρώτη τιμή του %s θα χρησιμοποιηθεί.Το εύρος της value πρέπει να είναι 1 ή το εύρος του x (%d) αλλά είναι %d.Οι τιμές του x είναι όλες FALSE Οι τιμές του x είναι όλες NA.Οι τιμές του x είναι όλες TRUE.Οι τιμές του x δεν είναι ποτέ FALSE.Οι τιμές του x δεν είναι ποτέ NA.Οι τιμές του x δεν είναι ποτέ TRUE.Οι τιμές του x δεν είναι όλες FALSE.Οι τιμές του x δεν είναι όλες NA.Οι τιμές του x δεν είναι όλες TRUE.Οι τιμές του x είναι ενίοτε FALSE Οι τιμές του x είναι ενίοτε NA.Οι τιμές του x είναι ενίοτε TRUE.Υπήρξε %d αποτυχία:%s Υπήρξαν %d αποτυχίες:%s Πρέπει να παρέχετε μια κλάση.target_class πρέπει να είναι ένα διάνυσμα χαρακτήρα.Το x και το y δεν είναι ταυτόσημα.assertive.base/inst/po/ua/0000755000176200001440000000000013021047322015162 5ustar liggesusersassertive.base/inst/po/ua/LC_MESSAGES/0000755000176200001440000000000013021047322016747 5ustar liggesusersassertive.base/inst/po/ua/LC_MESSAGES/R-assertive.base.mo0000644000176200001440000000662513021047322022432 0ustar liggesusers%pq/ )F]v(B5!Tv # "%"D$g3*(X7x1#." &Q ,x ( L h .  & @ ,9 <f 9 # / 91 %k . V . NF    %s and %s are not identical.%s cannot be coerced to any of these types: %s.%s cannot be coerced to type %s.%s has length 0.%s is not identical to FALSE.%s is not identical to NA.%s is not identical to TRUE.(showing the first %d)Coercing %s to class %s.Duplicated arguments:Only the first value of %s will be used.The length of value should be 1 or the length of x (%d) but is %d.The values of %s are all FALSE.The values of %s are all NA.The values of %s are all TRUE.The values of %s are never FALSE.The values of %s are never NA.The values of %s are never TRUE.The values of %s are not all FALSE.The values of %s are not all NA.The values of %s are not all TRUE.The values of %s are sometimes FALSE.The values of %s are sometimes NA.The values of %s are sometimes TRUE.There was %d failure%s: There were %d failures%s: You must provide a class.target_class should be a character vector.Project-Id-Version: assertive.base 0.0-2 Report-Msgid-Bugs-To: https://bitbucket.org/richierocks/assertive.base POT-Creation-Date: 2015-08-27 14:40 PO-Revision-Date: 2015-08-17 11:46+0800 Last-Translator: Ivanka Skakun Language-Team: www.coupofy.com Language: ua MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); %s і %s не є ідентичними.%s не можна перевести до будь-якого з цих типів: %s.%s не можна перевести до типу %s.%s має довжину 0.%s не збігається з ПОМИЛКОЮ.%s не збігається з NA.%s не збігається з ВІРНИМ.(показувати перший %d)Приведення %s до класу %s.Дубльовані аргументи:Тільки перше значення %s буде використане.Довжина значення має дорівнювати 1 або довжині x (%d) але %d.Значення %s всі ПОМИЛКОВІ.Значення %s всі NAЗначення %s всі ВІРНІ.Значення %s ніколи не є ПОМИЛКОВИМИ.Значення %s ніколи не є NA.Значення %s ніколи не є ІСТИННИМИ.Значення %s не завжди ПОМИЛКОВІ.Значення %s не всі NA.Значення %s не всі ІСТИННІ.Значення %s іноді є ПОМИЛКОВИМИ.Значення %s іноді є NA.Значення %s іноді ІСТИННІ.Тут %d помилка%s: Тут %d помилок%s: Тут %d помилок%s: Ви повинні показати клас.target_class має бути вектором орієнтації знаку.assertive.base/inst/po/tr/0000755000176200001440000000000013021047322015202 5ustar liggesusersassertive.base/inst/po/tr/LC_MESSAGES/0000755000176200001440000000000013021047322016767 5ustar liggesusersassertive.base/inst/po/tr/LC_MESSAGES/R-assertive.base.mo0000644000176200001440000000544613021047322022452 0ustar liggesusers%pq/ )F]v(B8!Wy # "%!"G$j3*-)CZs(C5 S n ( % ' $ !' #I m   '  )     %s and %s are not identical.%s cannot be coerced to any of these types: %s.%s cannot be coerced to type %s.%s has length 0.%s is not identical to FALSE.%s is not identical to NA.%s is not identical to TRUE.(showing the first %d)Coercing %s to class %s.Duplicated arguments: %sOnly the first value of %s will be used.The length of value should be 1 or the length of x (%d) but is %d.The values of %s are all FALSE.The values of %s are all NA.The values of %s are all TRUE.The values of %s are never FALSE.The values of %s are never NA.The values of %s are never TRUE.The values of %s are not all FALSE.The values of %s are not all NA.The values of %s are not all TRUE.The values of %s are sometimes FALSE.The values of %s are sometimes NA.The values of %s are sometimes TRUE.There was %d failure%s: There were %d failures%s: You must provide a class.target_class should be a character vector.Project-Id-Version: assertive.base 0.0-2 Report-Msgid-Bugs-To: https://bitbucket.org/richierocks/assertive.base POT-Creation-Date: 2015-08-17 08:40 PO-Revision-Date: 2015-10-05 14:45+0300 Last-Translator: Mine Çetinkaya-Rundel Language-Team: LANGUAGE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: tr Plural-Forms: nplurals=2; plural=(n > 1); %s ve %s aynı deǧil.%s bu tiplerden hiçbirine uyarlanamıyor: %s%s %s tipine uyarlanamıyor.%s uzunluğu 0.%s FALSE ile ayni değil.%s NA ile ayni değil.%s TRUE ile ayni değil.(İlk %d'yi gösteriyor)%s %s sınıfına uyarlanıyor.Tekrarlanan argümanlar: %s%s'nin sadece ilk değeri kullanılacak.value uzunluǧu 1 veya x'in uzunluǧu (%d) olmali, ama uzunlugu %d.%s deǧerlerinin hepsi FALSE.%s deǧerlerinin hepsi NA.%s deǧerlerinin hepsi TRUE.%s deǧerlerinin hiç biri FALSE deǧil.%s deǧerlerinin hiç biri NA deǧil.%s deǧerlerinin hiç biri TRUE deǧil.%s deǧerlerinin hepsi FALSE deǧil.%s deǧerlerinin hepsi NA deǧil.%s deǧerlerinin hepsi TRUE deǧil.%s deǧerleri bazen FALSE.%s deǧerleri bazen NA.%s deǧerleri bazen TRUE.%d hata bulundu%s: %d hata bulundu%s: Bir sınıf vermelisiniz.target_class karakter verktörü olmalı.assertive.base/inst/po/fr/0000755000176200001440000000000013021047322015164 5ustar liggesusersassertive.base/inst/po/fr/LC_MESSAGES/0000755000176200001440000000000013021047322016751 5ustar liggesusersassertive.base/inst/po/fr/LC_MESSAGES/R-assertive.base.mo0000644000176200001440000000571213021047322022430 0ustar liggesusers%pq/ )F]v(B5!Tv # "%"D$g3* 5!6Mm.M( #v " & # %) +O '{ ) $ ! # ?8 x 0    %s and %s are not identical.%s cannot be coerced to any of these types: %s.%s cannot be coerced to type %s.%s has length 0.%s is not identical to FALSE.%s is not identical to NA.%s is not identical to TRUE.(showing the first %d)Coercing %s to class %s.Duplicated arguments:Only the first value of %s will be used.The length of value should be 1 or the length of x (%d) but is %d.The values of %s are all FALSE.The values of %s are all NA.The values of %s are all TRUE.The values of %s are never FALSE.The values of %s are never NA.The values of %s are never TRUE.The values of %s are not all FALSE.The values of %s are not all NA.The values of %s are not all TRUE.The values of %s are sometimes FALSE.The values of %s are sometimes NA.The values of %s are sometimes TRUE.There was %d failure%s: There were %d failures%s: You must provide a class.target_class should be a character vector.Project-Id-Version: assertive.base 0.0-2 Report-Msgid-Bugs-To: https://bitbucket.org/richierocks/assertive.base POT-Creation-Date: 2015-08-16 11:17 PO-Revision-Date: 2015-10-05 14:45+0300 Last-Translator: Hisham Ben Hamidane Language-Team: LANGUAGE Language: fr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n > 1); %s et %s ne sont pas identiques.%s ne peut etre forcé en aucun des types suivant: %s%s ne peut etre forcé en type %s%s a une longueur de 0%s n'est pas identique à FALSE%s n'est pas identique à NA%s n'est pas identique à TRUE(affichage des premiers %d)Contrainte de %s en classe %sArguments dupliqués:Seule la première valeur de %s sera utiliséeLa longueur de value doit être de 1 ou de la longueur de x (%d) et non de %dLes valeurs de %s sont toutes FALSELes valeurs de %s sont toutes NALes valeurs de %s sont toutes TRUELes valeurs de %s ne sont jamais FALSELes valeurs de %s ne sont jamais NALes valeurs de %s ne sont jamais TRUELes valeurs de %s ne sont pas toutes FALSE.Les valeurs de %s ne sont pas toutes NALes valeurs de %s ne sont pas toutes TRUELes valeurs de %s sont parfois FALSELes valeurs de %s sont parfois NALes valeurs de %s sont parfois TRUE%d echec a été observé%s: %d echecs ont été observés%s: Une classe doit être specifiéetarget_class doit etre un vecteur de caractèresassertive.base/inst/po/hu/0000755000176200001440000000000013021047322015171 5ustar liggesusersassertive.base/inst/po/hu/LC_MESSAGES/0000755000176200001440000000000013021047322016756 5ustar liggesusersassertive.base/inst/po/hu/LC_MESSAGES/R-assertive.base.mo0000644000176200001440000000575013021047322022437 0ustar liggesusers%pq/ )F]v(B5!Tv # "%"D$g3*9.L^q =T& %{ " $ ( % '8 )` & ( . + -5 1c  2    %s and %s are not identical.%s cannot be coerced to any of these types: %s.%s cannot be coerced to type %s.%s has length 0.%s is not identical to FALSE.%s is not identical to NA.%s is not identical to TRUE.(showing the first %d)Coercing %s to class %s.Duplicated arguments:Only the first value of %s will be used.The length of value should be 1 or the length of x (%d) but is %d.The values of %s are all FALSE.The values of %s are all NA.The values of %s are all TRUE.The values of %s are never FALSE.The values of %s are never NA.The values of %s are never TRUE.The values of %s are not all FALSE.The values of %s are not all NA.The values of %s are not all TRUE.The values of %s are sometimes FALSE.The values of %s are sometimes NA.The values of %s are sometimes TRUE.There was %d failure%s: There were %d failures%s: You must provide a class.target_class should be a character vector.Project-Id-Version: assertive.base 0.0-2 Report-Msgid-Bugs-To: https://bitbucket.org/richierocks/assertive.base POT-Creation-Date: 2015-08-11 13:37 PO-Revision-Date: 2015-08-27 14:40+0300 Last-Translator: Gergely Daróczi Language-Team: LANGUAGE Language: hu MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: Poedit 1.8.4 %s és %s nem azonos.(A)z %s objektum nem sorolható egyik osztályba sem: %s.(A)z %s objektum nem sorolható %s osztályba.A(z) %s hossza 0.A(z) %s nem FALSE.A(z) %s nem NA.A(z) %s nem TRUE.(az első %d mutatása)(A)z %s %s osztályba sorolása.Ismétlődő objektum név:A(z) %s elemei közül csak az első kerül kiértékelésre.A "value" paraméter hossza 1 vagy "x" hosszúságú (%d) kellene legyen %d helyett.A(z) %s értékei közül mind FALSE.A(z) %s értékei közül mind NA.A(z) %s értékei közül mind TRUE.A(z) %s értékei közül egy sem FALSE.A(z) %s értékei közül egy sem NA.A(z) %s értékei közül egy sem TRUE.A(z) %s értékei közül nem mind FALSE.A(z) %s értékei közül nem mind NA.A(z) %s értékei közül nem mind TRUE.Néhány elem a(z) %s értékei közül FALSE.Néhány elem a(z) %s értékei közül NA.Néhány elem a(z) %s értékei közül TRUE.%d hiba fordult elő%s: %d hiba fordult elő%s: Hiányzik a "class" paraméter.A "target_class" paraméter karakter vektort vár.assertive.base/inst/po/de/0000755000176200001440000000000013021047322015145 5ustar liggesusersassertive.base/inst/po/de/LC_MESSAGES/0000755000176200001440000000000013021047322016732 5ustar liggesusersassertive.base/inst/po/de/LC_MESSAGES/R-assertive.base.mo0000644000176200001440000000564113021047322022412 0ustar liggesusers%pq/ )F]v(B5!Tv # "%"D$g3*9$5!Jl)K !k    ', $T &y % " $ F U -s    %s and %s are not identical.%s cannot be coerced to any of these types: %s.%s cannot be coerced to type %s.%s has length 0.%s is not identical to FALSE.%s is not identical to NA.%s is not identical to TRUE.(showing the first %d)Coercing %s to class %s.Duplicated arguments:Only the first value of %s will be used.The length of value should be 1 or the length of x (%d) but is %d.The values of %s are all FALSE.The values of %s are all NA.The values of %s are all TRUE.The values of %s are never FALSE.The values of %s are never NA.The values of %s are never TRUE.The values of %s are not all FALSE.The values of %s are not all NA.The values of %s are not all TRUE.The values of %s are sometimes FALSE.The values of %s are sometimes NA.The values of %s are sometimes TRUE.There was %d failure%s: There were %d failures%s: You must provide a class.target_class should be a character vector.Project-Id-Version: assertive.base 0.0-2 Report-Msgid-Bugs-To: https://bitbucket.org/richierocks/assertive.base POT-Creation-Date: 2015-08-11 13:37 PO-Revision-Date: 2015-10-05 14:45+0300 Last-Translator: Anja Billing Language-Team: LANGUAGE Language: de MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); %s und %s sind nicht identisch.%s kann nicht gezwungen werden in keine dieser Typen: %s.%s kann nicht gezwungen werden in %s%s hat die Laenge 0.%s ist nicht identisch mit FALSE.%s ist nicht identisch mit NA.%s ist nicht identisch mit TRUE(zeigt die ersten %d)Zwingen von %s in Klasse %s.Duplizierte Argumente:Nur der erste Wert von %s wird verwendet.The Laenge des Wertes sollte 1 oder die Laenge von x (%d) sein ist aber %d.Die Werte von %s sind alle FALSE.Die Werte von %s sind alle NA.Die Werte von %s sind alle TRUE.Die Werte von %s sind nie FALSE.Die Werte von %s sind nie NA.Die Werte von %s sind nie TRUE.Die Werte von %s sind nicht alle FALSE.Die Werte von %s sind nicht alle NA.Die Werte von %s sind nicht alle TRUE.Die Werte von %s sind manchmal FALSE.Die Werte von %s sind manchmal NA.Die Werte von %s sind manchmal TRUE.Es ist ein %d Fehler aufgetreten%s: Es sind %d Fehler aufgetreten%s: Du musst eine Klasse angeben.target_class sollte ein Charaktervektor sein.assertive.base/inst/po/kr/0000755000176200001440000000000013021047322015171 5ustar liggesusersassertive.base/inst/po/kr/LC_MESSAGES/0000755000176200001440000000000013021047322016756 5ustar liggesusersassertive.base/inst/po/kr/LC_MESSAGES/R-assertive.base.mo0000644000176200001440000000577313021047322022444 0ustar liggesusers%pq/ )F]v(B5!Tv # "%"D$g3*!D2H#h " > KQ !  & - *2 ,] - * , ' $8 &]  . 8    %s and %s are not identical.%s cannot be coerced to any of these types: %s.%s cannot be coerced to type %s.%s has length 0.%s is not identical to FALSE.%s is not identical to NA.%s is not identical to TRUE.(showing the first %d)Coercing %s to class %s.Duplicated arguments:Only the first value of %s will be used.The length of value should be 1 or the length of x (%d) but is %d.The values of %s are all FALSE.The values of %s are all NA.The values of %s are all TRUE.The values of %s are never FALSE.The values of %s are never NA.The values of %s are never TRUE.The values of %s are not all FALSE.The values of %s are not all NA.The values of %s are not all TRUE.The values of %s are sometimes FALSE.The values of %s are sometimes NA.The values of %s are sometimes TRUE.There was %d failure%s: There were %d failures%s: You must provide a class.target_class should be a character vector.Project-Id-Version: assertive.base 0.0-2 Report-Msgid-Bugs-To: https://bitbucket.org/richierocks/assertive.base POT-Creation-Date: 2015-08-11 13:37 PO-Revision-Date: 2015-08-27 14:40+0300 Last-Translator: Sunkyu Choi Language-Team: LANGUAGE Language: kr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; %s 와 %s는 동일하지 않다.%s는 다른 어떤 타입들로 강요 받을 수 없습니다: %s.%s는 타입 %s로 강요 받을 수 없습니다.%s는 0 길이를 갖습니다.%s는 FALSE와 같지 않습니다.%s는 NA와 같지 않습니다.%s는 TRUE와 같지 않습니다.첫번째 %d 보기.%s를 클래스 %s로 강요.이중 인수:오직 첫번째 %s의 값만 사용 되어 질 것 입니다.값의 길이는 1 이거나 그 길이의 x (%d)이지만 %d는 아니다.%s의 값들은 FALSE 입니다.%s의 값들은 NA입니다.%s의 값들은 모두 TRUE 입니다.%s의 값들은 절대 FALSE가 아닙니다.%s의 값들은 절대 NA가 아닙니다.%s의 값들은 절대 TRUE가 아닙니다.%s의 값들이 모두 FALSE는 아닙니다.%s의 값들이 모두 NA는 아닙니다.%s의 값들이 모두 TRUE는 아닙니다.%s의 값들은 가끔 FALSE 입니다.%s의 값들은 가끔 NA 입니다.%s의 값들은 가끔 TRUE 입니다.%d 실패 %s: 당신은 클래스를 제공해야 합니다.타켓 클래스는 캐릭터 벡터이어야 합니다.assertive.base/inst/po/ru/0000755000176200001440000000000013021047322015203 5ustar liggesusersassertive.base/inst/po/ru/LC_MESSAGES/0000755000176200001440000000000013021047322016770 5ustar liggesusersassertive.base/inst/po/ru/LC_MESSAGES/R-assertive.base.mo0000644000176200001440000000711013021047322022441 0ustar liggesusers%pq/ )F]v(B5!Tv # "%"D$g3*6_(@! & "G 'j . R h 7} 4 6 C! @e B < 9& ;` > ; = zU / G   %s and %s are not identical.%s cannot be coerced to any of these types: %s.%s cannot be coerced to type %s.%s has length 0.%s is not identical to FALSE.%s is not identical to NA.%s is not identical to TRUE.(showing the first %d)Coercing %s to class %s.Duplicated arguments:Only the first value of %s will be used.The length of value should be 1 or the length of x (%d) but is %d.The values of %s are all FALSE.The values of %s are all NA.The values of %s are all TRUE.The values of %s are never FALSE.The values of %s are never NA.The values of %s are never TRUE.The values of %s are not all FALSE.The values of %s are not all NA.The values of %s are not all TRUE.The values of %s are sometimes FALSE.The values of %s are sometimes NA.The values of %s are sometimes TRUE.There was %d failure%s: There were %d failures%s: You must provide a class.target_class should be a character vector.Project-Id-Version: assertive.base Report-Msgid-Bugs-To: https://bitbucket.org/richierocks/assertive.base POT-Creation-Date: 2015-08-11 13:37 PO-Revision-Date: 2015-10-05 14:45+0300 Last-Translator: Anton Antonov Language-Team: LANGUAGE Language: ru MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); %s и %s не являются идентичными.%s не может быть приведён ни к одному из этих типов: %s.%s не может быть приведён к классу %s.%s имеет длину 0.%s не идентичен FALSE.%s не идентичен NA.%s не идентичен TRUE.(показаны первые %d)Приводим %s к классу %s.Повторяющиеся аргументы:Будет использовано только первое значение %s.Длина value должна быть равна 1 или длине x (%d), но она равна %d.Все из значений %s являются FALSE.Все из значений %s являются NA.Все из значений %s являются TRUE.Ни одно из значений %s не является FALSE.Ни одно из значений %s не является NA.Ни одно из значений %s не является TRUE.Не все из значений %s являются FALSE.Не все из значений %s являются NA.Не все из значений %s являются TRUE.Некоторые значения %s являются FALSE.Некоторые значения %s являются NA.Некоторые значения %s являются TRUE.Обнаружена %d ошибка%s: Обнаружено %d ошибки%s: Обнаружено %d ошибок%s: Необходимо указать класс.target_class должен быть текстовым вектором.assertive.base/inst/po/uk/0000755000176200001440000000000013021047322015174 5ustar liggesusersassertive.base/inst/po/uk/LC_MESSAGES/0000755000176200001440000000000013021047322016761 5ustar liggesusersassertive.base/inst/po/uk/LC_MESSAGES/R-assertive.base.mo0000644000176200001440000000661113021047322022437 0ustar liggesusers%pq/ )F]v(B5!Tv # "%"D$g3*(X7x1#." &Q ,x ( L \ .x  & @ ,- <Z 9 # / 9% %_ . V . N:    %s and %s are not identical.%s cannot be coerced to any of these types: %s.%s cannot be coerced to type %s.%s has length 0.%s is not identical to FALSE.%s is not identical to NA.%s is not identical to TRUE.(showing the first %d)Coercing %s to class %s.Duplicated arguments:Only the first value of %s will be used.The length of value should be 1 or the length of x (%d) but is %d.The values of %s are all FALSE.The values of %s are all NA.The values of %s are all TRUE.The values of %s are never FALSE.The values of %s are never NA.The values of %s are never TRUE.The values of %s are not all FALSE.The values of %s are not all NA.The values of %s are not all TRUE.The values of %s are sometimes FALSE.The values of %s are sometimes NA.The values of %s are sometimes TRUE.There was %d failure%s: There were %d failures%s: You must provide a class.target_class should be a character vector.Project-Id-Version: assertive.base 0.0-2 Report-Msgid-Bugs-To: https://bitbucket.org/richierocks/assertive.base POT-Creation-Date: 2015-08-27 14:40 PO-Revision-Date: 2015-08-17 11:46+0800 Last-Translator: Ivanka Skakun Language-Team: www.coupofy.com Language: uk MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); %s і %s не є ідентичними.%s не можна перевести до будь-якого з цих типів: %s.%s не можна перевести до типу %s.%s має довжину 0.%s не збігається з ПОМИЛКОЮ.%s не збігається з NA.%s не збігається з ВІРНИМ.(показувати перший %d)Приведення %s до класу %s.Дубльовані аргументи:Тільки перше значення %s буде використане.Довжина valueмає дорівнювати 1 або довжині x (%d) але %d.Значення %s всі ПОМИЛКОВІ.Значення %s всі NAЗначення %s всі ВІРНІ.Значення %s ніколи не є ПОМИЛКОВИМИ.Значення %s ніколи не є NA.Значення %s ніколи не є ІСТИННИМИ.Значення %s не завжди ПОМИЛКОВІ.Значення %s не всі NA.Значення %s не всі ІСТИННІ.Значення %s іноді є ПОМИЛКОВИМИ.Значення %s іноді є NA.Значення %s іноді ІСТИННІ.Тут %d помилка%s: Тут %d помилок%s: Тут %d помилок%s: Ви повинні показати клас.target_class має бути вектором орієнтації знаку.assertive.base/tests/0000755000176200001440000000000013021047322014324 5ustar liggesusersassertive.base/tests/testthat.R0000644000176200001440000000011013021047322016277 0ustar liggesuserslibrary(testthat) library(assertive.base) test_check("assertive.base") assertive.base/tests/testthat/0000755000176200001440000000000013031315273016170 5ustar liggesusersassertive.base/tests/testthat/test-internal.R0000644000176200001440000000033313021047322021077 0ustar liggesuserstest_that( "print_and_capture returns a string of the captured output.", { expected <- " x\n1 a\n2 b\n3 c" actual <- print_and_capture(data.frame(x = letters[1:3])) expect_equal(actual, expected) } ) assertive.base/tests/testthat/test-utils.R0000644000176200001440000001524313021047322020431 0ustar liggesuserstest_that( "to_names with a character vector returns unquoted character names", { x <- c("abc", "", "NA", NA) expected <- x actual <- to_names(x) expect_equal(actual, expected) } ) test_that( "to_names with a (double) numeric vector returns 17 sig fig 'g' formatting", { x <- with(.Machine, c(1 + double.eps, double.xmax, double.xmin, NaN, -Inf, NA)) expected <- ifelse(is.na(x), NA_real_, sprintf("%.17g", x)) actual <- to_names(x) expect_equal(actual, expected) } ) test_that( "to_names with a complex vector returns returns 17 sig fig 'g' formatting for each component", { x <- with(.Machine, c(1 + double.eps, double.xmax, double.xmin, NaN, -Inf, NA)) * (1 + 1i) expected <- ifelse(is.na(x), NA_complex_, sprintf("%.17g+%.17gi", Re(x), Im(x))) actual <- to_names(x) expect_equal(actual, expected) } ) test_that( "to_names with a list input returns deparsed object", { x <- list(NA, 1 + .Machine$double.eps, "abc", list(Inf, list("def", NA))) expected <- as.character(x) actual <- to_names(x) expect_equal(actual, expected) } ) test_that("test.coerce_to.numeric_vector_to_data_frame.returns_data_frame", { x <- 1:5 expected <- data.frame(x = x) expect_equal(suppressWarnings(coerce_to(x, "data.frame")), expected) expect_warning(coerce_to(x, "data.frame")) }) test_that( "dont_stop with multiple errors and warnings successfully runs", { expected <- list( 'stop("If you don\'t stop;")' = simpleError("If you don't stop;"), 'warning("Someone\'s gonna find yo\' ass dead (this is a warning)")' = simpleWarning("Someone's gonna find yo' ass dead (this is a warning)"), 'warning("Someone\'s gonna poison your food (this is a warning)")' = simpleWarning("Someone's gonna poison your food (this is a warning)"), 'stop("Don\'t stop, no no, you\'ll be sorry")' = simpleError("Don\'t stop, no no, you\'ll be sorry"), 'stop("Don\'t stop, thinking about tomorrow")' = simpleError("Don't stop, thinking about tomorrow"), 'stop("Don\'t stop, it\'ll soon be here")' = simpleError("Don't stop, it'll soon be here") ) actual <- dont_stop( { # With apologies to Lil' Kim stop("If you don't stop;") warning("Someone's gonna find yo' ass dead (this is a warning)") warning("Someone's gonna poison your food (this is a warning)") stop("Don't stop, no no, you'll be sorry") # Bonus errors for David, Jenny and other Fleetwood Mac fans stop("Don't stop, thinking about tomorrow") stop("Don't stop, it'll soon be here") } ) expect_identical(actual, expected) } ) test_that( "dont_stop works with objects that don't deparse to a single string", { expected <- list("function() {}" = function() {}) actual <- dont_stop( # deparse returns a character vector function() {} ) # don't test for identicality due to function environment expect_equal(actual, expected) } ) test_that( "get_name_in_parent works when object exists outside of function", { outside <- 1 f <- function(inside) { get_name_in_parent(inside) } expected <- "outside" actual <- f(outside) expect_identical(actual, expected) } ) test_that( "get_name_in_parent works when object doesn't exist outside of function", { f <- function(inside) { get_name_in_parent(inside) } expected <- "1" actual <- f(1) expect_identical(actual, expected) } ) test_that( "get_name_in_parent works with percent inside function call, escape_percent = TRUE", { f <- function(inside) { get_name_in_parent(inside) } expected <- "1 %%>%% exp" actual <- f(1 %>% exp) expect_identical(actual, expected) } ) test_that( "get_name_in_parent works with percent inside function call, escape_percent = FALSE", { f <- function(inside) { get_name_in_parent(inside, FALSE) } expected <- "1 %>% exp" actual <- f(1 %>% exp) expect_identical(actual, expected) } ) test_that( "merge_dots_with_list takes duplicates from ...", { expected <- list(x = 1, y = "b", z = TRUE) expect_warning( actual <- merge_dots_with_list(x = 1, y = "b", l = list(y = "c", z = TRUE)), "Duplicated arguments: y" ) expect_equal(actual, expected) } ) test_that( "merge_dots_with_list throws an error with unnamed arguments and allow_unnamed_elements = FALSE", { expect_error( merge_dots_with_list(x = 1, "b", l = list(y = "c")), "There are unnamed elements in x or y, but allow_unnamed_elements = FALSE" ) } ) test_that( "merge_dots_with_list works with unnamed arguments and allow_unnamed_elements = TRUE", { expected <- list(x = 1, y = "c", "b") actual <- merge_dots_with_list( x = 1, "b", l = list(y = "c"), allow_unnamed_elements = TRUE ) expect_equal(actual, expected) } ) test_that( "merge_dots_with_list works with no list argument", { expected <- list(x = 1, y = "b") actual <- merge_dots_with_list(x = 1, y = "b") expect_equal(actual, expected) } ) test_that( "test.parenthesise.character_input.returns_parenthesised_input", { x <- "foo" types <- eval(formals(parenthesise)$type) actual <- vapply( types, function(type) parenthesise(x, type), character(1), USE.NAMES = FALSE ) expected <- c( "(foo)", "[foo]", "{foo}", "", "\u3008foo\u3009", "- foo -", "\u2013 foo \u2013", "\u2014foo\u2014", ", foo, " ) expect_identical(actual, expected) } ) test_that("test.use_first.a_list_double_indexing.returns_contents_of_first_element", { x <- as.list(letters) expected <- "a" expect_identical(expected, suppressWarnings(use_first(x))) expect_warning(use_first(x)) }) test_that("test.use_first.a_list_single_indexing.returns_first_element", { x <- as.list(letters) expected <- list("a") expect_identical(expected, suppressWarnings(use_first(x, "["))) expect_warning(use_first(x, "[")) }) test_that("test.use_first.a_scalar.returns_x", { x <- "a" expected <- x expect_identical(expected, use_first(x)) }) test_that("test.use_first.a_vector_double_indexing.returns_first_element", { x <- letters expected <- "a" expect_identical(expected, suppressWarnings(use_first(x))) expect_warning(use_first(x)) }) test_that("test.use_first.a_vector_single_indexing.returns_first_element", { x <- letters expected <- "a" expect_identical(expected, suppressWarnings(use_first(x, "["))) expect_warning(use_first(x, "[")) }) test_that("test.use_first.empty.throws_error", { x <- NULL expect_error(use_first(x)) }) assertive.base/tests/testthat/test-is-identical-to-true-false-na.R0000644000176200001440000000342013021047322024711 0ustar liggesuserstest_that( "test is_identical_to_false with false returns true", { expect_true(is_identical_to_false(FALSE)) } ) test_that( "test is_identical_to_false with a false vector returns false", { expect_false(is_identical_to_false(logical(2))) } ) test_that( "test is_identical_to_false with NA returns false", { expect_false(is_identical_to_false(NA)) } ) test_that( "test is_identical_to_false with false + attr returns allow_attributes", { x <- c(truth = FALSE) expect_false(is_identical_to_false(x)) expect_true(is_identical_to_false(x, allow_attributes = TRUE)) } ) test_that( "test is_identical_to_na with TRUE returns false", { expect_false(is_identical_to_na(TRUE)) } ) test_that( "test is_identical_to_na with NA returns true", { expect_true(is_identical_to_na(NA)) } ) test_that( "test is_identical_to_na with an NA vector.returns false", { expect_false(is_identical_to_na(rep.int(NA, 2))) } ) test_that( "test is_identical_to_na NA + attr returns allow_attributes", { x <- c(truth = NA) expect_false(is_identical_to_na(x)) expect_true(is_identical_to_na(x, allow_attributes = TRUE)) } ) test_that( "test is_identical_to_true NA returns false", { expect_false(is_identical_to_true(NA)) } ) test_that( "test is_identical_to_true with true returns true", { expect_true(is_identical_to_true(TRUE)) } ) test_that( "test is_identical_to_true with a true vector returns false", { expect_false(is_identical_to_true(rep.int(TRUE, 2))) } ) test_that( "test is_identical_to_true true + attr returns allow_attributes", { x <- c(truth = TRUE) expect_false(is_identical_to_true(x)) expect_true(is_identical_to_true(x, allow_attributes = TRUE)) } ) assertive.base/tests/testthat/test-are-identical.R0000644000176200001440000000044113021047322021764 0ustar liggesuserstest_that( "test are_identical with identical objects returns true", { expect_true(are_identical((1:3) ^ 3, c(1, 8, 27))) } ) test_that( "test are_identical with non-identical objects returns false", { expect_false(are_identical((1:3) ^ 3, c(1, 8, 27.0000001))) } ) assertive.base/tests/testthat/test-is-true-false-na.R0000644000176200001440000001064113021047322022342 0ustar liggesuserstest_that( "test is_false with a logical input returns true when false", { x <- c(TRUE, FALSE, NA) expected <- c(FALSE, TRUE, FALSE) actual <- assertive.base::is_false(x) expect_equal(strip_attributes(actual), expected) expect_named(actual) expect_equal(cause(actual), noquote(c("true", "", "missing"))) } ) test_that( "test is_na with a logical input returns true when NA", { x <- c(TRUE, FALSE, NA) expected <- c(FALSE, FALSE, TRUE) actual <- is_na(x) expect_equal(strip_attributes(actual), expected) expect_named(actual) expect_equal(cause(actual), noquote(c("true", "false", ""))) } ) test_that( "test is_na with a character input and no coercion returns true when not NA", { x <- c("T", "F", "0", "1", "a", "NA", NA) expected <- rep.int(c(FALSE, TRUE), c(6, 1)) actual <- is_na(x, coerce_to_logical = FALSE) expect_equal(strip_attributes(actual), expected) expect_named(actual) expect_equal( cause(actual), noquote(rep.int(c("not missing", ""), c(6, 1))) ) } ) test_that( "test is_na with a character input and coercion returns true when not 'T' or 'F'", { x <- c("T", "F", "0", "1", "a", "NA", NA) expected <- rep.int(c(FALSE, TRUE), c(2, 5)) expect_warning( actual <- is_na(x, coerce_to_logical = TRUE), "Coercing x to class .logical.\\." ) expect_equal(strip_attributes(actual), expected) expect_named(actual) expect_equal( cause(actual), noquote(rep.int(c("true", "false", ""), c(1, 1, 5))) ) } ) test_that( "test is_na with a complex input and no coercion returns true when not NA", { x <- c(0, 1, 1i, 1 + 1i, NA) expected <- rep.int(c(FALSE, TRUE), c(4, 1)) actual <- is_na(x, coerce_to_logical = FALSE) expect_equal(strip_attributes(actual), expected) expect_named(actual) expect_equal( cause(actual), noquote(rep.int(c("not missing", ""), c(4, 1))) ) } ) test_that( "test is_na with a complex input and coercion returns true when not NA", { x <- c(0, 1, 1i, 1 + 1i, NA) expected <- rep.int(c(FALSE, TRUE), c(4, 1)) expect_warning( actual <- is_na(x, coerce_to_logical = TRUE), "Coercing x to class .logical.\\." ) expect_equal(strip_attributes(actual), expected) expect_named(actual) expect_equal( cause(actual), noquote(rep.int(c("false", "true", ""), c(1, 3, 1))) ) } ) test_that( "test is_na with a list input and no coercion returns true when elements contain a single NA", { x <- list(NA, TRUE, FALSE, c(TRUE, FALSE, NA)) expected <- rep.int(c(TRUE, FALSE), c(1, 3)) actual <- is_na(x, coerce_to_logical = FALSE) expect_equal(strip_attributes(actual), expected) expect_named(actual) expect_equal( cause(actual), noquote(rep.int(c("", "not missing"), c(1, 3))) ) } ) test_that( "test is_na with a list input and coercion throw an error", { x <- list(NA, TRUE, FALSE, c(TRUE, FALSE, NA)) expect_error( is_na(x, coerce_to_logical = TRUE), "x cannot be coerced to any of these types: .logical.\\." ) } ) test_that( "test is_not_false with a logical input returns true when not false", { x <- c(TRUE, FALSE, NA) expected <- c(TRUE, FALSE, TRUE) actual <- is_not_false(x) expect_equal(strip_attributes(actual), expected) expect_named(actual) expect_equal(cause(actual), noquote(c("", "false", ""))) } ) test_that( "test is_not_na with a logical input returns true when not NA", { x <- c(TRUE, FALSE, NA) expected <- c(TRUE, TRUE, FALSE) actual <- is_not_na(x) expect_equal(strip_attributes(actual), expected) expect_named(actual) expect_equal(cause(actual), noquote(c("", "", "missing"))) } ) test_that( "test is_not_true with a logical input returns true when not true", { x <- c(TRUE, FALSE, NA) expected <- c(FALSE, TRUE, TRUE) actual <- is_not_true(x) expect_equal(strip_attributes(actual), expected) expect_named(actual) expect_equal(cause(actual), noquote(c("true", "", ""))) } ) test_that( "test is_true with a logical input returns true when true", { x <- c(TRUE, FALSE, NA) expected <- c(TRUE, FALSE, FALSE) actual <- assertive.base::is_true(x) expect_equal(strip_attributes(actual), expected) expect_named(actual) expect_equal(cause(actual), noquote(c("", "false", "missing"))) } ) assertive.base/NAMESPACE0000644000176200001440000000272713021047322014411 0ustar liggesusers# Generated by roxygen2: do not edit by hand S3method(merge,list) S3method(print,scalar_with_cause) S3method(print,vector_with_cause) export("cause<-") export(are_identical) export(are_identical_legacy) export(assert_all_are_false) export(assert_all_are_identical_legacy) export(assert_all_are_na) export(assert_all_are_not_false) export(assert_all_are_not_na) export(assert_all_are_not_true) export(assert_all_are_true) export(assert_any_are_false) export(assert_any_are_identical_legacy) export(assert_any_are_na) export(assert_any_are_not_false) export(assert_any_are_not_na) export(assert_any_are_not_true) export(assert_any_are_true) export(assert_are_identical) export(assert_engine) export(assert_is_identical_to_false) export(assert_is_identical_to_na) export(assert_is_identical_to_true) export(assertionError) export(assertionMessage) export(assertionWarning) export(bapply) export(call_and_name) export(cause) export(coerce_to) export(dont_stop) export(false) export(get_name_in_parent) export(is2) export(is_false) export(is_identical_to_false) export(is_identical_to_na) export(is_identical_to_true) export(is_na) export(is_not_false) export(is_not_na) export(is_not_true) export(is_true) export(merge_dots_with_list) export(na) export(parenthesise) export(parenthesize) export(print_and_capture) export(safe_deparse) export(set_cause) export(strip_attributes) export(use_first) importFrom(methods,as) importFrom(methods,is) importFrom(utils,capture.output) importFrom(utils,head) assertive.base/NEWS0000644000176200001440000000234713027011653013673 0ustar liggesusers0.0-7 Added safe_deparse fn. Exported print_and_capture. Some moderate performance enhancements for vectorized predicates. Better feedback msg for is2 with fn and S4 inputs, and with vectorized class arg. Some more examples. 0.0-6 assertionConditions now include the name of the predicate that caused them. This predicate name is given in assertion failure messages. Byte compilation turned on (for slight performance gains). Numeric/complex values now reported with higher accuracy (17 sig digits) in vector error msgs. 0.0-5 Regression fixes to merge_dots_with_list, merge.list. Pipes inside the assertion now work (very slight breaking change to get_name_in_parent). 0.0-4 Many minor fixes and documentation updates. dont_stop can now run past multiple errors (slightly breaking change). merge.list and merge_dots_with_list deal with unnamed arguments. 0.0-3 Reverted behaviour of is_na, is_not_na to prevent breaks in dependencies. 0.0-2 Added Dutch, French, German, Greek, Hungarian, Korean, Russian, Swedish, Turkish, and Ukranian translations. Added assert_are_identical for comparing two objects. More README. 0.0-1 Content extracted from assertive 0.2-7, and tidied. assertive.base/R/0000755000176200001440000000000013021047322013363 5ustar liggesusersassertive.base/R/utils.R0000644000176200001440000003170613027011527014661 0ustar liggesusers#' Wrapper to vapply that returns booleans #' #' Wrapper to \code{\link{vapply}} for functions that return a boolean (logical #' scalar) value. #' #' @param x A vector (atomic or list). #' @param predicate A predicate (function that returns a bool) to apply. #' elementwise to \code{x}. #' @param ... Passed to \code{vapply}. #' @return A logical vector. #' @note \code{USE.NAMES} is set to \code{TRUE} #' @seealso \code{\link{vapply}}. #' @export bapply <- function(x, predicate, ...) { vapply(x, predicate, logical(1L), ..., USE.NAMES = TRUE) } #' Call a function, and give the result names. #' #' Calls a function, and names the result with the first argument. #' #' @param fn A function to call. See note below. #' @param x The first input to \code{fn}. #' @param ... Optional additional inputs to \code{fn}. #' @return The result of \code{fn(x, ...)}, with names given by the #' argument \code{x}. #' @note The function, \code{fn}, should return an object with the #' same length as the input \code{x}. For speed and simplicity, this #' isn't checked; it is up to the developer of the assertion to make #' sure that this condition holds. #' @examples #' call_and_name(is.finite, c(1, Inf, NA)) #' #' # Make sure that the output is the same size as the input. #' # Don't do this: #' dont_stop(call_and_name(isTRUE, list(TRUE, FALSE, NA))) #' # Do this instead: #' call_and_name( #' Vectorize(isTRUE, SIMPLIFY = FALSE), #' list(TRUE, FALSE, NA) #' ) #' @seealso \code{\link{cause}} and \code{\link{na}}. #' @export call_and_name <- function(fn, x, ...) { y <- fn(x, ...) dim(y) <- dim(x) names(y) <- to_names(x) y } # Lots of issues about how best to generate names! # Original behaviour was to use as.character everywhere, but high precision # wanted for numbers, so behaviour was changed to use format. This breaks # lots of tests. Here are the requirements. # - For atomic vectors, NA values should be given a missing name, not "NA" # -> Can't use deparse, format # - Numbers should be given to high precision (inc complex) # -> Can't use as.character on numbers # - Character vectors shouldn't be quoted # -> Can't use deparse # - Recursive variables should just be a deparse, but exact details not too fussy (too rare) to_names <- function(x) { # special handling for double, complex only # is.vector to prevent matching to POSIXct if(is.double(x) && is.vector(x)) { ifelse(is.na(x), NA_real_, sprintf("%.17g", x)) } else if(is.complex(x)) { ifelse(is.na(x), NA_complex_, sprintf("%.17g+%.17gi", Re(x), Im(x))) } else { as.character(x) } } #' Run code without stopping #' #' Runs code without stopping for warnings or errors. #' @param expr Code to execute. #' @return A list containing the results of evaluating each call in \code{expr}. #' @note This function is dangerous, since it overrides warnings and errors. #' Its intended use is for documenting examples of warnings and errors. #' @seealso \code{\link[base]{warning}} and \code{\link[base]{stop}} for #' generating warnings and errors respectively; \code{\link[base]{try}} and #' \code{\link[base]{conditions}} for handling them. #' @examples #' dont_stop({ #' warning("a warning") #' x <- 1 #' stop("an error") #' y <- sqrt(exp(x + 1)) #' assert_is_identical_to_true(y) #' y > 0 #' }) #' @export dont_stop <- function(expr) { this_env <- sys.frame(sys.nframe()) # Split the expression up into a list of calls subbed_expr <- substitute(expr, this_env) # Temporarily wrap expr in braces, if it isn't already brace <- quote(`{`) if(!identical(subbed_expr[[1L]], brace)) { subbed_expr <- c(brace, subbed_expr) } call_list <- as.list(subbed_expr)[-1L] # -1 to ignore brace again names(call_list) <- vapply(call_list, safe_deparse, character(1)) handler <- function(e) { e["call"] <- list(NULL) # Override the condition's call e } # Evaluate each one in turn lapply( call_list, function(calli) { tryCatch(eval(calli, this_env), warning = handler, error = handler) } ) } #' Get the name of a variable in the parent frame #' #' Gets the name of the input in the parent frame. #' #' @param x Variable to get the name of. #' @param escape_percent Logical. If \code{TRUE}, percent signs are doubled, #' making the value suitable for use with \code{sprintf} (and hence by #' \code{false} and \code{na}). #' @return A string giving the name of the input in the parent frame. #' @examples #' outside <- 1 #' f <- function(inside, escape_percent) #' { #' get_name_in_parent(inside, escape_percent) #' } #' f(outside, TRUE) #' f('10%', TRUE) #' f('10%', FALSE) #' @export get_name_in_parent <- function(x, escape_percent = TRUE) { xname <- safe_deparse( do.call( substitute, list(substitute(x), parent.frame()) ) ) if(escape_percent) { xname <- gsub("%", "%%", xname) } xname } #' Merge two lists #' #' Merges two lists, taking duplicated elements from the first list. #' @param x A list. #' @param y A list. #' @param warn_on_dupes \code{TRUE} or \code{FALSE}. Should a warning be given #' if both \code{x} and \code{y} have elements with the same name. See note. #' @param allow_unnamed_elements \code{TRUE} or \code{FALSE}. Should unnamed #' elements be allowed? #' @param ... Ignored. #' @return A list, combining elements from \code{x} and \code{y}. #' @note In the event of elements that are duplicated between \code{x} and #' \code{y}, the versions from \code{x} are used. #' @seealso \code{\link{merge_dots_with_list}}, \code{\link[base]{merge}} #' @examples #' merge( #' list(foo = 1, bar = 2, baz = 3), #' list(foo = 4, baz = 5, quux = 6) #' ) #' #' # If unnamed elements are allowed, they are included at the end #' merge( #' list("a", foo = 1, "b", bar = 2, baz = 3, "c"), #' list(foo = 4, "a", baz = 5, "b", quux = 6, "d"), #' allow_unnamed_elements = TRUE #' ) #' @method merge list #' @export merge.list <- function(x, y, warn_on_dupes = TRUE, allow_unnamed_elements = FALSE, ...) { if(length(y) == 0) return(x) y <- coerce_to(y, "list", get_name_in_parent(y)) # Get elements without names x_is_unnamed <- names_never_null(x) == "" y_is_unnamed <- names_never_null(y) == "" if(allow_unnamed_elements) { unnamed_values <- c(x[x_is_unnamed], y[y_is_unnamed]) x <- x[!x_is_unnamed] y <- y[!y_is_unnamed] } else # !allow_unnamed_elements { if(any(x_is_unnamed) || any(y_is_unnamed)) { stop("There are unnamed elements in x or y, but allow_unnamed_elements = FALSE.") } } # Now deal with named elements all_names <- c(names(x), names(y)) all_values <- c(x, y) if(anyDuplicated(all_names) > 0) { if(warn_on_dupes) { warning( "Duplicated arguments: ", toString(all_names[duplicated(all_names)]) ) } all_values <- all_values[!duplicated(all_names)] } if(allow_unnamed_elements) { all_values <- c(all_values, unnamed_values) } all_values } #' Merge ellipsis args with a list. #' #' Merges variable length ellipsis arguments to a function with a list argument. #' #' @param ... Some inputs. #' @param l A list. #' @param warn_on_dupes \code{TRUE} or \code{FALSE}. Should a warning be given #' if both \code{x} and \code{y} have elements with the same name. See note. #' @param allow_unnamed_elements \code{TRUE} or \code{FALSE}. Should unnamed #' elements be allowed? #' @note If any arguments are present in both the \code{...} and \code{l} #' arguments, the \code{...} version takes preference, and a warning is thrown. #' @return A list containing the merged inputs. #' @seealso \code{\link{merge.list}}, \code{\link[base]{merge}} #' @examples #' merge_dots_with_list( #' foo = 1, #' bar = 2, #' baz = 3, #' l = list(foo = 4, baz = 5, quux = 6) #' ) #' @export merge_dots_with_list <- function(..., l = list(), warn_on_dupes = TRUE, allow_unnamed_elements = FALSE) { dots <- list(...) l <- coerce_to(l, "list", get_name_in_parent(l)) merge(dots, l, warn_on_dupes = warn_on_dupes, allow_unnamed_elements = allow_unnamed_elements) } #' Wrap a string in brackets #' #' Parenthesise a character vector by wrapping elements in brackets, #' dashes or commas. #' @param x Character vector to wrap in parenthenses. #' @param type String naming the type of parenthesis. #' @return A character vector of the input wrapped in parentheses. #' @note English grammar terminology is awfully confusing. The verb 'to #' parenthesise' means to wrap a phrase in brackets or dashes or commas, #' thus denoting it as supplementary material that could be left out. #' A 'parenthesis' as a noun is often used as a synonym for a round bracket. #' @seealso \code{\link[base]{sQuote}} #' @examples #' paste("There were three", parenthesise(3), "mice in the experiment.") #' paste( #' "I love parmos", #' parenthesise("Teesside's finest culinary invention", "en_dashes"), #' "but they are sure to give me heart disease." #' ) #' parenthesise(letters[1:5], "curly") #' paste0( #' "The R language", #' parenthesise("an offshoot of S and Scheme", "commas"), #' "is quite good for data analysis." #' ) #' @export parenthesize <- function(x, type = c("round_brackets", "square_brackets", "curly_brackets", "angle_brackets", "chevrons", "hyphens", "en_dashes", "em_dashes", "commas")) { type <- match.arg(type) x <- coerce_to(x, "character", get_name_in_parent(x)) before <- switch( type, round_brackets = "(", square_brackets = "[", curly_brackets = "{", angle_brackets = "<", chevrons = "\u3008", hyphens = "- ", en_dashes = "\u2013 ", em_dashes = "\u2014", commas = ", " ) after <- switch( type, round_brackets = ")", square_brackets = "]", curly_brackets = "}", angle_brackets = ">", chevrons = "\u3009", hyphens = " -", en_dashes = " \u2013", em_dashes = "\u2014", commas = ", " ) paste0(before, x, after) } #' @rdname parenthesize #' @export parenthesise <- parenthesize #' Print a variable and capture the output #' #' Prints a variable and captures the output, collapsing the value to a single #' string. #' @param x A variable. #' @param ... Arguments passed to \code{\link[base]{print}} methods. #' @return A string. #' @seealso \code{\link[base]{print}}, \code{\link[utils]{capture.output}} #' @examples #' # This is useful for including data frames in warnings or errors #' message("This is the sleep dataset:\n", print_and_capture(sleep)) #' @importFrom utils capture.output #' @export print_and_capture <- function(x, ...) { # call to enc2utf8 is a workaround for # https://bugs.r-project.org/bugzilla3/show_bug.cgi?id=16539 enc2utf8(paste(capture.output(print(x, ...)), collapse = "\n")) } #' Safe version of deparse #' #' A version of \code{\link[base]{deparse}} that is guaranteed to always return #' a single string. #' @param expr Any R expression. #' @param ... Passed to \code{\link[base]{deparse}}. #' @return A character vector or length one. #' @note By default the RStudio IDE truncates output in the console at 1000 #' characters. Consequently, if you use \code{safe_deparse} on large or complex #' objects, you won't see the full value. You can change the setting using #' Tools -> "Global Options..." -> Code -> Display -> Console -> "Limit length #' of lines displayed in console to:". #' @examples #' # safe_deparse only differs from deparse when the deparse string is longer #' # than width.cutoff #' deparse(CO2, width.cutoff = 500L) # has length 6 #' safe_deparse(CO2) # has length 1 #' @export safe_deparse <- function(expr, ...) { paste0(deparse(expr, width.cutoff = 500L, ...), collapse = "") } #' Strip all attributes from a variable #' #' Strips all the attributes from a variable. #' #' @param x Input to strip. #' @return \code{x}, without attributes. #' @examples #' x <- structure(c(foo = 1, bar = 2), some_attr = 3) #' x2 <- strip_attributes(x) #' attributes(x) #' attributes(x2) #' @export strip_attributes <- function(x) { attributes(x) <- NULL x } #' Only use the first element of a vector #' #' If the input is not scalar, then only the first element is returned, #' with a warning. #' #' @param x Input that should be scalar. #' @param indexer Either double indexing, \code{"[["} (the default) or #' single indexing \code{"["}. #' @param .xname Not intended to be used directly. #' @return If \code{x} is scalar, it is returned unchanged, otherwise #' only the first element is returned, with a warning. #' @examples #' dont_stop(use_first(1:5)) #' @export use_first <- function(x, indexer = c("[[", "["), .xname = get_name_in_parent(x)) { len_x <- length(x) # Can't use assert_is_non_empty, is_scalar in next lines because those # functions calls this one. if(len_x == 0L) { stop(sprintf("%s has length 0.", .xname)) } if(len_x == 1L) { return(x) } indexer <- match.fun(match.arg(indexer)) x1 <- indexer(x, 1L) warning( sprintf("Only the first value of %s (= %s) will be used.", .xname, as.character(x1)), call. = FALSE ) x1 } assertive.base/R/is-true-false-na.R0000644000176200001440000000350313021047322016563 0ustar liggesusers#' @rdname Truth #' @export is_false <- function(x, .xname = get_name_in_parent(x)) { x <- coerce_to(x, "logical", .xname) call_and_name( function(x) { is_na_x <- is.na(x) ok <- !(x | is_na_x) # same as !x & !is_na_x set_cause(ok, ifelse(is_na_x, "missing", "true")) }, x ) } #' @rdname Truth #' @export is_na <- function(x, coerce_to_logical = FALSE, .xname = get_name_in_parent(x)) { call_and_name( function(x) { if(coerce_to_logical) { x <- coerce_to(x, "logical", .xname) } ok <- is.na(x) if(is.logical(x)) { set_cause(ok, ifelse(x, "true", "false")) } else { set_cause(ok, "not missing") } }, x ) } #' @rdname Truth #' @export is_not_na <- function(x, coerce_to_logical = FALSE, .xname = get_name_in_parent(x)) { call_and_name( function(x) { if(coerce_to_logical) { x <- coerce_to(x, "logical", .xname) } ok <- !is.na(x) set_cause(ok, "missing") }, x ) } #' @rdname Truth #' @export is_not_false <- function(x, .xname = get_name_in_parent(x)) { x <- coerce_to(x, "logical", get_name_in_parent(x)) call_and_name( function(x) { ok <- x | is.na(x) set_cause(ok, "false") }, x ) } #' @rdname Truth #' @export is_not_true <- function(x, .xname = get_name_in_parent(x)) { x <- coerce_to(x, "logical", .xname) call_and_name( function(x) { ok <- !x | is.na(x) set_cause(ok, "true") }, x ) } #' @rdname Truth #' @export is_true <- function(x, .xname = get_name_in_parent(x)) { x <- coerce_to(x, "logical", .xname) call_and_name( function(x) { is_na_x <- is.na(x) ok <- x & !is_na_x set_cause(ok, ifelse(is_na_x, "missing", "false")) }, x ) } assertive.base/R/cause.R0000644000176200001440000001131413021047322014606 0ustar liggesusers#' Get or set the \code{"cause"} attribute #' #' Gets or sets the \code{"cause"} (of failure) attribute of a variable. #' #' @param x Any variable. #' @param value Passed to \code{gettextf} and stored in the \code{"cause"} #' attribute. #' @return The get method returns the \code{"cause"} attribute. #' @seealso \code{\link{set_cause}} #' @examples #' # Scalar case #' yn <- is_identical_to_true(FALSE) #' cause(yn) #' #' # Vector case #' yn <- is_true(c(TRUE, FALSE, NA)) #' cause(yn) #' @export cause <- function(x) { y <- attr(x, "cause") if(is.null(y)) { return(noquote(character(length(x)))) } y } #' @rdname cause #' @export `cause<-` <- function(x, value) { # Can't use is_scalar here due to dependency on this if(length(value) != 1 && length(value) != length(x)) { stop( sprintf( "The length of value should be 1 or the length of x (%d) but is %d.", length(x), length(value) ) ) } attr(x, "cause") <- noquote(as.character(value)) x } #' Set a cause and return the input #' #' Sets the cause attribute of an object and returns that object. #' @param x A variable. #' @param false_value A character vector to set the cause to, where \code{x} is #' \code{FALSE}. #' @param missing_value A character vector to set the cause to, where \code{x} is #' \code{NA}. #' @details If \code{x} is \code{TRUE} everywhere, this returns the input #' without setting a cause. Otherwise, the cause is an empty string where #' \code{x} is \code{TRUE}, \code{false_value} where it is \code{FALSE}, and #' \code{missing_value} where it is \code{NA}. #' @return \code{x}, with a new cause attribute. #' @seealso \code{\link{cause}}, \code{\link[stats]{setNames}} #' @export set_cause <- function(x, false_value, missing_value = "missing") { if(!anyNA(x) && all(x, na.rm = TRUE)) # fast version of all(!is.na(x) & x) { return(x) } is_na_x <- is.na(x) len_x <- length(x) # TRUEs cause_value <- character(len_x) # NAs if(length(missing_value) == 1) { cause_value[is_na_x] <- missing_value } else { missing_value <- rep_len(missing_value, len_x) cause_value[is_na_x] <- missing_value[is_na_x] } # FALSEs false_index <- !(x | is_na_x) # more efficient to calc than !x & !is_na_x if(length(false_value) == 1) { cause_value[false_index] <- false_value } else { false_value <- rep_len(false_value, len_x) cause_value[false_index] <- false_value[false_index] } cause(x) <- cause_value class(x) <- c("vector_with_cause", "logical") x } #' @rdname print.vector_with_cause #' @method print scalar_with_cause #' @export print.scalar_with_cause <- function(x, ...) { if(length(x) != 1L) { stop("x is malformed; it should have length 1.", domain = NA) } print(x[1]) cat("Cause of failure: ", cause(x), "\n") } #' Print methods for objects with a cause attribute #' #' Prints objects of class \code{scalar_with_cause} and #' \code{vector_with_cause}. #' @param x an object of class \code{scalar_with_cause} or #' \code{vector_with_cause}. #' @param na_ignore A logical value. If \code{FALSE}, \code{NA} values #' are printed; otherwise they do not. Like \code{na.rm} in many #' stats package functions, except that the position of the failing #' values does not change. #' @param n_to_show A natural number. The maximum number of failures #' to show. #' @param ... Currently unused. #' @method print vector_with_cause #' @importFrom utils head #' @export print.vector_with_cause <- function(x, na_ignore = FALSE, n_to_show = 10, ...) { cause_x <- cause(x) names_x <- names(x) if(is.null(names_x)) { names_x <- character(length(x)) } x <- strip_attributes(x) ok <- if(na_ignore) { # ok can be TRUE or NA; FALSE is bad x | is.na(x) } else { # ok can be TRUE; FALSE or NA is bad x & !is.na(x) } # Append first few failure values and positions to the error message. fail_index <- which(!ok) n <- length(fail_index) fail_index <- head(fail_index, n_to_show) failures <- data.frame( Position = fail_index, Value = truncate(names_x[fail_index]), Cause = unclass(cause_x[fail_index]), # See bug 15997 row.names = seq_along(fail_index) ) # Slightly convoluted way of creating message done to ensure that xgettext # creates all the translation strings msg_showing_first <- if(nrow(failures) < n) { paste0( " ", gettextf( "(showing the first %d)", nrow(failures), domain = "R-assertive.base" ) ) } else "" msg_n_failures <- ngettext( n, "There was %d failure%s:\n", "There were %d failures%s:\n", domain = "R-assertive.base" ) cat(enc2utf8(sprintf(msg_n_failures, n, msg_showing_first))) print(failures) } assertive.base/R/internal.R0000644000176200001440000000145713021047322015331 0ustar liggesusersmerge.NULL <- function(x, y, ...) { return(y) } names_never_null <- function(x) { nms <- names(x) if(is.null(nms)) { nms <- character(length(x)) } nms } #' Truncate a string #' #' Truncates a character vector to have a maximum length. #' @param x A character vector, or something coercible to one. #' @param width A positive integer. #' @return A character vector #' @seealso \code{\link[base]{abbreviate}} #' @examples #' assertive.base:::truncate(c("abcd", "efghi", "jklmno", "pqrstuv"), 5) #' @noRd truncate <- function(x, width = getOption("width")) { x <- as.character(x) ifelse( nchar(x) > width, # paste0(substring(x, 1, width - 1), "\u2026") would be better, but some # setups don't display unicode properly. paste0(substring(x, 1, width - 3), "..."), x ) } assertive.base/R/is-identical-to-true-false-na.R0000644000176200001440000000255413021047322021142 0ustar liggesusers#' @rdname Truth #' @export is_identical_to_false <- function(x, allow_attributes = FALSE, .xname = get_name_in_parent(x)) { if(allow_attributes) { x <- strip_attributes(x) } if(!identical(FALSE, x)) { msg <- gettextf( "%s is not identical to FALSE; its value is %s.", .xname, safe_deparse(x), domain = "R-assertive.base" ) return(false(msg)) } TRUE } #' @rdname Truth #' @export is_identical_to_na <- function(x, allow_attributes = FALSE, .xname = get_name_in_parent(x)) { if(allow_attributes) { x <- strip_attributes(x) } if(!identical(NA, x) && !identical(NA_real_, x) && !identical(NA_character_, x) && !identical(NA_integer_, x) && !identical(NA_complex_, x)) { msg <- gettextf( "%s is not identical to NA; its value is %s.", .xname, safe_deparse(x), domain = "R-assertive.base" ) return(false(msg)) } TRUE } #' @rdname Truth #' @export is_identical_to_true <- function(x, allow_attributes = FALSE, .xname = get_name_in_parent(x)) { if(allow_attributes) { x <- strip_attributes(x) } if(!identical(TRUE, x)) { msg <- gettextf( "%s is not identical to TRUE; its value is %s.", .xname, safe_deparse(x), domain = "R-assertive.base" ) return(false(msg)) } TRUE } assertive.base/R/assert-are-identical.R0000644000176200001440000000267413021047322017517 0ustar liggesusers#' @rdname are_identical #' @export assert_are_identical <- function(x, y, allow_attributes = FALSE, severity = getOption("assertive.severity", "stop")) { assert_engine( are_identical, x, y = y, .xname = get_name_in_parent(x), .yname = get_name_in_parent(y), severity = severity ) } #' @rdname are_identical #' @export assert_all_are_identical_legacy <- function(..., l = list()) { # Nasty reimplementation of functionality since assert_engine doesn't work # ... inputs right now. ok <- are_identical_legacy(..., l = list()) if(!all(ok)) { handler_type <- match.arg( getOption("assertive.severity"), c("stop", "warning", "message", "none") ) if(handler_type == "none") return() handler <- match.fun(handler_type) handler( "The expressions ", toString(as.list(match.call())[-1]), " are not all identical.", call. = FALSE ) } } #' @rdname are_identical #' @export assert_any_are_identical_legacy <- function(..., l = list()) { # Also nasty. ok <- are_identical_legacy(..., l = list()) if(!any(ok)) { handler_type <- match.arg( getOption("assertive.severity"), c("stop", "warning", "message", "none") ) if(handler_type == "none") return() handler <- match.fun(handler_type) handler( "The expressions ", toString(as.list(match.call())[-1]), " are all not identical.", call. = FALSE ) } } assertive.base/R/coercion.R0000644000176200001440000001057513021056357015327 0ustar liggesusers#' Alternative version of is #' #' If a function named \code{is.class} exists, call \code{is.class(x)}. #' If not, call \code{is(x, class)}. #' @param x Input to check. #' @param class Target class that \code{x} maybe belong to. #' @param .xname Not intended to be used directly. #' @return \code{TRUE} if x belongs to the class and \code{FALSE} #' otherwise. #' @seealso \code{\link[methods]{is}}, and #' \code{\link[assertive.types]{assert_is_all_of}} for the corresponding assert fns. #' @examples #' is2(1:5, "character") #' is2(matrix(1:5), "character") #' is2(1:5, c("character", "list", "numeric")) #' is2(mean, c("function", "data.frame")) #' @importFrom methods is #' @export is2 <- function(x, class, .xname = get_name_in_parent(x)) { # Can't use is_empty in next line because that function calls this one. if(length(class) == 0L) stop("You must provide a class.") if(length(class) > 1L) { return( set_cause( bapply(class, function(cl) is2(x, cl, "")), sprintf("%s is not '%s'", type_description(x), class) ) ) } ok <- tryCatch( { is.class <- match.fun(paste0("is.", class)) is.class(x) }, error = function(e) { is(x, class) } ) if(!ok) { return( false( "%s is not of class '%s'; it has %s.", .xname, class, type_description(x) ) ) } TRUE } #' Coerce variable to a different class #' #' Coerce the input to a different class, with a warning. More reliable then #' \code{\link[methods]{as}}, and supports coercion to multiple classes. #' #' @param x Input to coerce. #' @param target_class The desired class of x. Multiple values allowed (see #' note). #' @param .xname Not intended to be used directly. #' @return The input \code{x} after attempted coercion to the target class. #' @note If x does not already have the target class, a warning is given #' before coercion. #' The function will try and convert the \code{x} to each of the classes given #' in \code{target_class}, in order, until it succeeds or runs out of classes #' to try. It will first try and convert \code{x} using a dedicated #' \code{as.target_class} function if that exists. If it does not exist, or #' throws an error then \code{coerce_to} will try to use #' \code{as(x, target_class)}. #' @seealso \code{\link[methods]{is}} and \code{\link[methods]{as}}. #' @examples #' # Numbers can be coerced to characters but not to calls. #' dont_stop(coerce_to(1:5, c("call", "character"))) #' @importFrom methods as #' @export coerce_to <- function(x, target_class, .xname = get_name_in_parent(x)) { # Can't use is_empty in next line because that function calls this one. if(length(target_class) == 0L) { stop("You must provide a class.") } if(!is.character(target_class)) { stop("target_class should be a character vector.") } for(this_class in target_class) { if(!is2(x, this_class)) { warning( sprintf( "Coercing %s to class %s.", .xname, sQuote(this_class) ), call. = FALSE ) } tryCatch( { as.this_class <- match.fun(paste0("as.", this_class)) return(as.this_class(x)) }, error = function(e) { # as.this_class doesn't exist; try as(, "this_class") instead tryCatch( return(as(x, this_class)), error = function(e) { # Can't coerce to this class; warn and move to next class warning( sprintf( "%s cannot be coerced to type %s.", .xname, sQuote(this_class) ), call. = FALSE ) } ) } ) } # Nothing worked; throw an error stop( sprintf( "%s cannot be coerced to any of these types: %s.", .xname, toString(sQuote(target_class)) ) ) } #' Describe the type of object #' #' Get the class or mode (for arrays). #' @param x A variable. #' @return A string. #' @noRd type_description <- function(x) { if(is.array(x)) { sprintf(sprintf("class '%s %s'", class(x[FALSE]), toString(class(x)))) } else if(is.function(x)) { sprintf(sprintf("class '%s %s'", typeof(x), toString(class(x)))) } else if(isS4(x)) { sprintf(sprintf("S4 class '%s'", toString(class(x)))) } else { sprintf("class '%s'", toString(class(x))) } } assertive.base/R/assert-identical-to-true-false-na.R0000644000176200001440000001145613021047322022031 0ustar liggesusers#' Is the input TRUE/FALSE/NA? #' #' Checks to see if the input is \code{TRUE}, \code{FALSE} or \code{NA}. #' #' @param x Input to check. See note. #' @param allow_attributes If \code{TRUE}, a scalar value of \code{TRUE} #' with attributes is allowed. #' @param coerce_to_logical Logical: should the input be coerced to logical #' before checking? See note. #' @param .xname Not intended to be used directly. #' @param severity How severe should the consequences of the assertion be? #' Either \code{"stop"}, \code{"warning"}, \code{"message"}, or \code{"none"}. #' @note \code{is_identical_to_true} wraps the base function \code{isTRUE}, #' providing more information on failure. Likewise, #' \code{is_identical_to_false} checks that the input is identical to FALSE. If #' \code{allow_attributes} is \code{TRUE}, a scalar value of \code{TRUE} with #' attributes is allowed. \code{is_true} and \code{is_false} are vectorized, #' returning \code{TRUE} when the inputs are \code{TRUE} and \code{FALSE} #' respectively. #' #' The for \code{is_true}, \code{is_false}, \code{is_not_true} and #' \code{is_not_false}, \code{x} argument will be coerced to be a logical vector #' if it isn't already. #' #' Coercion to logical is optional for \code{is_na} and \code{is_not_na}. If #' you do coerce, it means that \code{is_na} differs in behaviour from #' \code{base::is.na} for character vector, list and data frame inputs. To #' replicate the behaviour of \code{is.na}, ensure the argument #' \code{coerce_to_logical} is \code{FALSE} (this is the default). #' #' Note that in assertive version 0.1-4 and prior, #' \code{is_identical_to_true/false} were named \code{is_true/false} and the #' vectorized versions were not present. #' @return The \code{is*} functions return \code{TRUE} if the input is #' \code{TRUE}/\code{FALSE}. The \code{assert_*} functions return nothing but #' throw an error if the corresponding \code{is_*} function returns #' \code{FALSE}. #' @seealso \code{\link[base]{isTRUE}}. #' @examples #' # Checks against logical values using base::identical #' assert_is_identical_to_true(TRUE) #' assert_is_identical_to_false(FALSE) #' assert_is_identical_to_na(NA) #' #' # Other NA types match #' assert_is_identical_to_na(NA_complex_) #' #' # NaN is not NA #' dont_stop(assert_is_identical_to_na(NaN)) #' #' # For a slightly less strict test, you can ignore attributes #' assert_is_identical_to_true(c(truth = TRUE), allow_attributes = TRUE) #' assert_is_identical_to_false(matrix(FALSE), allow_attributes = TRUE) #' assert_is_identical_to_na(structure(NA, class = "nanana"), allow_attributes = TRUE) #' #' # Vectorized predicates (package name explicitly given to prevent #' # problems with testthat name clash) #' x <- c(TRUE, FALSE, NA) #' assertive.base::is_true(x) #' assertive.base::is_false(x) #' is_na(x) #' #' # ...and their opposites #' is_not_true(x) #' is_not_false(x) #' is_not_na(x) #' #' # Check that at least one element fits the condition #' assert_any_are_true(x) #' assert_any_are_false(x) #' assert_any_are_na(x) #' #' # These checks should fail: #' dont_stop({ #' assert_is_identical_to_true(c(truth = TRUE)) #' assert_is_identical_to_true(1) #' assert_is_identical_to_true(c(TRUE, TRUE)) #' assert_is_identical_to_false(matrix(FALSE)) #' assert_is_identical_to_na(structure(NA, class = "nanana")) #' assert_all_are_true(x) #' assert_all_are_false(x) #' assert_all_are_na(x) #' }) #' #' # base::is.na has non-standard behaviour for data.frames and lists. #' # is_na and is_not_na coerce to logical vectors (except character input). #' # unlist the input or use an apply function. #' d <- data.frame( #' x = c(TRUE, FALSE, NA), #' y = c(0, NA, 2), #' z = c("a", "NA", NA) #' ) #' is.na(d) #' is_na(unlist(d)) #' @name Truth NULL #' @rdname Truth #' @export assert_is_identical_to_false <- function(x, allow_attributes = FALSE, severity = getOption("assertive.severity", "stop")) { assert_engine( is_identical_to_false, x, allow_attributes = allow_attributes, .xname = get_name_in_parent(x), severity = severity ) } #' @rdname Truth #' @export assert_is_identical_to_na <- function(x, allow_attributes = FALSE, severity = getOption("assertive.severity", "stop")) { assert_engine( is_identical_to_na, x, allow_attributes = allow_attributes, .xname = get_name_in_parent(x), severity = severity ) } #' @rdname Truth #' @export assert_is_identical_to_true <- function(x, allow_attributes = FALSE, severity = getOption("assertive.severity", "stop")) { assert_engine( is_identical_to_true, x, allow_attributes = allow_attributes, .xname = get_name_in_parent(x), severity = severity ) } assertive.base/R/conditions.R0000644000176200001440000000420013021047322015653 0ustar liggesusers#' Condition classes #' #' Error, warning, and message classes derived from their simple equivalents. #' @param message A string describing the problem. #' @param call A call describing the source of the condition. #' @param predicate_name A string naming the predicate that was called when the #' condition occured. #' @return An object of class \code{assertionError}, \code{assertionWarning}, or #' \code{assertionMessage}. #' @note These objects behave the same as the standard-issue \code{simpleError}, #' \code{simpleWarning}, and \code{simpleMessage} objects from base-R. The #' extra class allows you to provide custom handling for assertions inside #' \code{tryCatch}. #' @examples #' tryCatch( #' assert_all_are_true(FALSE), #' error = function(e) #' { #' if(inherits(e, "assertionCondition")) #' { #' # Handle assertions #' message("This is an assertion condition.") #' #' # Handle assertions cause by a specific predicate #' if(e$predicate_name == "is_true") #' { #' } #' } else #' { #' # Handle other error types #' } #' } #' ) #' @export assertionError <- function(message, call = NULL, predicate_name = NULL) { class <- c("assertionError", "assertionCondition", "simpleError", "error", "condition") structure( list( message = as.character(message), call = call, predicate_name = predicate_name ), class = class ) } #' @rdname assertionError #' @export assertionWarning <- function(message, call = NULL, predicate_name = NULL) { class <- c("assertionWarning", "assertionCondition", "simpleWarning", "warning", "condition") structure( list( message = as.character(message), call = call, predicate_name = predicate_name ), class = class ) } #' @rdname assertionError #' @export assertionMessage <- function(message, call = NULL, predicate_name = NULL) { class <- c("assertionMessage", "assertionCondition", "simpleMessage", "message", "condition") structure( list( message = as.character(message), call = call, predicate_name = predicate_name ), class = class ) } assertive.base/R/are-identical.R0000644000176200001440000000450013021047322016206 0ustar liggesusers#' Are the inputs identical? #' #' Checks if the inputs are identical. #' @param x An R object or expression. #' @param y Another R object or expression. #' @param allow_attributes If \code{TRUE}, The attributes of \code{x} and #' \code{y} are allowed to differ. #' @param ... Some R expressions, deprecated. #' @param l A list of R expressions, deprecated. #' @param .xname Not intended to be used directly. #' @param .yname Not intended to be used directly. #' @param severity How severe should the consequences of the assertion be? #' Either \code{"stop"}, \code{"warning"}, \code{"message"}, or \code{"none"}. #' @return \code{are_identical} returns \code{TRUE} if \code{x} and \code{y} #' are identical. The \code{assert_*} function throws an error on failure. #' #' The legacy function \code{are_identical_legacy} allows an arbitrary number #' of inputs and returns a symmetric square logical matrix which is \code{TRUE} #' where pairs of inputs are identical. (The new version of the function #' is easier to work with, and it is recommended that you switch your code to #' it.) #' @seealso \code{\link[base]{identical}}, #' \code{\link[assertive.properties]{are_same_length}} #' @examples #' x <- 1:5 #' are_identical(c(1, -1), cos(c(0, pi))) #' assertive.base::dont_stop(assert_are_identical(c(1, 1), cos(c(0, pi)))) #' @export are_identical <- function(x, y, allow_attributes =FALSE, .xname = get_name_in_parent(x), .yname = get_name_in_parent(y)) { if(allow_attributes) { x <- strip_attributes(x) y <- strip_attributes(y) } if(!identical(x, y)) { return( false( gettext("%s and %s are not identical."), .xname, .yname ) ) } TRUE } #' @rdname are_identical #' @export are_identical_legacy <- function(..., l = list()) { envir <- parent.frame() inputs <- as.list(match.call())[-1] inputs_in_list <- as.list(inputs$l)[-1] inputs <- c(inputs[names(inputs) != "l"], inputs_in_list) input_pairs <- expand.grid(expr1 = inputs, expr2 = inputs) identicality <- apply( input_pairs, 1, function(row) { with( row, identical( eval(expr1, envir = envir), eval(expr2, envir = envir) ) ) } ) matrix( identicality, nrow = nargs(), dimnames = list(inputs, inputs) ) } assertive.base/R/assert-is-true-false-na.R0000644000176200001440000001240013021047322020056 0ustar liggesusers#' @rdname Truth #' @export assert_all_are_false <- function(x, severity = getOption("assertive.severity", "stop")) { msg <- gettextf( "The values of %s are not all FALSE.", get_name_in_parent(x), domain = "R-assertive.base" ) assert_engine( is_false, x, msg = msg, .xname = get_name_in_parent(x), severity = severity ) } #' @rdname Truth #' @export assert_any_are_false <- function(x, severity = getOption("assertive.severity", "stop")) { msg <- gettextf( "The values of %s are never FALSE.", get_name_in_parent(x), domain = "R-assertive.base" ) assert_engine( is_false, x, msg = msg, what = "any", .xname = get_name_in_parent(x), severity = severity ) } #' @rdname Truth #' @export assert_all_are_na <- function(x, severity = getOption("assertive.severity", "stop")) { msg <- gettextf( "The values of %s are not all NA.", get_name_in_parent(x), domain = "R-assertive.base" ) assert_engine( is_na, x, coerce_to_logical = FALSE, msg = msg, .xname = get_name_in_parent(x), severity = severity ) } #' @rdname Truth #' @export assert_any_are_na <- function(x, severity = getOption("assertive.severity", "stop")) { msg <- gettextf( "The values of %s are never NA.", get_name_in_parent(x), domain = "R-assertive.base" ) assert_engine( is_na, x, coerce_to_logical = FALSE, msg = msg, what = "any", .xname = get_name_in_parent(x), severity = severity ) } #' @rdname Truth #' @export assert_all_are_true <- function(x, severity = getOption("assertive.severity", "stop")) { msg <- gettextf( "The values of %s are not all TRUE.", get_name_in_parent(x), domain = "R-assertive.base" ) assert_engine( is_true, x, msg = msg, .xname = get_name_in_parent(x), severity = severity ) } #' @rdname Truth #' @export assert_any_are_true <- function(x, severity = getOption("assertive.severity", "stop")) { msg <- gettextf( "The values of %s are never TRUE.", get_name_in_parent(x), domain = "R-assertive.base" ) assert_engine( is_true, x, msg = msg, what = "any", .xname = get_name_in_parent(x), severity = severity ) } # Negations #' @rdname Truth #' @export assert_all_are_not_false <- function(x, severity = getOption("assertive.severity", "stop")) { msg <- gettextf( "The values of %s are sometimes FALSE.", get_name_in_parent(x), domain = "R-assertive.base" ) assert_engine( is_not_false, x, msg = msg, .xname = get_name_in_parent(x), severity = severity ) } #' @rdname Truth #' @export assert_any_are_not_false <- function(x, severity = getOption("assertive.severity", "stop")) { msg <- gettextf( "The values of %s are all FALSE.", get_name_in_parent(x), domain = "R-assertive.base" ) assert_engine( is_not_false, x, msg = msg, what = "any", .xname = get_name_in_parent(x), severity = severity ) } #' @rdname Truth #' @export assert_all_are_not_na <- function(x, severity = getOption("assertive.severity", "stop")) { msg <- gettextf( "The values of %s are sometimes NA.", get_name_in_parent(x), domain = "R-assertive.base" ) assert_engine( is_not_na, x, coerce_to_logical = FALSE, msg = msg, .xname = get_name_in_parent(x), severity = severity ) } #' @rdname Truth #' @export assert_any_are_not_na <- function(x, severity = getOption("assertive.severity", "stop")) { msg <- gettextf( "The values of %s are all NA.", get_name_in_parent(x), domain = "R-assertive.base" ) assert_engine( is_not_na, x, coerce_to_logical = FALSE, msg = msg, what = "any", .xname = get_name_in_parent(x), severity = severity ) } #' @rdname Truth #' @export assert_all_are_not_true <- function(x, severity = getOption("assertive.severity", "stop")) { msg <- gettextf( "The values of %s are sometimes TRUE.", get_name_in_parent(x), domain = "R-assertive.base" ) assert_engine( is_not_true, x, msg = msg, .xname = get_name_in_parent(x), severity = severity ) } #' @rdname Truth #' @export assert_any_are_not_true <- function(x, severity = getOption("assertive.severity", "stop")) { msg <- gettextf( "The values of %s are all TRUE.", get_name_in_parent(x), domain = "R-assertive.base" ) assert_engine( is_not_true, x, msg = msg, what = "any", .xname = get_name_in_parent(x), severity = severity ) } assertive.base/R/engine.R0000644000176200001440000001106113021047322014752 0ustar liggesusers#' Throws an error if a condition isn't met #' #' The workhorse of the package that creates an assertion from a predicate. #' If a condition isn't met, then an error is thrown. This function is exported #' for use by package developers so that they can create their own assert #' functions. #' #' @param predicate Function that returns a logical value (possibly #' a vector). #' @param ... Passed to the \code{predicate} function. #' @param msg The error message, in the event of failure. #' @param what Either 'all' or 'any', to reduce vectorised tests to a #' single value. #' @param na_ignore A logical value. If \code{FALSE}, \code{NA} values #' cause an error; otherwise they do not. Like \code{na.rm} in many #' stats package functions, except that the position of the failing #' values does not change. #' @param severity How severe should the consequences of the assertion be? #' Either \code{"stop"}, \code{"warning"}, \code{"message"}, or \code{"none"}. #' @return \code{FALSE} with the attribute \code{message}, as provided #' in the input. #' @note Missing values are considered as \code{FALSE} for the purposes of #' whether or not an error is thrown. #' @examples #' # Basic usage is like do.call; pass a predicate and the arguments to it. #' dont_stop(assert_engine(is_true, c(TRUE, FALSE, NA))) #' #' # Customise the error message #' dont_stop( #' assert_engine(is_true, c(TRUE, FALSE, NA), msg = "Not everything is true") #' ) #' #' # Only fail when no values match the predicate's conditions #' dont_stop(assert_engine(is_true, logical(3), what = "any")) #' #' # You can use base predicates, but the error message isn't as informative #' dont_stop(assert_engine(is.matrix, 1:5)) #' #' # Reduce the severity of failure #' assert_engine(is_true, c(TRUE, FALSE, NA), severity = "message") #' #' @export assert_engine <- function(predicate, ..., msg = "The assertion failed.", what = c("all", "any"), na_ignore = FALSE, severity = c("stop", "warning", "message", "none")) { handler_type <- match.arg(severity) dots <- list(...) return_value <- if(length(dots) > 0) dots[[1]] else NULL if(handler_type == "none") { return(invisible(return_value)) } what <- match.fun(match.arg(what)) predicate_name <- get_name_in_parent(predicate) ok <- predicate(...) if(inherits(ok, "scalar_with_cause")) { if(!isTRUE(ok)) { if(missing(msg)) { msg <- cause(ok) } give_feedback(handler_type, msg, predicate_name) } } else # inherits(ok, "vector_with_cause") { really_ok <- if(na_ignore) { # ok can be TRUE or NA; FALSE is bad ok | is.na(ok) } else { # ok can be TRUE; FALSE or NA is bad ok & !is.na(ok) } if(!what(really_ok)) { # Append first few failure values and positions to the error message. msg <- paste(enc2utf8(msg), print_and_capture(ok), sep = "\n") give_feedback(handler_type, msg, predicate_name) } } invisible(return_value) } give_feedback <- function(handler_type, msg, predicate_name) { handler <- match.fun( handler_type ) ass_condition <- switch( handler_type, stop = assertionError, warning = assertionWarning, message = assertionMessage ) # Throw error/warning/message caller <- if(sys.nframe() >= 3) { sys.call(-3) } else { NULL } # UTF-8 characters do not display correctly under Windows for some # LC_CTYPE locale values, but there isn't much assertive can do about that. # http://stackoverflow.com/q/32696241/134830 handler(ass_condition(paste(predicate_name, msg, sep = " : "), caller, predicate_name)) } #' FALSE, with a cause of failure. #' #' Always returns the value \code{FALSE}, with a cause attribute. #' #' @param ... Passed to \code{gettextf} to create a cause of failure message. #' @return \code{FALSE} with the attribute \code{cause}, as provided #' in the input. #' @seealso \code{\link{cause}} and \code{\link{na}}. #' @export false <- function(...) { msg <- if(nargs() > 0L) sprintf(...) else "" x <- FALSE cause(x) <- msg[1] class(x) <- c("scalar_with_cause", "logical") x } #' NA, with a cause of failure. #' #' Always returns the value (logical) \code{NA}, with a cause attribute. #' #' @param ... Passed to \code{gettextf} to create a cause of failure message. #' @return \code{NA} with the attribute \code{cause}, as provided #' in the input. #' @seealso \code{\link{cause}} and \code{\link{false}}. #' @export na <- function(...) { msg <- if(nargs() > 0L) sprintf(...) else "" x <- NA cause(x) <- msg[1] class(x) <- c("scalar_with_cause", "logical") x } assertive.base/R/zzz.R0000644000176200001440000000012113021047322014335 0ustar liggesusers.onLoad <- function(libname, pkgname) { options(assertive.severity = "stop") } assertive.base/README.md0000644000176200001440000000757713021047322014461 0ustar liggesusers[![Project Status: Active - The project has reached a stable, usable state and is being actively developed.](http://www.repostatus.org/badges/0.1.0/active.svg)](http://www.repostatus.org/#active) [![Is the package on CRAN?](http://www.r-pkg.org/badges/version/assertive.base)](http://www.r-pkg.org/pkg/assertive.base) [![SemaphoreCI Build Status](https://semaphoreci.com/api/v1/projects/01fd8743-d3d2-42ad-b63d-e94c5844e951/635080/badge.svg)](https://semaphoreci.com/richierocks/assertive-base) [![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/ubs74w5tm2mxgfne?svg=true)](https://ci.appveyor.com/project/richierocks/assertive-base) [![Codecov Test Coverage Status](https://codecov.io/bitbucket/richierocks/assertive.base/coverage.svg?branch=master)](https://codecov.io/bitbucket/richierocks/assertive.base?branch=master) [![Coveralls Test Coverage Status](https://coveralls.io/repos/richierocks/assertive.base/badge.svg?branch=master&service=bitbucket)](https://coveralls.io/bitbucket/richierocks/assertive.base?branch=master) # assertive.base A minimal set of predicates and assertions used by *[assertive](https://bitbucket.org/richierocks/assertive)*, for package developers who want to include run-time testing features in their own packages. Most of the documentation is on the assertive page. End-users will usually want to use *assertive* directly. ### Installation To install the stable version, type: ```{r} install.packages("assertive.base") ``` To install the development version, you first need the *devtools* package. ```{r} install.packages("devtools") ``` Then you can install the *assertive.base* package using ```{r} library(devtools) install_bitbucket("richierocks/assertive.base") ``` ### Predicates There are six functions that accept (expressions resolving to) logical vectors, and return logical vectors: `is_true` returns a logical vector that is `TRUE` when the input is `TRUE` (`x & !is.na(x)`). `is_false` returns a logical vector that is `TRUE` when the input is `FALSE` (`!x & !is.na(x)`). `is_na` returns a logical vector that is `TRUE` when the input is `NA` (a wrapper to `is.na(x)`). ...and their negations: `is_not_true` returns a logical vector that is `TRUE` when the input is `FALSE` or `NA` (`x | is.na(x)`). `is_not_false` returns a logical vector that is `TRUE` when the input is `TRUE` or `NA` (`!x | is.na(x)`). `is_not_na` returns a logical vector that is `TRUE` when the input is `TRUE` or `FALSE` (`!is.na(x)`). There are four functions that return single logical values: `is_identical_to_true` returns `TRUE` is effectively `identical(x, TRUE)` (like `isTRUE`), but it lets you choose whether or not attributes are allowed on `x`. `is_identical_to_false` and `is_identical_to_na` works similarly with `FALSE` and `NA`. `are_identical` wraps `base::identical`, checking if two expressions return the same thing. ### Assertions Predicates that return a vector have two corresponding assertions. For example, `is_true` has `assert_all_are_true` and `assert_any_are_true`. Predicates returning a single logical value have one corresponding assertion. For example, `is_identical_to_true` has `assert_is_identical_to_true`. ### Utilities `use_first` takes the first value of a vector, warning you if it one longer than length one. `coerce_to` is a wrapper to `as`, changing an object's type with a warning. `get_name_in_parent` gets the name of a variable in the parent environment (stopping you have to remember `deparse(substitute())` arcana). `strip_attributes` strips the attributes from an object. `merge_dots_with_list` merges the contents of `...` with a list argument, to allow users to pass arguments to your function in either form. `dont_stop` runs code without stopping at errors, which is useful for demonstrating errors in examples. `parenthesise` wraps a string in parentheses. `bapply` is a wraps `vapply`, always returning a logical vector. assertive.base/MD50000644000176200001440000000756313031315273013511 0ustar liggesusersc46bbc4c6650a3f1cdcd8d7a353626a2 *DESCRIPTION 2d0578541ff8213557adcb1bb3fcac85 *NAMESPACE 3235dddb3fe9fcc74317605e898c0a5e *NEWS 118db3cd6e7a125ecac9651836574528 *R/are-identical.R ffda0810ff89d4aa4dd87e65fbd7c165 *R/assert-are-identical.R f87bff373fa057da7784c88ae20ba782 *R/assert-identical-to-true-false-na.R 9f205fd0d36f4cf9d6ed7f2a55c0898e *R/assert-is-true-false-na.R 5086dd0b626c8650fac17bad08a3ed61 *R/cause.R e836cc5d0c2c99d9461ec8ef2db8ca63 *R/coercion.R 88f722b0cda3f712dd08971bb5b11252 *R/conditions.R 70ccdbe14d6aa4be48c9cb64c17e1a95 *R/engine.R 7cec7387215a94af127a7f254740ec56 *R/internal.R 24ea87c34be4a30f9c1a5691393e447f *R/is-identical-to-true-false-na.R ffaec64534aa2cbc0c7d926884c02993 *R/is-true-false-na.R fab5fb5788ada84bd593eb2587f00024 *R/utils.R 996f107e5dc8e859870480e44ce8d2e1 *R/zzz.R 5fb85b12909db3af916dc0c08886e361 *README.md be15868a662f5557654faf0cf8d6fef6 *inst/po/de/LC_MESSAGES/R-assertive.base.mo 874ffb55ce36b7448a6157208dddd2f6 *inst/po/el/LC_MESSAGES/R-assertive.base.mo 2b4f71422d47d81f60f09f1546d7af73 *inst/po/fr/LC_MESSAGES/R-assertive.base.mo 4b8ecdb9928ce0afa303787ed69bbfe2 *inst/po/hu/LC_MESSAGES/R-assertive.base.mo d32acd1f5bb9c27621a965719e6525f5 *inst/po/ko/LC_MESSAGES/R-assertive.base.mo bd952df6360b0401e7b77e9b13e5b08f *inst/po/kr/LC_MESSAGES/R-assertive.base.mo b7da529fa6cd99789a5b172a0a385e80 *inst/po/nl/LC_MESSAGES/R-assertive.base.mo c920303640ae1b17c1c34dfda959ded9 *inst/po/ru/LC_MESSAGES/R-assertive.base.mo f570cec665bb5d0cb473a76c9bc79573 *inst/po/sv/LC_MESSAGES/R-assertive.base.mo 1b471d66af00ca6e09d956602461a7ce *inst/po/tr/LC_MESSAGES/R-assertive.base.mo 16ec298f72046373cee47e4f16d34fb8 *inst/po/ua/LC_MESSAGES/R-assertive.base.mo 2b47b3304c5c56fdaa3a8affc58c0691 *inst/po/uk/LC_MESSAGES/R-assertive.base.mo 960ba8fd9bd0a5c481678c66e2cba999 *man/Truth.Rd 07b4df245675b26f5141ed39df0d1f10 *man/are_identical.Rd 688a029d85058e215af96a6750a79858 *man/assert_engine.Rd baac3c2e86d7c6925574a0dab91f29f8 *man/assertionError.Rd d277f67393dc8f8a449da01a54a8bfc8 *man/bapply.Rd 200fefabc4f64f69264c61587289bbf6 *man/call_and_name.Rd 77901e2792d917f2bc3485ae70e5a63a *man/cause.Rd cac26f7f544932907c699fac720a51f2 *man/coerce_to.Rd 0873f2990d84b1fdb5bd6823e33b6495 *man/dont_stop.Rd 59c7fcd79ce41b7c341346efae4277b3 *man/false.Rd ee4ca249429605280682c53f625a6e67 *man/get_name_in_parent.Rd d3d94f6188ac2ebd5efdcf508345f5df *man/is2.Rd cca726608f4e91c37a7bfc858a9f35ab *man/merge.list.Rd 63fb6d735fbc1e345033949b87748d11 *man/merge_dots_with_list.Rd 8632762c2741d1c78a5086d8b0902519 *man/na.Rd c3c67b8561fbf9edfecee114155fe697 *man/parenthesize.Rd dc3a57616f9b6e05656f8df619f38662 *man/print.vector_with_cause.Rd 2e9156027c0c9dbfc22343ddb2bac950 *man/print_and_capture.Rd 224602eaac03c751ae9f8a365b39e734 *man/safe_deparse.Rd 75b6551bc1b4e678fde5816f028d17ee *man/set_cause.Rd bede5452f0479384dd3512fed500d6d5 *man/strip_attributes.Rd 7b955e9df3cd5db8993aacd6f8b899c6 *man/use_first.Rd 7ec131050af31bc9f6d75d1d1b842d65 *po/R-assertive.base.pot 0ca67ef63f2745c25d960792d9b6635a *po/R-de.po 5e78b9418256bf54b9b6ae4d922d3cbe *po/R-el.po 4cd0e4ed5f29113328c7f457460cc4fa *po/R-fr.po f6e3fc75cbe84961f0ae874bcdb68682 *po/R-hu.po bc92d912a7c279646d59054c5f351d25 *po/R-ko.po dc5c1ad1ae1c5869e1c4a45ae389a50e *po/R-kr.po 6ddad5addb78719c1906aa71fb549cba *po/R-nl.po ed3a63ed8f6ed312a09f3e7a11ad8bdb *po/R-ru.po 1f92388e98fb13da5a747a6bbfd4ab50 *po/R-sv.po 2edd62787af1c5aac7820cb9f984f141 *po/R-tr.po 3b91ddabdacd796ba607671dcaeab479 *po/R-ua.po 61e29e1441dc26c904aa7124a3fd42d8 *po/R-uk.po 212e9966dd6cf7c59dafb6c4a8ff308f *tests/testthat.R 273f7b398f030d629d57bb8341e67ea2 *tests/testthat/test-are-identical.R e4a84d945c128b0a425e29b429e91a3c *tests/testthat/test-internal.R d7ef243643eac5b71fc503cf8a05501c *tests/testthat/test-is-identical-to-true-false-na.R 9f5540277deeafdd15ce1051bdba393f *tests/testthat/test-is-true-false-na.R eb47b6a45c55fdb7352664c0518f8af3 *tests/testthat/test-utils.R assertive.base/DESCRIPTION0000644000176200001440000000476313031315273014706 0ustar liggesusersPackage: assertive.base Type: Package Title: A Lightweight Core of the 'assertive' Package Version: 0.0-7 Date: 2016-12-22 Author: Richard Cotton [aut, cre], Sunkyu Choi [trl], Ivanka Skakun [trl], Gergely Darczi [trl], Anton Antonov [trl], Hisham Ben Hamidane [trl], Anja Billing [trl], Aditya Bhagwat [trl], Rasmus Bth [trl], Mine Cetinkaya-Rundel [trl], Aspasia Chatziefthymiou [trl] Maintainer: Richard Cotton Authors@R: c(person("Richard", "Cotton", role = c("aut", "cre"), email = "richierocks@gmail.com"), person("Sunkyu", "Choi", role = "trl", email = "szc2010@qatar-med.cornell.edu"), person("Ivanka", "Skakun", role = "trl", email = "ivanka.skakun@gmail.com"), person("Gergely", "Darczi", role = "trl", email = "daroczig@rapporter.net"), person("Anton", "Antonov", role = "trl", email = "tonytonov@gmail.com"), person("Hisham", "Ben Hamidane", role = "trl", email = "hbh2002@qatar-med.cornell.edu"), person("Anja", "Billing", role = "trl", email = "anb2061@qatar-med.cornell.edu"), person("Aditya", "Bhagwat", role = "trl", email = "bhagwataditya@gmail.com"), person("Rasmus", "Bth", role = "trl", email = "rasmus.baath@lucs.lu.se"), person("Mine", "Cetinkaya-Rundel", role = "trl", email = "mine@stat.duke.edu"), person("Aspasia", "Chatziefthymiou", role = "trl", email = "asc2006@qatar-med.cornell.edu")) Description: A minimal set of predicates and assertions used by the assertive package. This is mainly for use by other package developers who want to include run-time testing features in their own packages. End-users will usually want to use assertive directly. URL: https://bitbucket.org/richierocks/assertive.base BugReports: https://bitbucket.org/richierocks/assertive.base/issues Depends: R (>= 3.0.0) Imports: methods, utils Suggests: testthat License: GPL (>= 3) LazyLoad: yes LazyData: yes Acknowledgments: Development of this package was partially funded by the Proteomics Core at Weill Cornell Medical College in Qatar . The Core is supported by 'Biomedical Research Program' funds, a program funded by Qatar Foundation. Ukranian translations were supported by www.coupofy.com. RoxygenNote: 5.0.1 ByteCompile: true NeedsCompilation: no Packaged: 2016-12-29 18:59:25 UTC; richierocks Repository: CRAN Date/Publication: 2016-12-30 00:22:35 assertive.base/man/0000755000176200001440000000000013021054440013734 5ustar liggesusersassertive.base/man/are_identical.Rd0000644000176200001440000000370213021047322017011 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/are-identical.R, R/assert-are-identical.R \name{are_identical} \alias{are_identical} \alias{are_identical_legacy} \alias{assert_all_are_identical_legacy} \alias{assert_any_are_identical_legacy} \alias{assert_are_identical} \title{Are the inputs identical?} \usage{ are_identical(x, y, allow_attributes = FALSE, .xname = get_name_in_parent(x), .yname = get_name_in_parent(y)) are_identical_legacy(..., l = list()) assert_are_identical(x, y, allow_attributes = FALSE, severity = getOption("assertive.severity", "stop")) assert_all_are_identical_legacy(..., l = list()) assert_any_are_identical_legacy(..., l = list()) } \arguments{ \item{x}{An R object or expression.} \item{y}{Another R object or expression.} \item{allow_attributes}{If \code{TRUE}, The attributes of \code{x} and \code{y} are allowed to differ.} \item{.xname}{Not intended to be used directly.} \item{.yname}{Not intended to be used directly.} \item{...}{Some R expressions, deprecated.} \item{l}{A list of R expressions, deprecated.} \item{severity}{How severe should the consequences of the assertion be? Either \code{"stop"}, \code{"warning"}, \code{"message"}, or \code{"none"}.} } \value{ \code{are_identical} returns \code{TRUE} if \code{x} and \code{y} are identical. The \code{assert_*} function throws an error on failure. The legacy function \code{are_identical_legacy} allows an arbitrary number of inputs and returns a symmetric square logical matrix which is \code{TRUE} where pairs of inputs are identical. (The new version of the function is easier to work with, and it is recommended that you switch your code to it.) } \description{ Checks if the inputs are identical. } \examples{ x <- 1:5 are_identical(c(1, -1), cos(c(0, pi))) assertive.base::dont_stop(assert_are_identical(c(1, 1), cos(c(0, pi)))) } \seealso{ \code{\link[base]{identical}}, \code{\link[assertive.properties]{are_same_length}} } assertive.base/man/print.vector_with_cause.Rd0000644000176200001440000000157713021047322021106 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/cause.R \name{print.scalar_with_cause} \alias{print.scalar_with_cause} \alias{print.vector_with_cause} \title{Print methods for objects with a cause attribute} \usage{ \method{print}{scalar_with_cause}(x, ...) \method{print}{vector_with_cause}(x, na_ignore = FALSE, n_to_show = 10, ...) } \arguments{ \item{x}{an object of class \code{scalar_with_cause} or \code{vector_with_cause}.} \item{...}{Currently unused.} \item{na_ignore}{A logical value. If \code{FALSE}, \code{NA} values are printed; otherwise they do not. Like \code{na.rm} in many stats package functions, except that the position of the failing values does not change.} \item{n_to_show}{A natural number. The maximum number of failures to show.} } \description{ Prints objects of class \code{scalar_with_cause} and \code{vector_with_cause}. } assertive.base/man/Truth.Rd0000644000176200001440000001426013021047322015335 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/assert-identical-to-true-false-na.R, R/assert-is-true-false-na.R, R/is-identical-to-true-false-na.R, R/is-true-false-na.R \name{Truth} \alias{Truth} \alias{assert_all_are_false} \alias{assert_all_are_na} \alias{assert_all_are_not_false} \alias{assert_all_are_not_na} \alias{assert_all_are_not_true} \alias{assert_all_are_true} \alias{assert_any_are_false} \alias{assert_any_are_na} \alias{assert_any_are_not_false} \alias{assert_any_are_not_na} \alias{assert_any_are_not_true} \alias{assert_any_are_true} \alias{assert_is_identical_to_false} \alias{assert_is_identical_to_na} \alias{assert_is_identical_to_true} \alias{is_false} \alias{is_identical_to_false} \alias{is_identical_to_na} \alias{is_identical_to_true} \alias{is_na} \alias{is_not_false} \alias{is_not_na} \alias{is_not_true} \alias{is_true} \title{Is the input TRUE/FALSE/NA?} \usage{ assert_is_identical_to_false(x, allow_attributes = FALSE, severity = getOption("assertive.severity", "stop")) assert_is_identical_to_na(x, allow_attributes = FALSE, severity = getOption("assertive.severity", "stop")) assert_is_identical_to_true(x, allow_attributes = FALSE, severity = getOption("assertive.severity", "stop")) assert_all_are_false(x, severity = getOption("assertive.severity", "stop")) assert_any_are_false(x, severity = getOption("assertive.severity", "stop")) assert_all_are_na(x, severity = getOption("assertive.severity", "stop")) assert_any_are_na(x, severity = getOption("assertive.severity", "stop")) assert_all_are_true(x, severity = getOption("assertive.severity", "stop")) assert_any_are_true(x, severity = getOption("assertive.severity", "stop")) assert_all_are_not_false(x, severity = getOption("assertive.severity", "stop")) assert_any_are_not_false(x, severity = getOption("assertive.severity", "stop")) assert_all_are_not_na(x, severity = getOption("assertive.severity", "stop")) assert_any_are_not_na(x, severity = getOption("assertive.severity", "stop")) assert_all_are_not_true(x, severity = getOption("assertive.severity", "stop")) assert_any_are_not_true(x, severity = getOption("assertive.severity", "stop")) is_identical_to_false(x, allow_attributes = FALSE, .xname = get_name_in_parent(x)) is_identical_to_na(x, allow_attributes = FALSE, .xname = get_name_in_parent(x)) is_identical_to_true(x, allow_attributes = FALSE, .xname = get_name_in_parent(x)) is_false(x, .xname = get_name_in_parent(x)) is_na(x, coerce_to_logical = FALSE, .xname = get_name_in_parent(x)) is_not_na(x, coerce_to_logical = FALSE, .xname = get_name_in_parent(x)) is_not_false(x, .xname = get_name_in_parent(x)) is_not_true(x, .xname = get_name_in_parent(x)) is_true(x, .xname = get_name_in_parent(x)) } \arguments{ \item{x}{Input to check. See note.} \item{allow_attributes}{If \code{TRUE}, a scalar value of \code{TRUE} with attributes is allowed.} \item{severity}{How severe should the consequences of the assertion be? Either \code{"stop"}, \code{"warning"}, \code{"message"}, or \code{"none"}.} \item{.xname}{Not intended to be used directly.} \item{coerce_to_logical}{Logical: should the input be coerced to logical before checking? See note.} } \value{ The \code{is*} functions return \code{TRUE} if the input is \code{TRUE}/\code{FALSE}. The \code{assert_*} functions return nothing but throw an error if the corresponding \code{is_*} function returns \code{FALSE}. } \description{ Checks to see if the input is \code{TRUE}, \code{FALSE} or \code{NA}. } \note{ \code{is_identical_to_true} wraps the base function \code{isTRUE}, providing more information on failure. Likewise, \code{is_identical_to_false} checks that the input is identical to FALSE. If \code{allow_attributes} is \code{TRUE}, a scalar value of \code{TRUE} with attributes is allowed. \code{is_true} and \code{is_false} are vectorized, returning \code{TRUE} when the inputs are \code{TRUE} and \code{FALSE} respectively. The for \code{is_true}, \code{is_false}, \code{is_not_true} and \code{is_not_false}, \code{x} argument will be coerced to be a logical vector if it isn't already. Coercion to logical is optional for \code{is_na} and \code{is_not_na}. If you do coerce, it means that \code{is_na} differs in behaviour from \code{base::is.na} for character vector, list and data frame inputs. To replicate the behaviour of \code{is.na}, ensure the argument \code{coerce_to_logical} is \code{FALSE} (this is the default). Note that in assertive version 0.1-4 and prior, \code{is_identical_to_true/false} were named \code{is_true/false} and the vectorized versions were not present. } \examples{ # Checks against logical values using base::identical assert_is_identical_to_true(TRUE) assert_is_identical_to_false(FALSE) assert_is_identical_to_na(NA) # Other NA types match assert_is_identical_to_na(NA_complex_) # NaN is not NA dont_stop(assert_is_identical_to_na(NaN)) # For a slightly less strict test, you can ignore attributes assert_is_identical_to_true(c(truth = TRUE), allow_attributes = TRUE) assert_is_identical_to_false(matrix(FALSE), allow_attributes = TRUE) assert_is_identical_to_na(structure(NA, class = "nanana"), allow_attributes = TRUE) # Vectorized predicates (package name explicitly given to prevent # problems with testthat name clash) x <- c(TRUE, FALSE, NA) assertive.base::is_true(x) assertive.base::is_false(x) is_na(x) # ...and their opposites is_not_true(x) is_not_false(x) is_not_na(x) # Check that at least one element fits the condition assert_any_are_true(x) assert_any_are_false(x) assert_any_are_na(x) # These checks should fail: dont_stop({ assert_is_identical_to_true(c(truth = TRUE)) assert_is_identical_to_true(1) assert_is_identical_to_true(c(TRUE, TRUE)) assert_is_identical_to_false(matrix(FALSE)) assert_is_identical_to_na(structure(NA, class = "nanana")) assert_all_are_true(x) assert_all_are_false(x) assert_all_are_na(x) }) # base::is.na has non-standard behaviour for data.frames and lists. # is_na and is_not_na coerce to logical vectors (except character input). # unlist the input or use an apply function. d <- data.frame( x = c(TRUE, FALSE, NA), y = c(0, NA, 2), z = c("a", "NA", NA) ) is.na(d) is_na(unlist(d)) } \seealso{ \code{\link[base]{isTRUE}}. } assertive.base/man/na.Rd0000644000176200001440000000073413021047322014626 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/engine.R \name{na} \alias{na} \title{NA, with a cause of failure.} \usage{ na(...) } \arguments{ \item{...}{Passed to \code{gettextf} to create a cause of failure message.} } \value{ \code{NA} with the attribute \code{cause}, as provided in the input. } \description{ Always returns the value (logical) \code{NA}, with a cause attribute. } \seealso{ \code{\link{cause}} and \code{\link{false}}. } assertive.base/man/use_first.Rd0000644000176200001440000000130713021047322016230 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/utils.R \name{use_first} \alias{use_first} \title{Only use the first element of a vector} \usage{ use_first(x, indexer = c("[[", "["), .xname = get_name_in_parent(x)) } \arguments{ \item{x}{Input that should be scalar.} \item{indexer}{Either double indexing, \code{"[["} (the default) or single indexing \code{"["}.} \item{.xname}{Not intended to be used directly.} } \value{ If \code{x} is scalar, it is returned unchanged, otherwise only the first element is returned, with a warning. } \description{ If the input is not scalar, then only the first element is returned, with a warning. } \examples{ dont_stop(use_first(1:5)) } assertive.base/man/is2.Rd0000644000176200001440000000146613021054440014727 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/coercion.R \name{is2} \alias{is2} \title{Alternative version of is} \usage{ is2(x, class, .xname = get_name_in_parent(x)) } \arguments{ \item{x}{Input to check.} \item{class}{Target class that \code{x} maybe belong to.} \item{.xname}{Not intended to be used directly.} } \value{ \code{TRUE} if x belongs to the class and \code{FALSE} otherwise. } \description{ If a function named \code{is.class} exists, call \code{is.class(x)}. If not, call \code{is(x, class)}. } \examples{ is2(1:5, "character") is2(matrix(1:5), "character") is2(1:5, c("character", "list", "numeric")) is2(mean, c("function", "data.frame")) } \seealso{ \code{\link[methods]{is}}, and \code{\link[assertive.types]{assert_is_all_of}} for the corresponding assert fns. } assertive.base/man/safe_deparse.Rd0000644000176200001440000000173713021047322016655 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/utils.R \name{safe_deparse} \alias{safe_deparse} \title{Safe version of deparse} \usage{ safe_deparse(expr, ...) } \arguments{ \item{expr}{Any R expression.} \item{...}{Passed to \code{\link[base]{deparse}}.} } \value{ A character vector or length one. } \description{ A version of \code{\link[base]{deparse}} that is guaranteed to always return a single string. } \note{ By default the RStudio IDE truncates output in the console at 1000 characters. Consequently, if you use \code{safe_deparse} on large or complex objects, you won't see the full value. You can change the setting using Tools -> "Global Options..." -> Code -> Display -> Console -> "Limit length of lines displayed in console to:". } \examples{ # safe_deparse only differs from deparse when the deparse string is longer # than width.cutoff deparse(CO2, width.cutoff = 500L) # has length 6 safe_deparse(CO2) # has length 1 } assertive.base/man/get_name_in_parent.Rd0000644000176200001440000000141113021047322020037 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/utils.R \name{get_name_in_parent} \alias{get_name_in_parent} \title{Get the name of a variable in the parent frame} \usage{ get_name_in_parent(x, escape_percent = TRUE) } \arguments{ \item{x}{Variable to get the name of.} \item{escape_percent}{Logical. If \code{TRUE}, percent signs are doubled, making the value suitable for use with \code{sprintf} (and hence by \code{false} and \code{na}).} } \value{ A string giving the name of the input in the parent frame. } \description{ Gets the name of the input in the parent frame. } \examples{ outside <- 1 f <- function(inside, escape_percent) { get_name_in_parent(inside, escape_percent) } f(outside, TRUE) f('10\%', TRUE) f('10\%', FALSE) } assertive.base/man/assert_engine.Rd0000644000176200001440000000401113021047322017046 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/engine.R \name{assert_engine} \alias{assert_engine} \title{Throws an error if a condition isn't met} \usage{ assert_engine(predicate, ..., msg = "The assertion failed.", what = c("all", "any"), na_ignore = FALSE, severity = c("stop", "warning", "message", "none")) } \arguments{ \item{predicate}{Function that returns a logical value (possibly a vector).} \item{...}{Passed to the \code{predicate} function.} \item{msg}{The error message, in the event of failure.} \item{what}{Either 'all' or 'any', to reduce vectorised tests to a single value.} \item{na_ignore}{A logical value. If \code{FALSE}, \code{NA} values cause an error; otherwise they do not. Like \code{na.rm} in many stats package functions, except that the position of the failing values does not change.} \item{severity}{How severe should the consequences of the assertion be? Either \code{"stop"}, \code{"warning"}, \code{"message"}, or \code{"none"}.} } \value{ \code{FALSE} with the attribute \code{message}, as provided in the input. } \description{ The workhorse of the package that creates an assertion from a predicate. If a condition isn't met, then an error is thrown. This function is exported for use by package developers so that they can create their own assert functions. } \note{ Missing values are considered as \code{FALSE} for the purposes of whether or not an error is thrown. } \examples{ # Basic usage is like do.call; pass a predicate and the arguments to it. dont_stop(assert_engine(is_true, c(TRUE, FALSE, NA))) # Customise the error message dont_stop( assert_engine(is_true, c(TRUE, FALSE, NA), msg = "Not everything is true") ) # Only fail when no values match the predicate's conditions dont_stop(assert_engine(is_true, logical(3), what = "any")) # You can use base predicates, but the error message isn't as informative dont_stop(assert_engine(is.matrix, 1:5)) # Reduce the severity of failure assert_engine(is_true, c(TRUE, FALSE, NA), severity = "message") } assertive.base/man/merge_dots_with_list.Rd0000644000176200001440000000205413021047322020443 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/utils.R \name{merge_dots_with_list} \alias{merge_dots_with_list} \title{Merge ellipsis args with a list.} \usage{ merge_dots_with_list(..., l = list(), warn_on_dupes = TRUE, allow_unnamed_elements = FALSE) } \arguments{ \item{...}{Some inputs.} \item{l}{A list.} \item{warn_on_dupes}{\code{TRUE} or \code{FALSE}. Should a warning be given if both \code{x} and \code{y} have elements with the same name. See note.} \item{allow_unnamed_elements}{\code{TRUE} or \code{FALSE}. Should unnamed elements be allowed?} } \value{ A list containing the merged inputs. } \description{ Merges variable length ellipsis arguments to a function with a list argument. } \note{ If any arguments are present in both the \code{...} and \code{l} arguments, the \code{...} version takes preference, and a warning is thrown. } \examples{ merge_dots_with_list( foo = 1, bar = 2, baz = 3, l = list(foo = 4, baz = 5, quux = 6) ) } \seealso{ \code{\link{merge.list}}, \code{\link[base]{merge}} } assertive.base/man/call_and_name.Rd0000644000176200001440000000213113027011543016760 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/utils.R \name{call_and_name} \alias{call_and_name} \title{Call a function, and give the result names.} \usage{ call_and_name(fn, x, ...) } \arguments{ \item{fn}{A function to call. See note below.} \item{x}{The first input to \code{fn}.} \item{...}{Optional additional inputs to \code{fn}.} } \value{ The result of \code{fn(x, ...)}, with names given by the argument \code{x}. } \description{ Calls a function, and names the result with the first argument. } \note{ The function, \code{fn}, should return an object with the same length as the input \code{x}. For speed and simplicity, this isn't checked; it is up to the developer of the assertion to make sure that this condition holds. } \examples{ call_and_name(is.finite, c(1, Inf, NA)) # Make sure that the output is the same size as the input. # Don't do this: dont_stop(call_and_name(isTRUE, list(TRUE, FALSE, NA))) # Do this instead: call_and_name( Vectorize(isTRUE, SIMPLIFY = FALSE), list(TRUE, FALSE, NA) ) } \seealso{ \code{\link{cause}} and \code{\link{na}}. } assertive.base/man/set_cause.Rd0000644000176200001440000000160713021047322016203 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/cause.R \name{set_cause} \alias{set_cause} \title{Set a cause and return the input} \usage{ set_cause(x, false_value, missing_value = "missing") } \arguments{ \item{x}{A variable.} \item{false_value}{A character vector to set the cause to, where \code{x} is \code{FALSE}.} \item{missing_value}{A character vector to set the cause to, where \code{x} is \code{NA}.} } \value{ \code{x}, with a new cause attribute. } \description{ Sets the cause attribute of an object and returns that object. } \details{ If \code{x} is \code{TRUE} everywhere, this returns the input without setting a cause. Otherwise, the cause is an empty string where \code{x} is \code{TRUE}, \code{false_value} where it is \code{FALSE}, and \code{missing_value} where it is \code{NA}. } \seealso{ \code{\link{cause}}, \code{\link[stats]{setNames}} } assertive.base/man/parenthesize.Rd0000644000176200001440000000276013021047322016732 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/utils.R \name{parenthesize} \alias{parenthesise} \alias{parenthesize} \title{Wrap a string in brackets} \usage{ parenthesize(x, type = c("round_brackets", "square_brackets", "curly_brackets", "angle_brackets", "chevrons", "hyphens", "en_dashes", "em_dashes", "commas")) parenthesise(x, type = c("round_brackets", "square_brackets", "curly_brackets", "angle_brackets", "chevrons", "hyphens", "en_dashes", "em_dashes", "commas")) } \arguments{ \item{x}{Character vector to wrap in parenthenses.} \item{type}{String naming the type of parenthesis.} } \value{ A character vector of the input wrapped in parentheses. } \description{ Parenthesise a character vector by wrapping elements in brackets, dashes or commas. } \note{ English grammar terminology is awfully confusing. The verb 'to parenthesise' means to wrap a phrase in brackets or dashes or commas, thus denoting it as supplementary material that could be left out. A 'parenthesis' as a noun is often used as a synonym for a round bracket. } \examples{ paste("There were three", parenthesise(3), "mice in the experiment.") paste( "I love parmos", parenthesise("Teesside's finest culinary invention", "en_dashes"), "but they are sure to give me heart disease." ) parenthesise(letters[1:5], "curly") paste0( "The R language", parenthesise("an offshoot of S and Scheme", "commas"), "is quite good for data analysis." ) } \seealso{ \code{\link[base]{sQuote}} } assertive.base/man/bapply.Rd0000644000176200001440000000113513021047322015513 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/utils.R \name{bapply} \alias{bapply} \title{Wrapper to vapply that returns booleans} \usage{ bapply(x, predicate, ...) } \arguments{ \item{x}{A vector (atomic or list).} \item{predicate}{A predicate (function that returns a bool) to apply. elementwise to \code{x}.} \item{...}{Passed to \code{vapply}.} } \value{ A logical vector. } \description{ Wrapper to \code{\link{vapply}} for functions that return a boolean (logical scalar) value. } \note{ \code{USE.NAMES} is set to \code{TRUE} } \seealso{ \code{\link{vapply}}. } assertive.base/man/assertionError.Rd0000644000176200001440000000266113021047322017252 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/conditions.R \name{assertionError} \alias{assertionError} \alias{assertionMessage} \alias{assertionWarning} \title{Condition classes} \usage{ assertionError(message, call = NULL, predicate_name = NULL) assertionWarning(message, call = NULL, predicate_name = NULL) assertionMessage(message, call = NULL, predicate_name = NULL) } \arguments{ \item{message}{A string describing the problem.} \item{call}{A call describing the source of the condition.} \item{predicate_name}{A string naming the predicate that was called when the condition occured.} } \value{ An object of class \code{assertionError}, \code{assertionWarning}, or \code{assertionMessage}. } \description{ Error, warning, and message classes derived from their simple equivalents. } \note{ These objects behave the same as the standard-issue \code{simpleError}, \code{simpleWarning}, and \code{simpleMessage} objects from base-R. The extra class allows you to provide custom handling for assertions inside \code{tryCatch}. } \examples{ tryCatch( assert_all_are_true(FALSE), error = function(e) { if(inherits(e, "assertionCondition")) { # Handle assertions message("This is an assertion condition.") # Handle assertions cause by a specific predicate if(e$predicate_name == "is_true") { } } else { # Handle other error types } } ) } assertive.base/man/false.Rd0000644000176200001440000000074113021047322015320 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/engine.R \name{false} \alias{false} \title{FALSE, with a cause of failure.} \usage{ false(...) } \arguments{ \item{...}{Passed to \code{gettextf} to create a cause of failure message.} } \value{ \code{FALSE} with the attribute \code{cause}, as provided in the input. } \description{ Always returns the value \code{FALSE}, with a cause attribute. } \seealso{ \code{\link{cause}} and \code{\link{na}}. } assertive.base/man/cause.Rd0000644000176200001440000000121613021047322015324 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/cause.R \name{cause} \alias{cause} \alias{cause<-} \title{Get or set the \code{"cause"} attribute} \usage{ cause(x) cause(x) <- value } \arguments{ \item{x}{Any variable.} \item{value}{Passed to \code{gettextf} and stored in the \code{"cause"} attribute.} } \value{ The get method returns the \code{"cause"} attribute. } \description{ Gets or sets the \code{"cause"} (of failure) attribute of a variable. } \examples{ # Scalar case yn <- is_identical_to_true(FALSE) cause(yn) # Vector case yn <- is_true(c(TRUE, FALSE, NA)) cause(yn) } \seealso{ \code{\link{set_cause}} } assertive.base/man/coerce_to.Rd0000644000176200001440000000243413021047322016171 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/coercion.R \name{coerce_to} \alias{coerce_to} \title{Coerce variable to a different class} \usage{ coerce_to(x, target_class, .xname = get_name_in_parent(x)) } \arguments{ \item{x}{Input to coerce.} \item{target_class}{The desired class of x. Multiple values allowed (see note).} \item{.xname}{Not intended to be used directly.} } \value{ The input \code{x} after attempted coercion to the target class. } \description{ Coerce the input to a different class, with a warning. More reliable then \code{\link[methods]{as}}, and supports coercion to multiple classes. } \note{ If x does not already have the target class, a warning is given before coercion. The function will try and convert the \code{x} to each of the classes given in \code{target_class}, in order, until it succeeds or runs out of classes to try. It will first try and convert \code{x} using a dedicated \code{as.target_class} function if that exists. If it does not exist, or throws an error then \code{coerce_to} will try to use \code{as(x, target_class)}. } \examples{ # Numbers can be coerced to characters but not to calls. dont_stop(coerce_to(1:5, c("call", "character"))) } \seealso{ \code{\link[methods]{is}} and \code{\link[methods]{as}}. } assertive.base/man/dont_stop.Rd0000644000176200001440000000153413021047322016240 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/utils.R \name{dont_stop} \alias{dont_stop} \title{Run code without stopping} \usage{ dont_stop(expr) } \arguments{ \item{expr}{Code to execute.} } \value{ A list containing the results of evaluating each call in \code{expr}. } \description{ Runs code without stopping for warnings or errors. } \note{ This function is dangerous, since it overrides warnings and errors. Its intended use is for documenting examples of warnings and errors. } \examples{ dont_stop({ warning("a warning") x <- 1 stop("an error") y <- sqrt(exp(x + 1)) assert_is_identical_to_true(y) y > 0 }) } \seealso{ \code{\link[base]{warning}} and \code{\link[base]{stop}} for generating warnings and errors respectively; \code{\link[base]{try}} and \code{\link[base]{conditions}} for handling them. } assertive.base/man/strip_attributes.Rd0000644000176200001440000000072513021047322017637 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/utils.R \name{strip_attributes} \alias{strip_attributes} \title{Strip all attributes from a variable} \usage{ strip_attributes(x) } \arguments{ \item{x}{Input to strip.} } \value{ \code{x}, without attributes. } \description{ Strips all the attributes from a variable. } \examples{ x <- structure(c(foo = 1, bar = 2), some_attr = 3) x2 <- strip_attributes(x) attributes(x) attributes(x2) } assertive.base/man/print_and_capture.Rd0000644000176200001440000000123313021047322017724 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/utils.R \name{print_and_capture} \alias{print_and_capture} \title{Print a variable and capture the output} \usage{ print_and_capture(x, ...) } \arguments{ \item{x}{A variable.} \item{...}{Arguments passed to \code{\link[base]{print}} methods.} } \value{ A string. } \description{ Prints a variable and captures the output, collapsing the value to a single string. } \examples{ # This is useful for including data frames in warnings or errors message("This is the sleep dataset:\\n", print_and_capture(sleep)) } \seealso{ \code{\link[base]{print}}, \code{\link[utils]{capture.output}} } assertive.base/man/merge.list.Rd0000644000176200001440000000230013021047322016270 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/utils.R \name{merge.list} \alias{merge.list} \title{Merge two lists} \usage{ \method{merge}{list}(x, y, warn_on_dupes = TRUE, allow_unnamed_elements = FALSE, ...) } \arguments{ \item{x}{A list.} \item{y}{A list.} \item{warn_on_dupes}{\code{TRUE} or \code{FALSE}. Should a warning be given if both \code{x} and \code{y} have elements with the same name. See note.} \item{allow_unnamed_elements}{\code{TRUE} or \code{FALSE}. Should unnamed elements be allowed?} \item{...}{Ignored.} } \value{ A list, combining elements from \code{x} and \code{y}. } \description{ Merges two lists, taking duplicated elements from the first list. } \note{ In the event of elements that are duplicated between \code{x} and \code{y}, the versions from \code{x} are used. } \examples{ merge( list(foo = 1, bar = 2, baz = 3), list(foo = 4, baz = 5, quux = 6) ) # If unnamed elements are allowed, they are included at the end merge( list("a", foo = 1, "b", bar = 2, baz = 3, "c"), list(foo = 4, "a", baz = 5, "b", quux = 6, "d"), allow_unnamed_elements = TRUE ) } \seealso{ \code{\link{merge_dots_with_list}}, \code{\link[base]{merge}} }