text: Title: [core] Place unit test alongside with the implementation
  Body: ### Description
  
  Bazel's general practice for C++ is to place header file, impl file and unit test files under the same folder.
  Example for abseil: https://github.com/abseil/abseil-cpp/blob/master/absl/container/BUILD.bazel
  
  ### Use case
  
  _No response_