sample8_unittest.cc (googletest-release-1.11.0) | : | sample8_unittest.cc (googletest-release-1.12.0) | ||
---|---|---|---|---|
skipping to change at line 36 | skipping to change at line 36 | |||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||
// This sample shows how to test code relying on some global flag variables. | // This sample shows how to test code relying on some global flag variables. | |||
// Combine() helps with generating all possible combinations of such flags, | // Combine() helps with generating all possible combinations of such flags, | |||
// and each test is given one combination as a parameter. | // and each test is given one combination as a parameter. | |||
// Use class definitions to test from this header. | // Use class definitions to test from this header. | |||
#include "prime_tables.h" | #include "prime_tables.h" | |||
#include "gtest/gtest.h" | #include "gtest/gtest.h" | |||
namespace { | namespace { | |||
// Suppose we want to introduce a new, improved implementation of PrimeTable | // Suppose we want to introduce a new, improved implementation of PrimeTable | |||
// which combines speed of PrecalcPrimeTable and versatility of | // which combines speed of PrecalcPrimeTable and versatility of | |||
// OnTheFlyPrimeTable (see prime_tables.h). Inside it instantiates both | // OnTheFlyPrimeTable (see prime_tables.h). Inside it instantiates both | |||
// PrecalcPrimeTable and OnTheFlyPrimeTable and uses the one that is more | // PrecalcPrimeTable and OnTheFlyPrimeTable and uses the one that is more | |||
// appropriate under the circumstances. But in low memory conditions, it can be | // appropriate under the circumstances. But in low memory conditions, it can be | |||
// told to instantiate without PrecalcPrimeTable instance at all and use only | // told to instantiate without PrecalcPrimeTable instance at all and use only | |||
// OnTheFlyPrimeTable. | // OnTheFlyPrimeTable. | |||
skipping to change at line 81 | skipping to change at line 80 | |||
return next_prime != -1 ? next_prime : on_the_fly_impl_->GetNextPrime(p); | return next_prime != -1 ? next_prime : on_the_fly_impl_->GetNextPrime(p); | |||
} | } | |||
private: | private: | |||
OnTheFlyPrimeTable* on_the_fly_impl_; | OnTheFlyPrimeTable* on_the_fly_impl_; | |||
PreCalculatedPrimeTable* precalc_impl_; | PreCalculatedPrimeTable* precalc_impl_; | |||
int max_precalculated_; | int max_precalculated_; | |||
}; | }; | |||
using ::testing::TestWithParam; | ||||
using ::testing::Bool; | using ::testing::Bool; | |||
using ::testing::Values; | ||||
using ::testing::Combine; | using ::testing::Combine; | |||
using ::testing::TestWithParam; | ||||
using ::testing::Values; | ||||
// To test all code paths for HybridPrimeTable we must test it with numbers | // To test all code paths for HybridPrimeTable we must test it with numbers | |||
// both within and outside PreCalculatedPrimeTable's capacity and also with | // both within and outside PreCalculatedPrimeTable's capacity and also with | |||
// PreCalculatedPrimeTable disabled. We do this by defining fixture which will | // PreCalculatedPrimeTable disabled. We do this by defining fixture which will | |||
// accept different combinations of parameters for instantiating a | // accept different combinations of parameters for instantiating a | |||
// HybridPrimeTable instance. | // HybridPrimeTable instance. | |||
class PrimeTableTest : public TestWithParam< ::std::tuple<bool, int> > { | class PrimeTableTest : public TestWithParam< ::std::tuple<bool, int> > { | |||
protected: | protected: | |||
void SetUp() override { | void SetUp() override { | |||
bool force_on_the_fly; | bool force_on_the_fly; | |||
End of changes. 4 change blocks. | ||||
3 lines changed or deleted | 2 lines changed or added |