// Copyright 2020 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include <gtest/gtest.h>

#include "ml/simple.h"

namespace ml {
namespace simple {
namespace {

void TestAdd(const double x, const double y, const double expected) {
  // TODO(avg): tests for NNAPI, when available
  auto result = Add(x, y, false, false);
  ASSERT_NEAR(result.sum, expected, 0.0001);
  ASSERT_EQ(result.status, "OK");
}

TEST(AddTest, Working) {
  TestAdd(1.0, 2.0, 3.0);
  TestAdd(-1.0, 2.0, 1.0);
  TestAdd(0.1, 25.2, 25.3);
}

}  // namespace
}  // namespace simple
}  // namespace ml
