@@ -51,15 +51,16 @@ expect_type <- function(object, type) {
5151 act <- quasi_label(enquo(object ), arg = " object" )
5252 act_type <- typeof(act $ val )
5353
54- expect(
55- identical(act_type , type ),
56- sprintf(
54+ if (! identical(act_type , type )) {
55+ msg <- sprintf(
5756 " %s has type %s, not %s." ,
5857 act $ lab ,
5958 format_class(act_type ),
6059 format_class(type )
6160 )
62- )
61+ fail(msg )
62+ }
63+ succeed()
6364 invisible (act $ val )
6465}
6566
@@ -74,28 +75,34 @@ expect_s3_class <- function(object, class, exact = FALSE) {
7475 exp_lab <- format_class(class )
7576
7677 if (identical(class , NA )) {
77- expect(
78- isS3( object ) == ! is.na( class ),
79- sprintf( " %s is an S3 object " , act $ lab )
80- )
78+ if (isS3( object )) {
79+ msg <- sprintf( " %s is an S3 object " , act $ lab )
80+ fail( msg )
81+ }
8182 } else if (is.character(class )) {
8283 if (! isS3(act $ val )) {
8384 fail(sprintf(" %s is not an S3 object" , act $ lab ))
8485 } else if (exact ) {
85- expect(
86- identical( class( act $ val ), class ),
87- sprintf( " %s has class %s, not %s. " , act $ lab , act $ class , exp_lab )
88- )
86+ if ( ! identical(class( act $ val ), class )) {
87+ msg <- sprintf( " %s has class %s, not %s. " , act $ lab , act $ class , exp_lab )
88+ fail( msg )
89+ }
8990 } else {
90- expect(
91- inherits(act $ val , class ),
92- sprintf(" %s inherits from %s not %s." , act $ lab , act $ class , exp_lab )
93- )
91+ if (! inherits(act $ val , class )) {
92+ msg <- sprintf(
93+ " %s inherits from %s not %s." ,
94+ act $ lab ,
95+ act $ class ,
96+ exp_lab
97+ )
98+ fail(msg )
99+ }
94100 }
95101 } else {
96102 abort(" `class` must be a NA or a character vector" )
97103 }
98104
105+ succeed()
99106 invisible (act $ val )
100107}
101108
@@ -112,20 +119,18 @@ expect_s7_class <- function(object, class) {
112119 if (! S7 :: S7_inherits(object )) {
113120 fail(sprintf(" %s is not an S7 object" , act $ lab ))
114121 } else {
115- expect(
116- S7 :: S7_inherits(object , class ),
117- sprintf(
122+ if (! S7 :: S7_inherits(object , class )) {
123+ obj_class <- setdiff(base :: class(object ), " S7_object" )
124+ class_desc <- paste0(" <" , obj_class , " >" , collapse = " /" )
125+ msg <- sprintf(
118126 " %s inherits from %s not <%s>." ,
119127 act $ lab ,
120- paste0(
121- " <" ,
122- setdiff(base :: class(object ), " S7_object" ),
123- " >" ,
124- collapse = " /"
125- ),
128+ class_desc ,
126129 attr(class , " name" , TRUE )
127130 )
128- )
131+ fail(msg )
132+ }
133+ succeed()
129134 }
130135
131136 invisible (act $ val )
@@ -139,18 +144,25 @@ expect_s4_class <- function(object, class) {
139144 exp_lab <- format_class(class )
140145
141146 if (identical(class , NA )) {
142- expect(
143- isS4(object ) == ! is.na(class ),
144- sprintf(" %s is an S4 object" , act $ lab )
145- )
147+ if (! (isS4(object ) == ! is.na(class ))) {
148+ msg <- sprintf(" %s is an S4 object" , act $ lab )
149+ fail(msg )
150+ }
151+ succeed()
146152 } else if (is.character(class )) {
147153 if (! isS4(act $ val )) {
148154 fail(sprintf(" %s is not an S4 object" , act $ lab ))
149155 } else {
150- expect(
151- methods :: is(act $ val , class ),
152- sprintf(" %s inherits from %s not %s." , act $ lab , act $ class , exp_lab )
153- )
156+ if (! methods :: is(act $ val , class )) {
157+ msg <- sprintf(
158+ " %s inherits from %s not %s." ,
159+ act $ lab ,
160+ act $ class ,
161+ exp_lab
162+ )
163+ fail(msg )
164+ }
165+ succeed()
154166 }
155167 } else {
156168 abort(" `class` must be a NA or a character vector" )
@@ -191,11 +203,16 @@ expect_is <- function(object, class, info = NULL, label = NULL) {
191203 act $ class <- format_class(class(act $ val ))
192204 exp_lab <- format_class(class(class ))
193205
194- expect(
195- inherits(act $ val , class ),
196- sprintf(" %s inherits from `%s` not `%s`." , act $ lab , act $ class , exp_lab ),
197- info = info
198- )
206+ if (! inherits(act $ val , class )) {
207+ msg <- sprintf(
208+ " %s inherits from `%s` not `%s`." ,
209+ act $ lab ,
210+ act $ class ,
211+ exp_lab
212+ )
213+ fail(msg , info = info )
214+ }
215+ succeed()
199216 invisible (act $ val )
200217}
201218
0 commit comments