# 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.

################################################################################
# This file contains the Metrics and EncodingConfigs used in encoder_test.cc
#
# It is compiled into encoder_test_config.h which is included into the test.
################################################################################

################################################################################
#  Metrics
################################################################################
metric_configs:
# Metric 1 has one string part, and local time_zone_policy.
- id: 1
  name: "SingleString"
  time_zone_policy: LOCAL
  parts:
    "Part1":
      data_type: STRING
      default_encoding_id: 1

# Metric 2 has one integer part, and UTC time_zone_policy.
- id: 2
  name: "SingleInt"
  time_zone_policy: UTC
  parts:
    "Part1":
      data_type: INT

# Metric 3 has one blob part, and local time_zone_policy.
- id: 3
  name: "SingleBlob"
  time_zone_policy: LOCAL
  parts:
    "Part1":
      data_type: BLOB

# Metric 4 has one String part and one int part, and UTC time_zone_policy.
- id: 4
  name: "CityRating"
  time_zone_policy: UTC
  parts:
    "city":
      data_type: STRING
    "rating":
      data_type: INT

# Metric 5 is missing a time_zone_policy
- id: 5
  name: "NoTimeZone"
  parts:
    "Part1":

# Metric 6 has an INDEX part.
- id: 6
  name: "IndexPart"
  time_zone_policy: UTC
  parts:
    "Part1":
      data_type: INDEX

# Metric 7 has a DOUBLE part.
- id: 7
  name: "DoublePart"
  time_zone_policy: UTC
  parts:
    "Part1":
      data_type: DOUBLE

# Metric 8 has an int distribution part.
- id: 8
  name: "IntDistribution"
  time_zone_policy: UTC
  parts:
    "Part1":
      data_type: INT
      int_buckets:
        linear:
          floor: 0
          num_buckets: 10
          step_size: 5

# Metric 9 has a single string part and a system_profile_field selector.
- id: 9
  name: "OneSystemProfileField"
  time_zone_policy: LOCAL
  parts:
    "Part1":
  system_profile_field:
    - BOARD_NAME

 # Metric 10 has a single string part and 2 system_profile_field selectors.
- id: 10
  name: "TwoSystemProfileFields"
  time_zone_policy: LOCAL
  parts:
    "Part1":
  system_profile_field:
    - BOARD_NAME
    - ARCH

# Metric 11 has a single string part and 3 system_profile_field selectors.
- id: 11
  name: "ThreeSystemProfileFields"
  time_zone_policy: LOCAL
  parts:
    "Part1":
  system_profile_field:
    - BOARD_NAME
    - ARCH
    - OS

# Metric 12 has a single string part and 4 system_profile_field selectors.
- id: 12
  name: "FourSystemProfileFields"
  time_zone_policy: LOCAL
  parts:
    "Part1":
  system_profile_field:
    - BOARD_NAME
    - ARCH
    - OS
    - PRODUCT_NAME

################################################################################
#  EncodingConfigs
################################################################################
encoding_configs:

# EncodingConfig 1 is Forculus.
- id: 1
  name: "Forculus"
  forculus:
    threshold: 20

# EncodingConfig 2 is String RAPPOR.
- id: 2
  name: "Rappor"
  rappor:
    num_bloom_bits: 8
    num_hashes: 2
    num_cohorts: 20
    prob_0_becomes_1: 0.25
    prob_1_stays_1: 0.75

# EncodingConfig 3 is Basic RAPPOR with string categories.
- id: 3
  name: "BasicStringRappor"
  basic_rappor:
    prob_0_becomes_1: 0.25
    prob_1_stays_1: 0.75
    string_categories:
      category:
      - "Apple"
      - "Banana"
      - "Cantaloupe"

# EncodingConfig 4 is Basic RAPPOR with int categories.
- id: 4
  name: "BasicIntRappor"
  basic_rappor:
    prob_0_becomes_1: 0.25
    prob_1_stays_1: 0.75
    int_range_categories:
      first: 123
      last:  234

# EncodingConfig 5 is Forculus with a missing threshold.
- id: 5
  name: "InvalidForculus"
  forculus: {}

# EncodingConfig 6 is String RAPPOR with many missing values.
- id: 6
  name: "InvalidRappor"
  rappor: {}

# EncodingConfig 7 is the NoOp encoding.
- id: 7
  name: "NoOp"
  no_op_encoding: {}

# EncodingConfig 8 is Basic RAPPOR with 5 INDEXed categories.
- id: 8
  name: "BasicRappor5Categories"
  basic_rappor:
    prob_0_becomes_1: 0.25
    prob_1_stays_1: 0.75
    indexed_categories:
      num_categories: 5
