#include <gtest/gtest.h>
#include <gmock/gmock.h>

class Sensor
{
  public:
    virtual float get_sensor_value() = 0;
};

class MockSensor : public Sensor
{
  public:
    MOCK_METHOD(float, get_sensor_value, (),
                (override));
};

TEST(SensorTest, RetryOnFailure)
{
    MockSensor mock_sensor;
    EXPECT_CALL(mock_sensor, get_sensor_value())
        .Times(3) // 3回呼ばれることを期待
        .WillRepeatedly(testing::Return(
            -1.0)); // -1.0 を返し続ける

    // ここで retry_logic(mock_sensor)
    // を実行し，リトライ動作を確認
}
