text: // Copyright (C) 2020 Intel Corporation
  // SPDX-License-Identifier: Apache-2.0
  //
  
  #pragma once
  
  #include <string>
  #include <memory>
  
  #include "functional_test_utils/low_precision_transformations/layer_transformation.hpp"
  #include "ngraph_functions/low_precision_transformations/common/fake_quantize_on_data.hpp"
  #include "ngraph_functions/low_precision_transformations/common/fake_quantize_on_weights.hpp"
  
  namespace LayerTestsDefinitions {
  
  class ConvolutionTransformationParam {
  public:
      ngraph::builder::subgraph::FakeQuantizeOnData fakeQuantizeOnData;
      bool asymmetricQuantizationOnData;
      ngraph::builder::subgraph::FakeQuantizeOnWeights fakeQuantizeOnWeights;
      bool asymmetricQuantizationOnWeights;
  };
  
  typedef std::tuple<
      ngraph::element::Type,
      ngraph::Shape,
      std::string,
      ngraph::pass::low_precision::LayerTransformation::Params,
      ConvolutionTransformationParam
  > ConvolutionTransformationParams;
  
  class ConvolutionTransformation :
      public testing::WithParamInterface<ConvolutionTransformationParams>,
      public LayerTestsUtils::LayerTransformation {
  public:
      static std::string getTestCaseName(testing::TestParamInfo<ConvolutionTransformationParams> obj);
  
  protected:
      void SetUp() override;
  
  private:
      void validateNGraph();
  };
  
  }  // namespace LayerTestsDefinitions
  