# Copyright 2017 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

static_library("assist_ranker") {
  sources = [
    "assist_ranker_service.h",
    "assist_ranker_service_impl.cc",
    "assist_ranker_service_impl.h",
    "base_predictor.cc",
    "base_predictor.h",
    "binary_classifier_predictor.cc",
    "binary_classifier_predictor.h",
    "example_preprocessing.cc",
    "example_preprocessing.h",
    "fake_ranker_model_loader.cc",
    "fake_ranker_model_loader.h",
    "generic_logistic_regression_inference.cc",
    "generic_logistic_regression_inference.h",
    "predictor_config.cc",
    "predictor_config.h",
    "predictor_config_definitions.cc",
    "predictor_config_definitions.h",
    "ranker_example_util.cc",
    "ranker_example_util.h",
    "ranker_model.cc",
    "ranker_model.h",
    "ranker_model_loader.h",
    "ranker_model_loader_impl.cc",
    "ranker_model_loader_impl.h",
    "ranker_url_fetcher.cc",
    "ranker_url_fetcher.h",
  ]

  deps = [
    "//base",
    "//components/assist_ranker/proto",
    "//components/data_use_measurement/core",
    "//components/keyed_service/core",
    "//net",
    "//services/metrics/public/cpp:metrics_cpp",
    "//services/network:network_service",
    "//services/network/public/cpp",
    "//services/network/public/mojom",
    "//url",
  ]
}

source_set("unit_tests") {
  testonly = true

  sources = [
    "base_predictor_unittest.cc",
    "binary_classifier_predictor_unittest.cc",
    "example_preprocessing_unittest.cc",
    "generic_logistic_regression_inference_unittest.cc",
    "ranker_example_util_unittest.cc",
    "ranker_model_loader_impl_unittest.cc",
    "ranker_model_unittest.cc",
  ]

  deps = [
    ":assist_ranker",
    "//base",
    "//components/assist_ranker/proto",
    "//components/ukm:test_support",
    "//net:test_support",
    "//services/network:test_support",
    "//services/network/public/cpp",
    "//testing/gtest",
  ]
}
