#include #include using namespace mbgl; TEST(SymbolProgram, SymbolSizeBinder) { auto binder = SymbolSizeBinder::create(5.0f, 12.0f, 0.0f); auto uniformValues = binder->uniformValues(5.5f); EXPECT_EQ(uniformValues.get().t, true); EXPECT_EQ(uniformValues.get().t, true); EXPECT_EQ(uniformValues.get().t, 12.0f); binder = SymbolSizeBinder::create(1.0f, style::CameraFunction(style::ExponentialStops({ {0.0f, 8.0f}, {10.0f, 18.0f} }, 1.0f)), 0.0f); uniformValues = binder->uniformValues(1.5f); EXPECT_EQ(uniformValues.get().t, false); EXPECT_EQ(uniformValues.get().t, true); EXPECT_EQ(uniformValues.get().t, 9.5f); binder = SymbolSizeBinder::create(0.0f, style::CameraFunction(style::ExponentialStops({ {1.0f, 8.0f}, {11.0f, 18.0f} }, 1.0f)), 0.0f); uniformValues = binder->uniformValues(0.5f); EXPECT_EQ(uniformValues.get().t, false); EXPECT_EQ(uniformValues.get().t, true); EXPECT_EQ(uniformValues.get().t, 8.0f); binder = SymbolSizeBinder::create(12.0f, style::CameraFunction(style::ExponentialStops({ {1.0f, 8.0f}, {11.0f, 18.0f} }, 1.0f)), 0.0f); uniformValues = binder->uniformValues(12.5f); EXPECT_EQ(uniformValues.get().t, false); EXPECT_EQ(uniformValues.get().t, true); EXPECT_EQ(uniformValues.get().t, 18.0f); binder = SymbolSizeBinder::create(0.0f, style::SourceFunction("x", style::ExponentialStops({ {1.0f, 8.0f}, {11.0f, 18.0f} }, 1.0f)), 0.0f); uniformValues = binder->uniformValues(12.5f); EXPECT_EQ(uniformValues.get().t, true); EXPECT_EQ(uniformValues.get().t, false); binder = SymbolSizeBinder::create(5.0f, style::CompositeFunction("x", style::CompositeExponentialStops({ {1.0f, {{0.0f, 8.0f}, {100.0f, 18.0f}}}, {11.0f, {{0.0f, 12.0f}, {100.0f, 24.9f}}} }, 1.0f)), 0.0f); uniformValues = binder->uniformValues(5.5f); EXPECT_EQ(uniformValues.get().t, false); EXPECT_EQ(uniformValues.get().t, false); EXPECT_EQ(uniformValues.get().t, 0.45f); }