tests/testthat/test-split_terms.R

context("split_terms")

test_that("split_terms", {
  
  expect_equal( split_terms(1), expression(1) )
  expect_equal( split_terms( quote(a) ), expression(a) )        
  expect_equal( split_terms( quote(-a) ), expression(-a) )
  expect_equal( split_terms( quote(a+1) ), expression(a,1) )
  expect_equal( split_terms( quote(1+a) ), expression(1,a) )

  expect_equal( split_terms( quote(a+b+c) ), expression(a,b,c) ) 
  
  expect_equal( split_terms( quote((a+b)+1) ), expression((a+b),1)  )    
  
  expect_equal( split_terms( quote((a+b)+1) , recursive=TRUE ), expression(a,b,1) )
  expect_equal( split_terms( quote((a-b)+1) , recursive=TRUE ), expression(a,-b,1) )
  expect_equal( split_terms( quote(-a) ), expression(-a) )

  # expect_equal( split_terms( quote(a-1) ), expression(a, -1) )         
  # expect_equal( split_terms( quote(-a-1)), expression(-a,-1) )       
  expect_equal( split_terms( quote( -(a+1)) ), expression( -(a+1) ) )    
  expect_equal( split_terms( quote( -(a+1) ), recursive=TRUE ), expression(-a,-1) )

    expect_equal( split_terms( quote( -(a+(b-(c+d)))), recursive=TRUE ), expression(-a,-b,c,d) )
})

Try the formula.tools package in your browser

Any scripts or data that you put into this service are public.

formula.tools documentation built on May 2, 2019, 1:45 p.m.