// Copyright 2021 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.

success("ByteZero") {
    value = MyByte{
        value: 0,
    },
    bytes = {
        v1, v2 = [
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        ],
    },
}

success("Byte255") {
    value = MyByte{
        value: 255,
    },
    bytes = {
        v1, v2 = [
            0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        ],
    },
}

success("Int8Min") {
    value = MyInt8{
        value: -128,
    },
    bytes = {
        v1, v2 = [
            0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        ],
    },
}

success("Int8Zero") {
    value = MyInt8{
        value: 0,
    },
    bytes = {
        v1, v2 = [
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        ],
    },
}

success("Int8Max") {
    value = MyInt8{
        value: 127,
    },
    bytes = {
        v1, v2 = [
            0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        ],
    },
}

success("Int16Min") {
    value = MyInt16{
        value: -32768,
    },
    bytes = {
        v1, v2 = [
            0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        ],
    },
}

success("Int16Zero") {
    value = MyInt16{
        value: 0,
    },
    bytes = {
        v1, v2 = [
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        ],
    },
}

success("Int16Max") {
    value = MyInt16{
        value: 32767,
    },
    bytes = {
        v1, v2 = [
            0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        ],
    },
}

success("Int32Min") {
    value = MyInt32{
        value: -2147483648,
    },
    bytes = {
        v1, v2 = [
            0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00,
        ],
    },
}

success("Int32Zero") {
    value = MyInt32{
        value: 0,
    },
    bytes = {
        v1, v2 = [
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        ],
    },
}

success("Int32Max") {
    value = MyInt32{
        value: 2147483647,
    },
    bytes = {
        v1, v2 = [
            0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00,
        ],
    },
}

success("Int64Min") {
    value = MyInt64{
        value: -9223372036854775808,
    },
    bytes = {
        v1, v2 = [
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
        ],
    },
}

success("Int64Zero") {
    value = MyInt64{
        value: 0,
    },
    bytes = {
        v1, v2 = [
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        ],
    },
}

success("Int64Max") {
    value = MyInt64{
        value: 9223372036854775807,
    },
    bytes = {
        v1, v2 = [
            0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f,
        ],
    },
}

success("Uint8Zero") {
    value = MyUint8{
        value: 0,
    },
    bytes = {
        v1, v2 = [
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        ],
    },
}

success("Uint8Max") {
    value = MyUint8{
        value: 255,
    },
    bytes = {
        v1, v2 = [
            0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        ],
    },
}

success("Uint16Zero") {
    value = MyUint16{
        value: 0,
    },
    bytes = {
        v1, v2 = [
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        ],
    },
}

success("Uint16Max") {
    value = MyUint16{
        value: 65535,
    },
    bytes = {
        v1, v2 = [
            0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        ],
    },
}

success("Uint32Zero") {
    value = MyUint32{
        value: 0,
    },
    bytes = {
        v1, v2 = [
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        ],
    },
}

success("Uint32Max") {
    value = MyUint32{
        value: 4294967295,
    },
    bytes = {
        v1, v2 = [
            0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
        ],
    },
}

success("Uint64Zero") {
    value = MyUint64{
        value: 0,
    },
    bytes = {
        v1, v2 = [
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        ],
    },
}

success("Uint64Max") {
    value = MyUint64{
        value: 18446744073709551615,
    },
    bytes = {
        v1, v2 = [
            0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
        ],
    },
}
