Фикс парсинга ФИО преподавателей при отсутствии пробела между ФИО преподавателя и его подгруппой.
This commit is contained in:
2024-10-06 20:43:18 +04:00
parent 5c66c617ff
commit 504ca54124
9 changed files with 1236 additions and 88 deletions

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "schedule-parser-next", "name": "schedule-parser-next",
"version": "1.3.2", "version": "1.3.3",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "schedule-parser-next", "name": "schedule-parser-next",
"version": "1.3.2", "version": "1.3.3",
"license": "UNLICENSED", "license": "UNLICENSED",
"dependencies": { "dependencies": {
"@nestjs/cache-manager": "^2.2.2", "@nestjs/cache-manager": "^2.2.2",

View File

@@ -1,6 +1,6 @@
{ {
"name": "schedule-parser-next", "name": "schedule-parser-next",
"version": "1.3.2", "version": "1.3.3",
"description": "", "description": "",
"author": "N08I40K", "author": "N08I40K",
"private": true, "private": true,

View File

@@ -1,20 +0,0 @@
import { Test, TestingModule } from "@nestjs/testing";
import { FirebaseAdminController } from "./firebase-admin.controller";
describe("FirebaseAdminController", () => {
let controller: FirebaseAdminController;
beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
controllers: [FirebaseAdminController],
}).compile();
controller = module.get<FirebaseAdminController>(
FirebaseAdminController,
);
});
it("should be defined", () => {
expect(controller).toBeDefined();
});
});

View File

@@ -1,18 +0,0 @@
import { Test, TestingModule } from "@nestjs/testing";
import { FirebaseAdminService } from "./firebase-admin.service";
describe("FirebaseAdminService", () => {
let service: FirebaseAdminService;
beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
providers: [FirebaseAdminService],
}).compile();
service = module.get<FirebaseAdminService>(FirebaseAdminService);
});
it("should be defined", () => {
expect(service).toBeDefined();
});
});

View File

@@ -46,9 +46,9 @@ export class ScheduleParser {
teacherFullNames: Array<string>; teacherFullNames: Array<string>;
} { } {
const firstRegex = const firstRegex =
/(?:[А-ЯЁ][а-яё]+\s[А-ЯЁ]\.[А-ЯЁ]\.(?:\s\([0-9] подгруппа\))?(?:,\s)?)+$/gm; /(?:[А-ЯЁ][а-яё]+\s[А-ЯЁ]\.[А-ЯЁ]\.(?:\s?\([0-9] подгруппа\))?(?:,\s)?)+$/gm;
const secondRegex = const secondRegex =
/(?:[А-ЯЁ][а-яё]+\s[А-ЯЁ]\.[А-ЯЁ]\.(?:\s\([0-9] подгруппа\))?)+/gm; /(?:[А-ЯЁ][а-яё]+\s[А-ЯЁ]\.[А-ЯЁ]\.(?:\s?\([0-9] подгруппа\))?)+/gm;
const fm = firstRegex.exec(lessonName); const fm = firstRegex.exec(lessonName);
if (fm === null) return { name: lessonName, teacherFullNames: [] }; if (fm === null) return { name: lessonName, teacherFullNames: [] };

View File

@@ -1,20 +0,0 @@
import { Test, TestingModule } from "@nestjs/testing";
import { ScheduleReplacerController } from "./schedule-replacer.controller";
describe("ScheduleReplacerController", () => {
let controller: ScheduleReplacerController;
beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
controllers: [ScheduleReplacerController],
}).compile();
controller = module.get<ScheduleReplacerController>(
ScheduleReplacerController,
);
});
it("should be defined", () => {
expect(controller).toBeDefined();
});
});

View File

@@ -1,18 +0,0 @@
import { Test, TestingModule } from "@nestjs/testing";
import { ScheduleReplacerService } from "./schedule-replacer.service";
describe("ScheduleReplacerService", () => {
let service: ScheduleReplacerService;
beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
providers: [ScheduleReplacerService],
}).compile();
service = module.get<ScheduleReplacerService>(ScheduleReplacerService);
});
it("should be defined", () => {
expect(service).toBeDefined();
});
});

View File

@@ -2,6 +2,10 @@ import { Test, TestingModule } from "@nestjs/testing";
import { ScheduleService } from "./schedule.service"; import { ScheduleService } from "./schedule.service";
import * as fs from "node:fs"; import * as fs from "node:fs";
import { CacheModule } from "@nestjs/cache-manager"; import { CacheModule } from "@nestjs/cache-manager";
import { FirebaseAdminService } from "../firebase-admin/firebase-admin.service";
import { UsersService } from "../users/users.service";
import { PrismaService } from "../prisma/prisma.service";
import { ScheduleReplacerService } from "./schedule-replacer.service";
describe("ScheduleService", () => { describe("ScheduleService", () => {
let service: ScheduleService; let service: ScheduleService;
@@ -9,7 +13,14 @@ describe("ScheduleService", () => {
beforeEach(async () => { beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({ const module: TestingModule = await Test.createTestingModule({
imports: [CacheModule.register()], imports: [CacheModule.register()],
providers: [ScheduleService, CacheModule], providers: [
ScheduleService,
CacheModule,
FirebaseAdminService,
UsersService,
PrismaService,
ScheduleReplacerService,
],
}).compile(); }).compile();
service = module.get<ScheduleService>(ScheduleService); service = module.get<ScheduleService>(ScheduleService);
@@ -25,11 +36,10 @@ describe("ScheduleService", () => {
const schedule = await service.getGroup(groupName); const schedule = await service.getGroup(groupName);
expect(schedule.group.name).toBe(groupName); expect(schedule.group.name).toBe(groupName);
console.log(schedule.group.days); console.log(schedule.group.days[2].lessons[0].teacherNames);
expect(schedule.group.days[2].nonNullIndices.length).toBe(3); expect(schedule.group.days[2].lessons[0].teacherNames.length).toBe(
expect(schedule.group.days[2].defaultIndices.length).toBe(3); 2,
);
expect(schedule.group.days[3]).toBeNull();
}); });
}); });
}); });

File diff suppressed because one or more lines are too long