anchor.diff:    pos => pos1
     pos_old => pos2
   
  -  L = [8, 5, 5]
  +  L = [120, 30, 30]
   
     call random_number(pos)
     do i = 1, 3
  
positive.code: 
    call tester% print()
  
  contains
  
    subroutine sort
      integer :: i, idx, start, p(3)
  
      call solvent_cells%count_particles(pos)
  
      do i=1, N
         p = floor( (pos(:, i) - solvent_cells% origin ) / solvent_cells% a )
         idx = compact_p_to_h(p, solvent_cells% M) + 1
         start = solvent_cells% cell_start(idx)
         pos_old(:, start) = pos(:, i)
         solvent_cells% cell_start(idx) = start + 1
      end do
  
      pos_pointer => pos
      pos => pos_old
      pos_old => pos_pointer
  
    end subroutine sort
  
  end program try_all
  
negative.code: 
    call solvent_cells%count_particles(pos)
  
    call solvent_cells%sort_particles(pos, pos_old)
  
    pos_pointer => pos
    pos => pos_old
    pos_old => pos_pointer
  
    call solvent_cells%count_particles(pos)
  
    call tester% assert_equal(solvent_cells%cell_start(1), 1)
  