#
# Copyright (C) 2019 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
model = Model()
i1 = Input("input", "TENSOR_QUANT8_ASYMM_SIGNED", "{4, 3, 2}, 0.8, -123")
axis = Parameter("axis", "TENSOR_INT32", "{4}", [1, 0, -3, -3])
keepDims = Int32Scalar("keepDims", 0)
output = Output("output", "TENSOR_QUANT8_ASYMM_SIGNED", "{2}, 0.8, -123")

model = model.Operation("MEAN", i1, axis, keepDims).To(output)

input0 = {
    i1: [
        -127, -126, -125, -124, -123, -122, -121, -120, -119, -118, -117, -116,
        -115, -114, -113, -112, -111, -110, -109, -108, -107, -106, -105, -104
    ]
}

output0 = {
    output:  # output 0
        [-116, -115]
}

Example((input0, output0))

#######################################################

model = Model()
i1 = Input("input", "TENSOR_QUANT8_ASYMM_SIGNED", "{4, 3, 2}, 0.8, -123")
axis = Parameter("axis", "TENSOR_INT32", "{2}", [0, 2])
keepDims = Int32Scalar("keepDims", 1)
output = Output("output", "TENSOR_QUANT8_ASYMM_SIGNED", "{1, 3, 1}, 0.8, -123")

model = model.Operation("MEAN", i1, axis, keepDims).To(output)

input0 = {
    i1: [
        -127, -126, -125, -124, -123, -122, -121, -120, -119, -118, -117, -116,
        -115, -114, -113, -112, -111, -110, -109, -108, -107, -106, -105, -104
    ]
}

output0 = {
    output:  # output 0
        [-118, -116, -114]
}

Example((input0, output0))
