* Copyright (c), Huawei Technologies Co., Ltd. 2025-2025.All rights reserved.
*/
#include <gtest/gtest.h>
#include "FileManager/VirtualFile.h"
#include "TestUtil.h"
#include "ScalarVisuallyServer.h"
using namespace Insight::UnitTest;
using namespace Insight::Scalar;
using namespace Insight::Scalar::FileInfo;
namespace Insight::UnitTest {
class VirtualFileTest : public testing::Test
{
protected:
void SetUp() override
{
auto file1 = ScalarVisuallyServer::Instance().AddFile("file1");
auto file2 = ScalarVisuallyServer::Instance().AddFile("file2");
file1->UpdateData("train", GenerateRandomData({0, 100}, {2, 3}));
file2->UpdateData("train", GenerateRandomData({100, 200}, {0, 1}));
file1->UpdateData("train2", GenerateRandomData({0, 200}, {0, 1}));
}
};
TEST_F(VirtualFileTest, AddSubFile)
{
auto virtualFile = std::make_shared<VirtualFile>("merge1");
virtualFile->AddSubFiles({"file1", "file2"});
auto containFiles = virtualFile->GetSubFiles();
EXPECT_EQ(containFiles.size(), 2);
EXPECT_EQ(containFiles.count("file1"), 1);
EXPECT_EQ(containFiles.count("file2"), 1);
}
TEST_F(VirtualFileTest, GetData)
{
auto virtualFile = std::make_shared<VirtualFile>("merge1");
virtualFile->AddSubFiles({"file1", "file2"});
auto dataViews = GetFileDataView(virtualFile, "train", 0, 200, DataMode::NORMAL);
EXPECT_EQ(dataViews.size(), 2);
EXPECT_EQ(ScalarPointsCheck(dataViews[0].GetElements(), {0, 100}, {2, 3}), true);
EXPECT_EQ(ScalarPointsCheck(dataViews[1].GetElements(), {100, 200}, {0, 1}), true);
}
}