48 lines
1.0 KiB
C++
48 lines
1.0 KiB
C++
#include <gtest/gtest.h>
|
|
#include <solution/1290.h>
|
|
|
|
class GetDecimalValueTest : public ::testing::Test
|
|
{
|
|
protected:
|
|
// 构建链表:vector -> ListNode*
|
|
ListNode *buildList(const std::vector<int> &values)
|
|
{
|
|
ListNode dummy{0, nullptr};
|
|
ListNode *current = &dummy;
|
|
for (int v : values)
|
|
{
|
|
current->next = new ListNode{v, nullptr};
|
|
current = current->next;
|
|
}
|
|
return dummy.next;
|
|
}
|
|
|
|
// 释放链表
|
|
void freeList(ListNode *head)
|
|
{
|
|
while (head)
|
|
{
|
|
ListNode *tmp = head;
|
|
head = head->next;
|
|
delete tmp;
|
|
}
|
|
}
|
|
};
|
|
|
|
// 示例 1: [1, 0, 1] → 5
|
|
TEST_F(GetDecimalValueTest, Binary101)
|
|
{
|
|
ListNode *head = buildList({1, 0, 1});
|
|
int expected = 5;
|
|
EXPECT_EQ(getDecimalValue(head), expected);
|
|
freeList(head);
|
|
}
|
|
|
|
// 示例 2: [0] → 0
|
|
TEST_F(GetDecimalValueTest, Binary0)
|
|
{
|
|
ListNode *head = buildList({0});
|
|
int expected = 0;
|
|
EXPECT_EQ(getDecimalValue(head), expected);
|
|
freeList(head);
|
|
} |