blob: 273d456f465b1e8d832eba8cb8b791c7a6180ffa [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.
*
*************************************************************/
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_basegfx.hxx"
// autogenerated file with codegen.pl
#include "preextstl.h"
#include "gtest/gtest.h"
#include "postextstl.h"
#include <basegfx/tools/keystoplerp.hxx>
#include <basegfx/numeric/ftools.hxx>
#include <boost/tuple/tuple.hpp>
using namespace ::basegfx;
using namespace ::boost::tuples;
namespace basegfxtools
{
class KeyStopLerpTest : public ::testing::Test
{
protected:
tools::KeyStopLerp maKeyStops;
static std::vector<double> getTestVector()
{
std::vector<double> aStops(3);
aStops[0] = 0.1;
aStops[1] = 0.5;
aStops[2] = 0.9;
return aStops;
}
public:
KeyStopLerpTest() :
maKeyStops(getTestVector())
{}
virtual void SetUp()
{}
virtual void TearDown()
{}
};
TEST_F(KeyStopLerpTest, test)
{
double fAlpha;
std::ptrdiff_t nIndex;
tie(nIndex,fAlpha) = maKeyStops.lerp(-1.0);
ASSERT_TRUE(nIndex==0 && fAlpha==0.0) << "-1.0";
tie(nIndex,fAlpha) = maKeyStops.lerp(0.1);
ASSERT_TRUE(nIndex==0 && fAlpha==0.0) << "0.1";
tie(nIndex,fAlpha) = maKeyStops.lerp(0.3);
ASSERT_TRUE(nIndex==0 && fTools::equal(fAlpha,0.5)) << "0.3";
tie(nIndex,fAlpha) = maKeyStops.lerp(0.5);
ASSERT_TRUE(nIndex==0 && fTools::equal(fAlpha,1.0)) << "0.5";
tie(nIndex,fAlpha) = maKeyStops.lerp(0.51);
ASSERT_TRUE(nIndex==1 && fTools::equal(fAlpha,0.025)) << "0.51";
tie(nIndex,fAlpha) = maKeyStops.lerp(0.9);
ASSERT_TRUE(nIndex==1 && fTools::equal(fAlpha,1.0)) << "0.51";
tie(nIndex,fAlpha) = maKeyStops.lerp(1.0);
ASSERT_TRUE(nIndex==1 && fAlpha==1.0) << "0.51";
}
// -----------------------------------------------------------------------------
} // namespace basegfxtools