64 lines
2.4 KiB
C++
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));
|
|
}
|