예제 #1
0
    def test_get_numeric_features_to_observed_range(self):
        example = test_utils.make_fake_example(single_int_val=2)

        data = inference_utils.get_numeric_features_to_observed_range(
            [example])

        # Returns a sorted list by feature_name.
        self.assertDictEqual(
            {
                'repeated_float': {
                    'observedMin': 1.,
                    'observedMax': 4.,
                },
                'repeated_int': {
                    'observedMin': 10,
                    'observedMax': 20,
                },
                'single_float': {
                    'observedMin': 24.5,
                    'observedMax': 24.5,
                },
                'single_int': {
                    'observedMin': 2.,
                    'observedMax': 2.,
                },
            }, data)
예제 #2
0
    def test_get_numeric_features_to_observed_range(self):
        example = test_utils.make_fake_example(single_int_val=2)

        data = inference_utils.get_numeric_features_to_observed_range(
            [example])

        # Returns a sorted list by feature_name.
        self.assertDictEqual(
            {
                "repeated_float": {
                    "observedMin": 1.0,
                    "observedMax": 4.0,
                },
                "repeated_int": {
                    "observedMin": 10,
                    "observedMax": 20,
                },
                "single_float": {
                    "observedMin": 24.5,
                    "observedMax": 24.5,
                },
                "single_int": {
                    "observedMin": 2.0,
                    "observedMax": 2.0,
                },
            },
            data,
        )
예제 #3
0
    def _eligible_features_from_example_handler(self, request):
        """Returns a list of JSON objects for each feature in the example.

    Args:
      request: A request for features.

    Returns:
      A list with a JSON object for each feature.
      Numeric features are represented as {name: observedMin: observedMax:}.
      Categorical features are repesented as {name: samples:[]}.
    """
        features_dict = (
            inference_utils.get_numeric_features_to_observed_range(
                self.examples[0:NUM_EXAMPLES_TO_SCAN]))

        features_dict.update(
            inference_utils.get_categorical_features_to_sampling(
                self.examples[0:NUM_EXAMPLES_TO_SCAN], NUM_MUTANTS))

        # Massage the features_dict into a sorted list before returning because
        # Polymer dom-repeat needs a list.
        features_list = []
        for k, v in sorted(features_dict.items()):
            v['name'] = k
            features_list.append(v)

        return http_util.Respond(request, features_list, 'application/json')
  def _eligible_features_from_example_handler(self, request):
    """Returns a list of JSON objects for each feature in the example.

    Args:
      request: A request for features.

    Returns:
      A list with a JSON object for each feature.
      Numeric features are represented as {name: observedMin: observedMax:}.
      Categorical features are repesented as {name: samples:[]}.
    """
    features_dict = (
        inference_utils.get_numeric_features_to_observed_range(
            self.examples[0: NUM_EXAMPLES_TO_SCAN]))

    features_dict.update(
        inference_utils.get_categorical_features_to_sampling(
            self.examples[0: NUM_EXAMPLES_TO_SCAN], NUM_MUTANTS))

    # Massage the features_dict into a sorted list before returning because
    # Polymer dom-repeat needs a list.
    features_list = []
    for k, v in sorted(features_dict.items()):
      v['name'] = k
      features_list.append(v)

    return http_util.Respond(request, features_list, 'application/json')