Inequality join works to perform between operation

we can union the same relation to itself

Symmetric difference returns the symmetric difference

rel aggregate with no groups but a sum over a column, sums the column

rel aggregate with groups and aggregate function works

Expected `res` to equal `expected_result`.
Differences:
  `attr(actual, 'row.names')`: NA -8            
`attr(expected, 'row.names')`:  1  2 3 4 5 6 7 8

Window sum expression function test works

Window sum with Partition, order, and window boundaries works

Window boundaries boundaries are CaSe INsenSItive

Window avg with a filter expression and partition works

function name for window is case insensitive

Expected `res` to equal `expected_result`.
Differences:
  `attr(actual, 'row.names')`: NA -4    
`attr(expected, 'row.names')`:  1  2 3 4

Window function with string aggregate works

You can perform window functions on row_number

Expected `res` to equal `expected_result`.
Differences:
  `attr(actual, 'row.names')`: NA -5      
`attr(expected, 'row.names')`:  1  2 3 4 5

You can perform the window function min_rank

You can perform the window function dense_rank

You can perform the window function cume_dist

You can perform the window function percent rank

Expected `res` to equal `data.frame(x = c(1, 1))`.
Differences:
  `attr(actual, 'row.names')`: NA -2
`attr(expected, 'row.names')`:  1  2

Expected `res` to equal `data.frame(x = c(2, 2))`.
Differences:
  `attr(actual, 'row.names')`: NA -2
`attr(expected, 'row.names')`:  1  2

Expected `df` to equal `ans`.
Differences:
  `attr(actual, 'row.names')`:  1   
`attr(expected, 'row.names')`: NA -1

rel_project does not automatically quote upper-case column names

Expected `rel_to_altrep(rel)` to equal `df1`.
Differences:
  `attr(actual, 'row.names')`: NA -3  
`attr(expected, 'row.names')`:  1  2 3

Expected `rel_to_altrep(rel)` to equal `df1`.
Differences:
  `attr(actual, 'row.names')`: NA -4    
`attr(expected, 'row.names')`:  1  2 3 4

Expected `rel_to_altrep(rel)` to equal `df1`.
Differences:
  `attr(actual, 'row.names')`: NA -3  
`attr(expected, 'row.names')`:  1  2 3

  `attr(actual$a, 'row.names')`: NA -3  
`attr(expected$a, 'row.names')`:  1  2 3