@@ -68,7 +68,11 @@ expect_equal <- function(
6868  check_number_decimal(tolerance , min  =  0 , allow_null  =  TRUE )
6969
7070  if  (edition_get() > =  3 ) {
71-     expect_waldo_equal_(" equal"  , act , exp , info , ... , tolerance  =  tolerance )
71+     if  (
72+       ! expect_waldo_equal_(" equal"  , act , exp , info , ... , tolerance  =  tolerance )
73+     ) {
74+       return ()
75+     }
7276  } else  {
7377    if  (! is.null(tolerance )) {
7478      comp  <-  compare(act $ val , exp $ val , ... , tolerance  =  tolerance )
@@ -84,8 +88,8 @@ expect_equal <- function(
8488      )
8589      return (fail(msg , info  =  info ))
8690    }
87-     pass(act $ val )
8891  }
92+   pass(act $ val )
8993}
9094
9195
@@ -103,30 +107,29 @@ expect_identical <- function(
103107  exp  <-  quasi_label(enquo(expected ), expected.label )
104108
105109  if  (edition_get() > =  3 ) {
106-     expect_waldo_equal_(" identical"  , act , exp , info , ... )
110+     if  (! expect_waldo_equal_(" identical"  , act , exp , info , ... )) {
111+       return ()
112+     }
107113  } else  {
108114    ident  <-  identical(act $ val , exp $ val , ... )
109-     if  (ident ) {
110-       msg_act  <-  NULL 
111-     } else  {
115+     if  (! ident ) {
112116      compare  <-  compare(act $ val , exp $ val )
113117      if  (compare $ equal ) {
114118        msg_act  <-  " Objects equal but not identical" 
115119      } else  {
116120        msg_act  <-  compare $ message 
117121      }
118-     }
119122
120-     if  (! ident ) {
121123      msg  <-  c(
122124        sprintf(" Expected %s to be identical to %s."  , act $ lab , exp $ lab ),
123125        " Differences:"  ,
124126        msg_act 
125127      )
126128      return (fail(msg , info  =  info ))
127129    }
128-     pass(act $ val )
129130  }
131+ 
132+   pass(act $ val )
130133}
131134
132135expect_waldo_equal_  <-  function (
@@ -144,15 +147,16 @@ expect_waldo_equal_ <- function(
144147    x_arg  =  " actual"  ,
145148    y_arg  =  " expected" 
146149  )
147-   if  (length(comp ) !=  0 ) {
148-     msg  <-  c(
149-       sprintf(" Expected %s to be %s to %s."  , act $ lab , type , exp $ lab ),
150-       " Differences:"  ,
151-       paste0(comp , collpase  =  " \n "  )
152-     )
153-     return (fail(msg , info  =  info , trace_env  =  trace_env ))
150+   if  (length(comp ) ==  0 ) {
151+     return (TRUE )
154152  }
155-   pass(act $ val )
153+ 
154+   msg  <-  c(
155+     sprintf(" Expected %s to be %s to %s."  , act $ lab , type , exp $ lab ),
156+     " Differences:"  ,
157+     paste0(comp , collpase  =  " \n "  )
158+   )
159+   fail(msg , info  =  info , trace_env  =  trace_env )
156160}
157161
158162# ' Is an object equal to the expected value, ignoring attributes?
0 commit comments