Running ‘testthat.R’ [13s/15s]
Running the tests in ‘tests/testthat.R’ failed.
Complete output:
  > # This file is part of the standard setup for testthat.
  > # It is recommended that you do not modify it.
  > #
  > # Where should you do additional test configuration?
  > # Learn more about the roles of various files in:
  > # * https://r-pkgs.org/testing-design.html#sec-tests-files-overview
  > # * https://testthat.r-lib.org/articles/special-files.html
  > 
  > library(testthat)
  > library(fjoin)
  > 
  > test_check("fjoin")
        id      c    R.c
     <int> <char> <char>
  1:     2 row A2 row B7
  2:     2 row A3 row B7
  3:     3 row A4 row B5
  4:     3 row A4 row B6
        id    c.x    c.y
     <int> <char> <char>
  1:     2 row A2 row B7
  2:     2 row A3 row B7
  3:     3 row A4 row B5
  4:     3 row A4 row B6
        id      c    R.c
     <int> <char> <char>
  1:     2 row A2 row B7
  2:     2 row A3 row B7
  3:     3 row A4 row B5
  4:     3 row A4 row B6
  5:    NA row A5 row B1
  6:    NA row A5 row B2
  7:    NA row A6 row B1
  8:    NA row A6 row B2
        id    c.x    c.y
     <int> <char> <char>
  1:     2 row A2 row B7
  2:     2 row A3 row B7
  3:     3 row A4 row B5
  4:     3 row A4 row B6
  5:    NA row A5 row B1
  6:    NA row A5 row B2
  7:    NA row A6 row B1
  8:    NA row A6 row B2
        id      c    R.c
     <int> <char> <char>
  1:     3 row A4 row B5
  2:     3 row A4 row B6
  3:     2 row A2 row B7
  4:     2 row A3 row B7
        id    c.x    c.y
     <int> <char> <char>
  1:     3 row A4 row B5
  2:     3 row A4 row B6
  3:     2 row A2 row B7
  4:     2 row A3 row B7
        id      c    R.c
     <int> <char> <char>
  1:     1 row A1   <NA>
  2:     2 row A2 row B7
  3:     2 row A3 row B7
  4:     3 row A4 row B5
  5:     3 row A4 row B6
  6:    NA row A5   <NA>
  7:    NA row A6   <NA>
        id    c.x    c.y
     <int> <char> <char>
  1:     1 row A1   <NA>
  2:     2 row A2 row B7
  3:     2 row A3 row B7
  4:     3 row A4 row B5
  5:     3 row A4 row B6
  6:    NA row A5   <NA>
  7:    NA row A6   <NA>
        id      c    R.c
     <int> <char> <char>
  1:     1 row A1   <NA>
  2:     2 row A2 row B7
  3:     2 row A3 row B7
  4:     3 row A4 row B5
  5:     3 row A4 row B6
  6:    NA row A5 row B1
  7:    NA row A5 row B2
  8:    NA row A6 row B1
  9:    NA row A6 row B2
        id    c.x    c.y
     <int> <char> <char>
  1:     1 row A1   <NA>
  2:     2 row A2 row B7
  3:     2 row A3 row B7
  4:     3 row A4 row B5
  5:     3 row A4 row B6
  6:    NA row A5 row B1
  7:    NA row A5 row B2
  8:    NA row A6 row B1
  9:    NA row A6 row B2
        id      c    R.c
     <int> <char> <char>
  1:     3 row A4 row B5
  2:     3 row A4 row B6
  3:     2 row A2 row B7
  4:     2 row A3 row B7
  5:     1 row A1   <NA>
  6:    NA row A5   <NA>
  7:    NA row A6   <NA>
        id    c.x    c.y
     <int> <char> <char>
  1:     3 row A4 row B5
  2:     3 row A4 row B6
  3:     2 row A2 row B7
  4:     2 row A3 row B7
  5:     1 row A1   <NA>
  6:    NA row A5   <NA>
  7:    NA row A6   <NA>
        id      c    R.c
     <int> <char> <char>
  1:     2 row A2 row B7
  2:     2 row A3 row B7
  3:     3 row A4 row B5
  4:     3 row A4 row B6
  5:    NA   <NA> row B1
  6:    NA   <NA> row B2
  7:     4   <NA> row B3
  8:     4   <NA> row B4
        id    c.x    c.y
     <int> <char> <char>
  1:     2 row A2 row B7
  2:     2 row A3 row B7
  3:     3 row A4 row B5
  4:     3 row A4 row B6
  5:    NA   <NA> row B1
  6:    NA   <NA> row B2
  7:     4   <NA> row B3
  8:     4   <NA> row B4
         id      c    R.c
      <int> <char> <char>
   1:     2 row A2 row B7
   2:     2 row A3 row B7
   3:     3 row A4 row B5
   4:     3 row A4 row B6
   5:    NA row A5 row B1
   6:    NA row A5 row B2
   7:    NA row A6 row B1
   8:    NA row A6 row B2
   9:     4   <NA> row B3
  10:     4   <NA> row B4
         id    c.x    c.y
      <int> <char> <char>
   1:     2 row A2 row B7
   2:     2 row A3 row B7
   3:     3 row A4 row B5
   4:     3 row A4 row B6
   5:    NA row A5 row B1
   6:    NA row A5 row B2
   7:    NA row A6 row B1
   8:    NA row A6 row B2
   9:     4   <NA> row B3
  10:     4   <NA> row B4
        id      c    R.c
     <int> <char> <char>
  1:    NA   <NA> row B1
  2:    NA   <NA> row B2
  3:     4   <NA> row B3
  4:     4   <NA> row B4
  5:     3 row A4 row B5
  6:     3 row A4 row B6
  7:     2 row A2 row B7
  8:     2 row A3 row B7
        id    c.x    c.y
     <int> <char> <char>
  1:    NA   <NA> row B1
  2:    NA   <NA> row B2
  3:     4   <NA> row B3
  4:     4   <NA> row B4
  5:     3 row A4 row B5
  6:     3 row A4 row B6
  7:     2 row A2 row B7
  8:     2 row A3 row B7
         id      c    R.c
      <int> <char> <char>
   1:     1 row A1   <NA>
   2:     2 row A2 row B7
   3:     2 row A3 row B7
   4:     3 row A4 row B5
   5:     3 row A4 row B6
   6:    NA row A5   <NA>
   7:    NA row A6   <NA>
   8:    NA   <NA> row B1
   9:    NA   <NA> row B2
  10:     4   <NA> row B3
  11:     4   <NA> row B4
         id    c.x    c.y
      <int> <char> <char>
   1:     1 row A1   <NA>
   2:     2 row A2 row B7
   3:     2 row A3 row B7
   4:     3 row A4 row B5
   5:     3 row A4 row B6
   6:    NA row A5   <NA>
   7:    NA row A6   <NA>
   8:    NA   <NA> row B1
   9:    NA   <NA> row B2
  10:     4   <NA> row B3
  11:     4   <NA> row B4
         id      c    R.c
      <int> <char> <char>
   1:     1 row A1   <NA>
   2:     2 row A2 row B7
   3:     2 row A3 row B7
   4:     3 row A4 row B5
   5:     3 row A4 row B6
   6:    NA row A5 row B1
   7:    NA row A5 row B2
   8:    NA row A6 row B1
   9:    NA row A6 row B2
  10:     4   <NA> row B3
  11:     4   <NA> row B4
         id    c.x    c.y
      <int> <char> <char>
   1:     1 row A1   <NA>
   2:     2 row A2 row B7
   3:     2 row A3 row B7
   4:     3 row A4 row B5
   5:     3 row A4 row B6
   6:    NA row A5 row B1
   7:    NA row A5 row B2
   8:    NA row A6 row B1
   9:    NA row A6 row B2
  10:     4   <NA> row B3
  11:     4   <NA> row B4
         id      c    R.c
      <int> <char> <char>
   1:    NA   <NA> row B1
   2:    NA   <NA> row B2
   3:     4   <NA> row B3
   4:     4   <NA> row B4
   5:     3 row A4 row B5
   6:     3 row A4 row B6
   7:     2 row A2 row B7
   8:     2 row A3 row B7
   9:     1 row A1   <NA>
  10:    NA row A5   <NA>
  11:    NA row A6   <NA>
         id    c.x    c.y
      <int> <char> <char>
   1:    NA   <NA> row B1
   2:    NA   <NA> row B2
   3:     4   <NA> row B3
   4:     4   <NA> row B4
   5:     3 row A4 row B5
   6:     3 row A4 row B6
   7:     2 row A2 row B7
   8:     2 row A3 row B7
   9:     1 row A1   <NA>
  10:    NA row A5   <NA>
  11:    NA row A6   <NA>
         id      c  R.id    R.c
      <int> <char> <int> <char>
   1:     1 row A1    NA row B1
   2:     1 row A1    NA row B2
   3:     1 row A1     4 row B3
   4:     1 row A1     4 row B4
   5:     1 row A1     3 row B5
   6:     1 row A1     3 row B6
   7:     1 row A1     2 row B7
   8:     2 row A2    NA row B1
   9:     2 row A2    NA row B2
  10:     2 row A2     4 row B3
  11:     2 row A2     4 row B4
  12:     2 row A2     3 row B5
  13:     2 row A2     3 row B6
  14:     2 row A2     2 row B7
  15:     2 row A3    NA row B1
  16:     2 row A3    NA row B2
  17:     2 row A3     4 row B3
  18:     2 row A3     4 row B4
  19:     2 row A3     3 row B5
  20:     2 row A3     3 row B6
  21:     2 row A3     2 row B7
  22:     3 row A4    NA row B1
  23:     3 row A4    NA row B2
  24:     3 row A4     4 row B3
  25:     3 row A4     4 row B4
  26:     3 row A4     3 row B5
  27:     3 row A4     3 row B6
  28:     3 row A4     2 row B7
  29:    NA row A5    NA row B1
  30:    NA row A5    NA row B2
  31:    NA row A5     4 row B3
  32:    NA row A5     4 row B4
  33:    NA row A5     3 row B5
  34:    NA row A5     3 row B6
  35:    NA row A5     2 row B7
  36:    NA row A6    NA row B1
  37:    NA row A6    NA row B2
  38:    NA row A6     4 row B3
  39:    NA row A6     4 row B4
  40:    NA row A6     3 row B5
  41:    NA row A6     3 row B6
  42:    NA row A6     2 row B7
         id      c  R.id    R.c
      <int> <char> <int> <char>
       id.x    c.x  id.y    c.y
      <int> <char> <int> <char>
   1:     1 row A1    NA row B1
   2:     1 row A1    NA row B2
   3:     1 row A1     4 row B3
   4:     1 row A1     4 row B4
   5:     1 row A1     3 row B5
   6:     1 row A1     3 row B6
   7:     1 row A1     2 row B7
   8:     2 row A2    NA row B1
   9:     2 row A2    NA row B2
  10:     2 row A2     4 row B3
  11:     2 row A2     4 row B4
  12:     2 row A2     3 row B5
  13:     2 row A2     3 row B6
  14:     2 row A2     2 row B7
  15:     2 row A3    NA row B1
  16:     2 row A3    NA row B2
  17:     2 row A3     4 row B3
  18:     2 row A3     4 row B4
  19:     2 row A3     3 row B5
  20:     2 row A3     3 row B6
  21:     2 row A3     2 row B7
  22:     3 row A4    NA row B1
  23:     3 row A4    NA row B2
  24:     3 row A4     4 row B3
  25:     3 row A4     4 row B4
  26:     3 row A4     3 row B5
  27:     3 row A4     3 row B6
  28:     3 row A4     2 row B7
  29:    NA row A5    NA row B1
  30:    NA row A5    NA row B2
  31:    NA row A5     4 row B3
  32:    NA row A5     4 row B4
  33:    NA row A5     3 row B5
  34:    NA row A5     3 row B6
  35:    NA row A5     2 row B7
  36:    NA row A6    NA row B1
  37:    NA row A6    NA row B2
  38:    NA row A6     4 row B3
  39:    NA row A6     4 row B4
  40:    NA row A6     3 row B5
  41:    NA row A6     3 row B6
  42:    NA row A6     2 row B7
       id.x    c.x  id.y    c.y
      <int> <char> <int> <char>
         id      c  R.id    R.c
      <int> <char> <int> <char>
   1:     1 row A1    NA row B1
   2:     2 row A2    NA row B1
   3:     2 row A3    NA row B1
   4:     3 row A4    NA row B1
   5:    NA row A5    NA row B1
   6:    NA row A6    NA row B1
   7:     1 row A1    NA row B2
   8:     2 row A2    NA row B2
   9:     2 row A3    NA row B2
  10:     3 row A4    NA row B2
  11:    NA row A5    NA row B2
  12:    NA row A6    NA row B2
  13:     1 row A1     4 row B3
  14:     2 row A2     4 row B3
  15:     2 row A3     4 row B3
  16:     3 row A4     4 row B3
  17:    NA row A5     4 row B3
  18:    NA row A6     4 row B3
  19:     1 row A1     4 row B4
  20:     2 row A2     4 row B4
  21:     2 row A3     4 row B4
  22:     3 row A4     4 row B4
  23:    NA row A5     4 row B4
  24:    NA row A6     4 row B4
  25:     1 row A1     3 row B5
  26:     2 row A2     3 row B5
  27:     2 row A3     3 row B5
  28:     3 row A4     3 row B5
  29:    NA row A5     3 row B5
  30:    NA row A6     3 row B5
  31:     1 row A1     3 row B6
  32:     2 row A2     3 row B6
  33:     2 row A3     3 row B6
  34:     3 row A4     3 row B6
  35:    NA row A5     3 row B6
  36:    NA row A6     3 row B6
  37:     1 row A1     2 row B7
  38:     2 row A2     2 row B7
  39:     2 row A3     2 row B7
  40:     3 row A4     2 row B7
  41:    NA row A5     2 row B7
  42:    NA row A6     2 row B7
         id      c  R.id    R.c
      <int> <char> <int> <char>
       id.x    c.x  id.y    c.y
      <int> <char> <int> <char>
   1:     1 row A1    NA row B1
   2:     2 row A2    NA row B1
   3:     2 row A3    NA row B1
   4:     3 row A4    NA row B1
   5:    NA row A5    NA row B1
   6:    NA row A6    NA row B1
   7:     1 row A1    NA row B2
   8:     2 row A2    NA row B2
   9:     2 row A3    NA row B2
  10:     3 row A4    NA row B2
  11:    NA row A5    NA row B2
  12:    NA row A6    NA row B2
  13:     1 row A1     4 row B3
  14:     2 row A2     4 row B3
  15:     2 row A3     4 row B3
  16:     3 row A4     4 row B3
  17:    NA row A5     4 row B3
  18:    NA row A6     4 row B3
  19:     1 row A1     4 row B4
  20:     2 row A2     4 row B4
  21:     2 row A3     4 row B4
  22:     3 row A4     4 row B4
  23:    NA row A5     4 row B4
  24:    NA row A6     4 row B4
  25:     1 row A1     3 row B5
  26:     2 row A2     3 row B5
  27:     2 row A3     3 row B5
  28:     3 row A4     3 row B5
  29:    NA row A5     3 row B5
  30:    NA row A6     3 row B5
  31:     1 row A1     3 row B6
  32:     2 row A2     3 row B6
  33:     2 row A3     3 row B6
  34:     3 row A4     3 row B6
  35:    NA row A5     3 row B6
  36:    NA row A6     3 row B6
  37:     1 row A1     2 row B7
  38:     2 row A2     2 row B7
  39:     2 row A3     2 row B7
  40:     3 row A4     2 row B7
  41:    NA row A5     2 row B7
  42:    NA row A6     2 row B7
       id.x    c.x  id.y    c.y
      <int> <char> <int> <char>
        id      c
     <int> <char>
  1:     2 row A2
  2:     2 row A3
  3:     3 row A4
  Index: <id>
        id      c
     <int> <char>
  1:     2 row A2
  2:     2 row A3
  3:     3 row A4
        id      c
     <int> <char>
  1:     2 row A2
  2:     2 row A3
  3:     3 row A4
  4:    NA row A5
  5:    NA row A6
  Index: <id>
        id      c
     <int> <char>
  1:     2 row A2
  2:     2 row A3
  3:     3 row A4
  4:    NA row A5
  5:    NA row A6
        id      c   id2
     <int> <char> <int>
  1:     2 row A2     2
  2:     2 row A3     2
  3:     3 row A4     3
  Index: <id>
        id      c   id2
     <int> <char> <int>
  1:     2 row A2     2
  2:     2 row A3     2
  3:     3 row A4     3
        id      c   id2
     <int> <char> <int>
  1:     2 row A2     2
  2:     2 row A3     2
  3:     3 row A4     3
  4:    NA row A5    NA
  5:    NA row A6    NA
  Index: <id>
        id      c   id2
     <int> <char> <int>
  1:     2 row A2     2
  2:     2 row A3     2
  3:     3 row A4     3
  4:    NA row A5    NA
  5:    NA row A6    NA
        id      c
     <int> <char>
  1:     3 row B5
  2:     3 row B6
  3:     2 row B7
        id      c
     <int> <char>
  1:     3 row B5
  2:     3 row B6
  3:     2 row B7
        id      c
     <int> <char>
  1:    NA row B1
  2:    NA row B2
  3:     3 row B5
  4:     3 row B6
  5:     2 row B7
  Index: <id>
        id      c
     <int> <char>
  1:    NA row B1
  2:    NA row B2
  3:     3 row B5
  4:     3 row B6
  5:     2 row B7
        id      c   id2
     <int> <char> <int>
  1:     3 row B5     3
  2:     3 row B6     3
  3:     2 row B7     2
  Index: <id>
        id      c   id2
     <int> <char> <int>
  1:     3 row B5     3
  2:     3 row B6     3
  3:     2 row B7     2
        id      c   id2
     <int> <char> <int>
  1:    NA row B1    NA
  2:    NA row B2    NA
  3:     3 row B5     3
  4:     3 row B6     3
  5:     2 row B7     2
  Index: <id>
        id      c   id2
     <int> <char> <int>
  1:    NA row B1    NA
  2:    NA row B2    NA
  3:     3 row B5     3
  4:     3 row B6     3
  5:     2 row B7     2
        id      c
     <int> <char>
  1:     1 row A1
  2:    NA row A5
  3:    NA row A6
  Index: <id>
        id      c
     <int> <char>
  1:     1 row A1
  2:    NA row A5
  3:    NA row A6
        id      c
     <int> <char>
  1:     1 row A1
  Index: <id>
        id      c
     <int> <char>
  1:     1 row A1
        id      c   id2
     <int> <char> <int>
  1:     1 row A1     1
  2:    NA row A5    NA
  3:    NA row A6    NA
  Index: <id>
        id      c   id2
     <int> <char> <int>
  1:     1 row A1     1
  2:    NA row A5    NA
  3:    NA row A6    NA
        id      c   id2
     <int> <char> <int>
  1:     1 row A1     1
  Index: <id>
        id      c   id2
     <int> <char> <int>
  1:     1 row A1     1
        id      c
     <int> <char>
  1:    NA row B1
  2:    NA row B2
  3:     4 row B3
  4:     4 row B4
  Index: <id>
        id      c
     <int> <char>
  1:    NA row B1
  2:    NA row B2
  3:     4 row B3
  4:     4 row B4
        id      c
     <int> <char>
  1:     4 row B3
  2:     4 row B4
  Index: <id>
        id      c
     <int> <char>
  1:     4 row B3
  2:     4 row B4
        id      c   id2
     <int> <char> <int>
  1:    NA row B1    NA
  2:    NA row B2    NA
  3:     4 row B3     4
  4:     4 row B4     4
  Index: <id>
        id      c   id2
     <int> <char> <int>
  1:    NA row B1    NA
  2:    NA row B2    NA
  3:     4 row B3     4
  4:     4 row B4     4
        id      c   id2
     <int> <char> <int>
  1:     4 row B3     4
  2:     4 row B4     4
  Index: <id>
        id      c   id2
     <int> <char> <int>
  1:     4 row B3     4
  2:     4 row B4     4
    id_A t_A      c v_A
  1 <NA>  NA row A8   0
  2 <NA>  NA row A9   0
    id_A t_A      c v_A
  1 <NA>  NA row A8   0
  2 <NA>  NA row A9   0
    id_A t_A      c v_A
  1    a   1 row A2   0
  2    b   1 row A5   0
  3    b   2 row A6   0
  4 <NA>  NA row A8   0
  5 <NA>  NA row A9   0
    id_A t_A      c v_A
  1    a   1 row A2   0
  2    b   1 row A5   0
  3    b   2 row A6   0
  4 <NA>  NA row A8   0
  5 <NA>  NA row A9   0
    id_A t_A      c v_A
  1    a   1 row A2   0
  2    b   5 row A4   0
  3    b   1 row A5   0
  4    b   2 row A6   0
  5    a   3 row A7   0
  6 <NA>  NA row A8   0
  7 <NA>  NA row A9   0
    id_A t_A      c v_A
  1    a   1 row A2   0
  2    b   5 row A4   0
  3    b   1 row A5   0
  4    b   2 row A6   0
  5    a   3 row A7   0
  6 <NA>  NA row A8   0
  7 <NA>  NA row A9   0
    id_A t_A      c v_A
  1 <NA>  NA row A8   0
  2 <NA>  NA row A9   0
    id_A t_A      c v_A
  1 <NA>  NA row A8   0
  2 <NA>  NA row A9   0
    id_A      c
  1 <NA> row A8
  2 <NA> row A9
    id_A      c
  1 <NA> row A8
  2 <NA> row A9
    id_A t_A      c
  1    a   1 row A2
  2    b   1 row A5
  3    b   2 row A6
  4 <NA>  NA row A8
  5 <NA>  NA row A9
    id_A t_A      c
  1    a   1 row A2
  2    b   1 row A5
  3    b   2 row A6
  4 <NA>  NA row A8
  5 <NA>  NA row A9
    id_A      c
  1    a row A2
  2    b row A4
  3    b row A5
  4    b row A6
  5    a row A7
  6 <NA> row A8
  7 <NA> row A9
    id_A      c
  1    a row A2
  2    b row A4
  3    b row A5
  4    b row A6
  5    a row A7
  6 <NA> row A8
  7 <NA> row A9
    id_A      c
  1 <NA> row A8
  2 <NA> row A9
    id_A      c
  1 <NA> row A8
  2 <NA> row A9
  .DT : y = DF_B (cast as data.table)
  .i  : x = DF_A (cast as data.table)
  Join: na.omit(.DT, cols = "id_B")[.i, on = "id_B == id_A", data.frame(id_A, t_A, c = i.c, v_A, t_B, R.c = c, v_B), allow.cartesian = TRUE]
  
  .DT : x = DF_A (cast as data.table)
  .i  : y = DF_B (cast as data.table)
  Join: setDF(na.omit(.DT, cols = "id_A")[id_A %chin% .i$id_B])[]
  
  .DT : x = DF_A (cast as data.table)
  .i  : y = DF_B (cast as data.table)
  Join: setDF(.DT[!id_A %chin% .i[, na.omit(.SD), .SDcols = "id_B"]$id_B])[]
  
  .DT : y = DF_B (cast as data.table)
  .i  : x = DF_A (cast as data.table)
  Join: setDF(.DT[id_B %chin% .i[, na.omit(.SD), .SDcols = "id_A"]$id_A])[]
  
  .DT : y = DF_B (cast as data.table)
  .i  : x = DF_A (cast as data.table)
  Join: setDF(.DT[!id_B %chin% .i[, na.omit(.SD), .SDcols = "id_A"]$id_A])[]
  
  .DT : y = DF_B (cast as data.table)
  .i  : x = DF_A (cast as data.table)
  Join: .DT[, fjoin.ind := TRUE][.i[, fjoin.ind := TRUE], on = "fjoin.ind", allow.cartesian = TRUE, data.frame(id_A, t_A, c = i.c, v_A, id_B, t_B, R.c = c, v_B)]
  
  .DT : DT_A
  .i  : DT_B
  Join: with(list(fjoin.temp = setDT(setDT(na.omit(.i[, fjoin.which.i := .I], cols = "id_B")[.DT[, fjoin.which.DT := .I], on = "id_B == id_A", nomatch = NULL, mult = "first", data.frame(id_A = i.id_A, t_A = i.t_A, c = i.c, v_A = i.v_A, fjoin.which.DT = i.fjoin.which.DT, fjoin.ind.DT = TRUE, fjoin.which.i)])[.i, on = "fjoin.which.i", data.frame(.join = fifelse(is.na(fjoin.ind.DT), 2L, 3L), id_A = i.id_B, t_A, c, v_A, fjoin.which.DT, t_B, i.c, v_B)])), rbind(fjoin.temp, setDT(.DT[!fjoin.temp$fjoin.which.DT, data.frame(id_A, t_A, c, v_A, fjoin.which.DT, .join = rep(1L, .N))]), fill = TRUE))[, fjoin.which.DT := NULL][]
  
  .DT : DT_A
  .i  : DT_B
  Join: .DT[!.i[, na.omit(.SD), .SDcols = "id_B"][.DT[, fjoin.which.DT := .I], on = "id_B == id_A", nomatch = NULL, mult = "first", fjoin.which.DT]][, fjoin.which.DT := NULL][]
  
  .DT : (unnamed)
  .i  : (unnamed)
  Join: setDT(na.omit(.DT, cols = "id")[.i, on = "id", data.frame(id, col_DT, col_c, col_i, i.col_c), allow.cartesian = TRUE])[]
  
  .DT : (unnamed)
  .i  : (unnamed)
  Join: setDT(na.omit(.DT, cols = "id")[.i, on = "id", data.frame(id, col_DT, col_c, col_i, i.col_c), allow.cartesian = TRUE])[]
  
  .DT : (unnamed)
  .i  : (unnamed)
  Join: na.omit(.DT, cols = "id")[id %in% .i$id]
  
  .DT : (unnamed)
  .i  : (unnamed)
  Join: na.omit(.DT, cols = "id")[id %in% .i$id]
  
  .DT : (unnamed)
  .i  : (unnamed)
  Join: .DT[!id %in% .i[, na.omit(.SD), .SDcols = "id"]$id]
  
  .DT : (unnamed)
  .i  : (unnamed)
  Join: .DT[!id %in% .i[, na.omit(.SD), .SDcols = "id"]$id]
  
  .DT : (unnamed)
  .i  : (unnamed)
  Join: setDT(.DT[, fjoin.ind := TRUE][.i[, fjoin.ind := TRUE], on = "fjoin.ind", allow.cartesian = TRUE, data.frame(id, col_DT, col_c, i.id = i.id, col_i, i.col_c = i.col_c)])
  
  .DT : (unnamed)
  .i  : (unnamed)
  Join: setDT(.DT[, fjoin.ind := TRUE][.i[, fjoin.ind := TRUE], on = "fjoin.ind", allow.cartesian = TRUE, data.frame(id, col_DT, col_c, i.id = i.id, col_i, i.col_c = i.col_c)])
  
  .DT : (unnamed)
  .i  : (unnamed)
  Join: setDT(na.omit(.DT, cols = "fjoin_blah")[.i, on = "fjoin_blah", data.frame(fjoin_blah, col_DT, col_c, col_i, i.col_c), allow.cartesian = TRUE])[]
  
  .DT : (unnamed)
  .i  : (unnamed)
  Join: setDT(na.omit(.DT, cols = "blah_fjoin.")[.i, on = "blah_fjoin.", data.frame(blah_fjoin., col_DT, col_c, col_i, i.col_c), allow.cartesian = TRUE])[]
  
  .DT : (unnamed)
  .i  : (unnamed)
  Join: setDT(.DT[.i, on = "id", data.frame(id, col_DT, col_c, col_i, i.col_c), allow.cartesian = TRUE])[]
  
  .DT : (unnamed)
  .i  : (unnamed)
  Join: setDT(na.omit(.DT, cols = "id")[.i, on = "id", data.frame(id, col_DT, col_c, col_i, i.col_c), allow.cartesian = TRUE])[]
  
  .DT : (unnamed)
  .i  : (unnamed)
  Join: setDT(na.omit(.DT, cols = "id")[.i, on = "id", nomatch = NULL, data.frame(id, col_DT, col_c, col_i, i.col_c), allow.cartesian = TRUE])[]
  
  .DT : (unnamed)
  .i  : (unnamed)
  Join: setDT(na.omit(.DT, cols = "id")[.i, on = "id", data.frame(id, col_DT, col_c, col_i, i.col_c), allow.cartesian = TRUE])[]
  
  .DT : (unnamed)
  .i  : (unnamed)
  Join: setDT(na.omit(.DT, cols = "id")[.i, on = "id", nomatch = NULL, data.frame(id, col_DT, col_c, col_i, i.col_c), allow.cartesian = TRUE])[]
  
  .DT : (unnamed)
  .i  : (unnamed)
  Join: setDT(na.omit(.DT, cols = "id")[.i, on = "id", nomatch = NULL, data.frame(id, col_DT, col_c, col_i, i.col_c), allow.cartesian = TRUE])[]
  
  Saving _problems/test15-SF-agr-sfc-attributes-71.R
  Saving _problems/test15-SF-agr-sfc-attributes-73.R
  Saving _problems/test15-SF-agr-sfc-attributes-97.R
  Saving _problems/test15-SF-agr-sfc-attributes-109.R
  Saving _problems/test15-SF-agr-sfc-attributes-112.R
  Saving _problems/test15-SF-agr-sfc-attributes-114.R
  Saving _problems/test15-SF-agr-sfc-attributes-147.R
  Saving _problems/test15-SF-agr-sfc-attributes-159.R
  Saving _problems/test15-SF-agr-sfc-attributes-172.R
  Saving _problems/test15-SF-agr-sfc-attributes-184.R
  [ FAIL 10 | WARN 0 | SKIP 0 | PASS 472 ]
  
  ══ Failed tests ════════════════════════════════════════════════════════════════
  ── Failure ('test15-SF-agr-sfc-attributes.R:71:3'): sf no non-NA agr ───────────
  Expected `sf::st_agr(result)` to be identical to `expected`.
  Differences:
  `names(actual)`:   "id_A" "c" "v_A"               
  `names(expected)`: "id_A" "c" "v_A" "geom_other_A"
  
  `actual`:   "NA" "NA" "NA"     
  `expected`: "NA" "NA" "NA" "NA"
  
  ── Failure ('test15-SF-agr-sfc-attributes.R:73:3'): sf no non-NA agr ───────────
  Expected `sf::st_agr(result)` to be identical to `expected`.
  Differences:
  `names(actual)`:   "id_A" "c" "v_A"               
  `names(expected)`: "id_A" "c" "v_A" "geom_other_A"
  
  `actual`:   "NA" "NA" "NA"     
  `expected`: "NA" "NA" "NA" "NA"
  
  ── Failure ('test15-SF-agr-sfc-attributes.R:88:3'): sf with non-NA agr ─────────
  Expected `sf::st_agr(result)` to be identical to `as_agr(...)`.
  Differences:
  `names(actual)`:   "id_A" "c" "v_A" "i.c"          "v_B"                      
  `names(expected)`: "id_A" "c" "v_A" "geom_other_A" "i.c" "v_B" "geom_active_B"
  
  `actual[3:5]`:   "NA       " "NA       " "NA       "                        
  `expected[3:7]`: "NA       " "NA       " "NA       " "NA       " "NA       "
  
  ── Failure ('test15-SF-agr-sfc-attributes.R:99:3'): sf with non-NA agr ─────────
  Expected `sf::st_agr(result)` to be identical to `as_agr(...)`.
  Differences:
      names(actual) | names(expected)    
  [1] "id_A"        | "id_A"          [1]
  [2] "c"           | "c"             [2]
  [3] "v_A"         | "v_A"           [3]
  [4] "id_B"        - "geom_other_A"  [4]
  [5] "i.c"         - "id_B"          [5]
  [6] "v_B"         - "i.c"           [6]
                    - "v_B"           [7]
                    - "geom_active_B" [8]
  
  `actual[4:6]`:   "NA       " "NA       " "NA       "                        
  `expected[4:8]`: "NA       " "NA       " "NA       " "NA       " "NA       "
  
  ── Failure ('test15-SF-agr-sfc-attributes.R:112:3'): sf with non-NA agr ────────
  Expected `sf::st_agr(result)` to be identical to `expected`.
  Differences:
  `names(actual)`:   "id_A" "c" "v_A"               
  `names(expected)`: "id_A" "c" "v_A" "geom_other_A"
  
  `actual`:   "identity " "aggregate" "NA       "            
  `expected`: "identity " "aggregate" "NA       " "NA       "
  
  ── Failure ('test15-SF-agr-sfc-attributes.R:114:3'): sf with non-NA agr ────────
  Expected `sf::st_agr(result)` to be identical to `expected`.
  Differences:
  `names(actual)`:   "id_A" "c" "v_A"               
  `names(expected)`: "id_A" "c" "v_A" "geom_other_A"
  
  `actual`:   "identity " "aggregate" "NA       "            
  `expected`: "identity " "aggregate" "NA       " "NA       "
  
  ── Failure ('test15-SF-agr-sfc-attributes.R:138:3'): sf with non-NA agr, i.class=FALSE, i.home=TRUE ──
  Expected `sf::st_agr(result)` to be identical to `as_agr(...)`.
  Differences:
  `names(actual)`:   "id_B" "c" "v_B" "x.c"           "v_A"                     
  `names(expected)`: "id_B" "c" "v_B" "geom_active_B" "x.c" "v_A" "geom_other_A"
  
      actual      | expected       
  [1] "NA       " | "NA       " [1]
  [2] "NA       " | "NA       " [2]
  [3] "NA       " | "NA       " [3]
  [4] "aggregate" - "NA       " [4]
  [5] "NA       " - "aggregate" [5]
                  - "NA       " [6]
                  - "NA       " [7]
  
  ── Failure ('test15-SF-agr-sfc-attributes.R:149:3'): sf with non-NA agr, i.class=FALSE, i.home=TRUE ──
  Expected `sf::st_agr(result)` to be identical to `as_agr(...)`.
  Differences:
      names(actual) | names(expected)    
  [1] "id_B"        | "id_B"          [1]
  [2] "c"           | "c"             [2]
  [3] "v_B"         | "v_B"           [3]
  [4] "id_A"        - "geom_active_B" [4]
  [5] "x.c"         - "id_A"          [5]
  [6] "v_A"         - "x.c"           [6]
                    - "v_A"           [7]
                    - "geom_other_A"  [8]
  
      actual      | expected       
  [1] "NA       " | "NA       " [1]
  [2] "NA       " | "NA       " [2]
  [3] "NA       " | "NA       " [3]
  [4] "identity " - "NA       " [4]
  [5] "aggregate" - "identity " [5]
  [6] "NA       " - "aggregate" [6]
                  - "NA       " [7]
                  - "NA       " [8]
  
  ── Failure ('test15-SF-agr-sfc-attributes.R:163:3'): sf with non-NA agr, i.class=TRUE, i.home=FALSE ──
  Expected `sf::st_agr(result)` to be identical to `as_agr(...)`.
  Differences:
  `names(actual)`:   "id_A" "c" "v_A"                                "i.c" "v_B"
  `names(expected)`: "id_A" "c" "v_A" "geom_active_A" "geom_other_A" "i.c" "v_B"
  
      actual     | expected      
  [1] "NA      " | "NA      " [1]
  [2] "NA      " | "NA      " [2]
  [3] "NA      " | "NA      " [3]
                 - "NA      " [4]
                 - "NA      " [5]
  [4] "constant" | "constant" [6]
  [5] "constant" | "constant" [7]
  
  ── Failure ('test15-SF-agr-sfc-attributes.R:174:3'): sf with non-NA agr, i.class=TRUE, i.home=FALSE ──
  Expected `sf::st_agr(result)` to be identical to `as_agr(...)`.
  Differences:
      names(actual) | names(expected)    
  [1] "id_A"        | "id_A"          [1]
  [2] "c"           | "c"             [2]
  [3] "v_A"         | "v_A"           [3]
                    - "geom_active_A" [4]
                    - "geom_other_A"  [5]
  [4] "id_B"        | "id_B"          [6]
  [5] "i.c"         | "i.c"           [7]
  [6] "v_B"         | "v_B"           [8]
  
      actual     | expected      
  [2] "NA      " | "NA      " [2]
  [3] "NA      " | "NA      " [3]
  [4] "NA      " | "NA      " [4]
  [5] "constant" - "NA      " [5]
  [6] "constant" - "NA      " [6]
                 - "constant" [7]
                 - "constant" [8]
  
  
  [ FAIL 10 | WARN 0 | SKIP 0 | PASS 472 ]
  Error:
  ! Test failures.
  Execution halted