예제 #1
0
 def test_parse_original_feature_from_example_binary(self):
     example = tf.train.Example()
     example.features.feature["img"].bytes_list.value.extend([b"\xef"])
     original_feature = inference_utils.parse_original_feature_from_example(
         example, "img")
     self.assertEqual("img", original_feature.feature_name)
     self.assertEqual([b"\xef"], original_feature.original_value)
예제 #2
0
 def test_parse_original_feature_from_example_binary(self):
     example = tf.train.Example()
     example.features.feature['img'].bytes_list.value.extend([b'\xef'])
     original_feature = inference_utils.parse_original_feature_from_example(
         example, 'img')
     self.assertEqual('img', original_feature.feature_name)
     self.assertEqual([b'\xef'], original_feature.original_value)
예제 #3
0
    def test_parse_original_feature_from_example(self):
        example = test_utils.make_fake_example()
        original_feature = inference_utils.parse_original_feature_from_example(
            example, 'repeated_float')
        self.assertEqual('repeated_float', original_feature.feature_name)
        self.assertEqual([1.0, 2.0, 3.0, 4.0], original_feature.original_value)
        self.assertEqual('float_list', original_feature.feature_type)
        self.assertEqual(4, original_feature.length)

        original_feature = inference_utils.parse_original_feature_from_example(
            example, 'repeated_int')
        self.assertEqual('repeated_int', original_feature.feature_name)
        self.assertEqual([10, 20], original_feature.original_value)
        self.assertEqual('int64_list', original_feature.feature_type)
        self.assertEqual(2, original_feature.length)

        original_feature = inference_utils.parse_original_feature_from_example(
            example, 'single_int')
        self.assertEqual('single_int', original_feature.feature_name)
        self.assertEqual([0], original_feature.original_value)
        self.assertEqual('int64_list', original_feature.feature_type)
        self.assertEqual(1, original_feature.length)
예제 #4
0
    def test_make_mutant_tuples_float_list(self):
        example = self.make_and_write_fake_example()
        index_to_mutate = 1
        num_mutants = 10
        viz_params = inference_utils.VizParams(
            x_min=1,
            x_max=10,
            examples=[example],
            num_mutants=num_mutants,
            feature_index_pattern=None,
        )

        original_feature = inference_utils.parse_original_feature_from_example(
            example, "repeated_float")
        mutant_features, mutant_examples = inference_utils.make_mutant_tuples(
            [example],
            original_feature,
            index_to_mutate=index_to_mutate,
            viz_params=viz_params,
        )

        # Check that values in mutant_features and mutant_examples are as expected.
        expected_values = np.linspace(1, 10, num_mutants)
        np.testing.assert_almost_equal(
            expected_values,
            [
                mutant_feature.mutant_value
                for mutant_feature in mutant_features
            ],
        )
        np.testing.assert_almost_equal(
            expected_values,
            [
                mutant_example.features.feature["repeated_float"].float_list.
                value[index_to_mutate] for mutant_example in mutant_examples
            ],
        )

        # Check that the example (other than the mutant value) is the same.
        for expected_value, mutant_example in zip(expected_values,
                                                  mutant_examples):
            mutant_values = test_utils.value_from_example(
                mutant_example, "repeated_float")
            original_values = test_utils.value_from_example(
                example, "repeated_float")
            original_values[index_to_mutate] = expected_value
            self.assertEqual(original_values, mutant_values)