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

import("//peridot/build/executable_package.gni")

group("decision_policies") {
  public_deps = [
    ":decision_policy",
    ":rank_over_threshold_decision_policy",
  ]
}

source_set("decision_policy") {
  sources = [
    "decision_policy.cc",
    "decision_policy.h",
  ]

  deps = [
    "//peridot/bin/suggestion_engine:models",
  ]
}

source_set("rank_over_threshold_decision_policy") {
  sources = [
    "rank_over_threshold_decision_policy.cc",
    "rank_over_threshold_decision_policy.h",
  ]

  deps = [
    ":decision_policy",
    "//sdk/fidl/fuchsia.modular",
  ]

  public_deps = [
    "//peridot/bin/suggestion_engine/rankers:ranker",
  ]
}

executable("rank_over_threshold_decision_policy_unittest") {
  testonly = true

  sources = [
    "rank_over_threshold_decision_policy_unittest.cc",
  ]

  deps = [
    ":rank_over_threshold_decision_policy",
    "//garnet/public/lib/gtest",
    "//third_party/googletest:gtest_main",
  ]
}
