|
|
|
#include "klotski.h"
|
|
|
|
#include "raw_code.h"
|
|
|
|
#include "all_cases.h"
|
|
|
|
#include "short_code.h"
|
|
|
|
#include "common_code.h"
|
|
|
|
#include "gtest/gtest.h"
|
|
|
|
|
|
|
|
using klotski::RawCode;
|
|
|
|
using klotski::AllCases;
|
|
|
|
using klotski::ShortCode;
|
|
|
|
using klotski::BasicRanges;
|
|
|
|
|
|
|
|
const static uint32_t TEST_SHORT_CODE_OK = 4091296;
|
|
|
|
const static uint64_t TEST_COMMON_CODE_OK = 0x1'A9BF'0C00;
|
|
|
|
const static uint64_t TEST_RAW_CODE_OK = 0x0603'EDF5'CAFF'F5E2;
|
|
|
|
|
|
|
|
const static uint32_t TEST_SHORT_CODE_ERR = 29670987;
|
|
|
|
const static uint64_t TEST_COMMON_CODE_ERR = 0x1'2190'2300;
|
|
|
|
const static uint64_t TEST_RAW_CODE_ERR = 0x0A34'182B'3810'2D21;
|
|
|
|
|
|
|
|
TEST(FFI, codec_warm_up) {
|
|
|
|
// short code normal mode check
|
|
|
|
EXPECT_EQ(is_short_code_available(), BasicRanges::status() == BasicRanges::AVAILABLE);
|
|
|
|
short_code_enable();
|
|
|
|
EXPECT_EQ(is_short_code_available(), true);
|
|
|
|
EXPECT_EQ(is_short_code_available(), BasicRanges::status() == BasicRanges::AVAILABLE);
|
|
|
|
|
|
|
|
// short code fast mode check
|
|
|
|
EXPECT_EQ(is_short_code_available_fast(), AllCases::status() == AllCases::AVAILABLE);
|
|
|
|
short_code_enable_fast();
|
|
|
|
EXPECT_EQ(is_short_code_available_fast(), true);
|
|
|
|
EXPECT_EQ(is_short_code_available_fast(), AllCases::status() == AllCases::AVAILABLE);
|
|
|
|
}
|
|
|
|
|
|
|
|
TEST(FFI, codec_checker) {
|
|
|
|
EXPECT_EQ(raw_code_check(TEST_RAW_CODE_OK), true);
|
|
|
|
EXPECT_NE(raw_code_check(TEST_RAW_CODE_ERR), true);
|
|
|
|
|
|
|
|
EXPECT_EQ(short_code_check(TEST_SHORT_CODE_OK), true);
|
|
|
|
EXPECT_NE(short_code_check(TEST_SHORT_CODE_ERR), true);
|
|
|
|
|
|
|
|
EXPECT_EQ(common_code_check(TEST_COMMON_CODE_OK), true);
|
|
|
|
EXPECT_NE(common_code_check(TEST_COMMON_CODE_ERR), true);
|
|
|
|
}
|