Exteor/test/src/testTextProcessor.cpp
2024-06-14 20:30:09 +03:00

64 lines
2.4 KiB
C++

#include "stdafx.h"
#include "ccl/lang/Literals.h"
#include "xtr/core/PyCore.h"
#include "xtr/core/PyTextProcessor.h"
using ccl::operator""_c17;
using ccl::lang::operator""_form;
class UTPyTextProcessor : public ::testing::Test {
protected:
using PyCore = cxxpython::PyCore;
using PyTextProcessor = xtr::core::PyTextProcessor;
using Morphology = ccl::lang::Morphology;
protected:
PyCore& python{ PyCore::Instance() };
std::unique_ptr<PyTextProcessor> processor{ nullptr };
void SetUp() override {
static CString path{ "C:\\Program Files\\Python312\\" };
ASSERT_TRUE(python.Start(path));
ASSERT_TRUE(python.LoadModule("cctext", "cctext"));
processor = std::make_unique<PyTextProcessor>();
processor->InitModule("cctext");
}
void TearDown() override {
processor = nullptr;
python.Stop();
}
};
TEST_F(UTPyTextProcessor, Inflect) {
EXPECT_EQ(processor->Inflect("", Morphology{}), "");
EXPECT_EQ(processor->Inflect("", "sing,datv"_form), "");
EXPECT_EQ(processor->Inflect(u8"ñëîí"_c17, Morphology{}), u8"ñëîí"_c17);
EXPECT_EQ(processor->Inflect(u8"ñëîí"_c17, "sing,datv"_form), u8"ñëîíó"_c17);
EXPECT_EQ(processor->Inflect(u8"ñèíèé ñëîí"_c17, "plur,datv"_form), u8"ñèíèì ñëîíàì"_c17);
EXPECT_EQ(processor->Inflect(u8"ñèíèé ñëîí"_c17, "ADJF,pres,datv"_form), u8"ñèíèé ñëîí"_c17);
EXPECT_EQ(processor->Inflect(u8"óñèëåííî îáåñïå÷èâàòü"_c17, "past,masc"_form), u8"óñèëåííî îáåñïå÷èâàë"_c17);
EXPECT_EQ(processor->Inflect(u8"óñèëåííî îáåñïå÷èâàòü"_c17, "past,masc"_form), u8"óñèëåííî îáåñïå÷èâàë"_c17);
}
TEST_F(UTPyTextProcessor, InflectDependant) {
EXPECT_EQ(processor->InflectDependant("", ""), "");
EXPECT_EQ(processor->InflectDependant("", "invalid"), "");
EXPECT_EQ(processor->InflectDependant("invalid", ""), "invalid");
EXPECT_EQ(processor->InflectDependant("", u8"òåðìèí"_c17), "");
EXPECT_EQ(processor->InflectDependant(u8"òåðìèíîì"_c17, ""), u8"òåðìèíîì"_c17);
EXPECT_EQ(processor->InflectDependant(u8"îáùèé"_c17, u8"ìàòü"_c17), u8"îáùàÿ"_c17);
EXPECT_EQ(processor->InflectDependant(u8"ìîãó÷èé êðàñèâûé"_c17, u8"ðóññêîãî áîãàòûðÿ"_c17), u8"ìîãó÷åãî êðàñèâîãî"_c17);
}
TEST_F(UTPyTextProcessor, IsSubstr) {
EXPECT_TRUE(processor->IsSubstr("", ""));
EXPECT_TRUE(processor->IsSubstr("", "123"));
EXPECT_FALSE(processor->IsSubstr("4", "123"));
EXPECT_TRUE(processor->IsSubstr(u8"÷åëîâåê"_c17, u8"ëþäè"_c17));
EXPECT_TRUE(processor->IsSubstr(u8"ñòèëüíûé ÷åëîâåê"_c17, u8"ñòèëüíûìè ëþäüìè"_c17));
}