Исправить баг со скобками в opensource-проекте Mathlive issue 1195
32 000 руб. за проект
Задача: Исправить баг в opensource-проекте Mathlive
https://github.com/arnog/mathlive/issues/1195 - issue с описанием проблемы
предварительная оценка порядка 2 человеко-дне (выше обсуждаемо).
Описание:
Необходимо
исправить баг обработки верхних и нижних индексов для конструкции {{}}
(group brackets) при конвертации latex-mathml в opensource-проекте
Mathlive для версии v0.68.1
Вероятнее всего ошибка на уровне файла addons/math-ml.ts
Пример как можно отлаживаться:
1) Создаем файл mathml.test.ts в папке tests
2) Содержимое
import { convertLatexToMathMl } from "../dist/mathlive";
describe('BASIC PARSING', () => {
test.each([
['a^b', '<msup><mi>a</mi><mi>b</mi></msup>'],
['a_b', '<msub><mi>a</mi><mi>b</mi></msub>'],
['д^ы',
'<msup><mi>д</mi><mi>ы</mi></msup>'],
// также валиден ответ
<msup><mrow><mo>д</mo></mrow><mrow><mo>ы</mo></mrow></msup>
['x^{ay^1}_2',
'<msubsup><mi>x</mi><mn>2</mn><mrow><mi>a</mi><msup><mi>y</mi><mn>1</mn></msup></mrow></msubsup>'],
['x^{a{y}^1}_2',
'<msubsup><mi>x</mi><mn>2</mn><mrow><mi>a</mi><msup><mrow><mi>y</mi></mrow><mn>1</mn></msup></mrow></msubsup>'],
['x^{y^3}',
'<msup><mi>x</mi><mrow><msup><mi>y</mi><mn>3</mn></msup></mrow></msup>'],
['x^{{y}^3}',
'<msup><mi>x</mi><mrow><msup><mrow><mi>y</mi></mrow><mn>3</mn></msup></mrow></msup>'],
['x^{{y}^{z^3}}',
'<msup><mi>x</mi><mrow><msup><mrow><mi>y</mi></mrow><mrow><msup><mi>z</mi><mn>3</mn></msup></mrow></msup></mrow></msup>'],
['x^{{y}^3}',
'<msup><mi>x</mi><mrow><msup><mrow><mi>y</mi></mrow><mrow><msup><mrow><mi>z</mi></mrow><mn>3</mn></msup></mrow></msup></mrow></msup>'],
['x^{x_{{x}_3}}',
'<msup><mi>x</mi><mrow><msub><mi>x</mi><mrow><msub><mrow><mi>x</mi></mrow><mn>3</mn></msub></mrow></msub></mrow></msup>'],
])('convertLatexToMathMl test', (latex, mml) => {
console.log(`Code ${latex}`);
expect(convertLatexToMathMl(latex)).toEqual(mml);
});
});
3) Ставим контрольные точки, запускаемся в режиме отладки
DOD:
- fork проекта с фиксом или PR с фиксом в основной проект
- конвертация latex-mathml-latex не дает искажений для версии v0.68.1
(сам latex-код может немного измениться (например, для группировки), но
главное, чтобы в mathlive был одинаковый рендер до конвертации и после
- остальной функционал работает как прежде
Приемка:
В рамках конференции у себя демострируете работоспособность исправления далее мы перечисляем предоплату 50%, после передачи перечисляем остальное
https://github.com/arnog/mathlive/issues/1195 - issue с описанием проблемы
предварительная оценка порядка 2 человеко-дне (выше обсуждаемо).
Описание:
Необходимо
исправить баг обработки верхних и нижних индексов для конструкции {{}}
(group brackets) при конвертации latex-mathml в opensource-проекте
Mathlive для версии v0.68.1
Вероятнее всего ошибка на уровне файла addons/math-ml.ts
Пример как можно отлаживаться:
1) Создаем файл mathml.test.ts в папке tests
2) Содержимое
import { convertLatexToMathMl } from "../dist/mathlive";
describe('BASIC PARSING', () => {
test.each([
['a^b', '<msup><mi>a</mi><mi>b</mi></msup>'],
['a_b', '<msub><mi>a</mi><mi>b</mi></msub>'],
['д^ы',
'<msup><mi>д</mi><mi>ы</mi></msup>'],
// также валиден ответ
<msup><mrow><mo>д</mo></mrow><mrow><mo>ы</mo></mrow></msup>
['x^{ay^1}_2',
'<msubsup><mi>x</mi><mn>2</mn><mrow><mi>a</mi><msup><mi>y</mi><mn>1</mn></msup></mrow></msubsup>'],
['x^{a{y}^1}_2',
'<msubsup><mi>x</mi><mn>2</mn><mrow><mi>a</mi><msup><mrow><mi>y</mi></mrow><mn>1</mn></msup></mrow></msubsup>'],
['x^{y^3}',
'<msup><mi>x</mi><mrow><msup><mi>y</mi><mn>3</mn></msup></mrow></msup>'],
['x^{{y}^3}',
'<msup><mi>x</mi><mrow><msup><mrow><mi>y</mi></mrow><mn>3</mn></msup></mrow></msup>'],
['x^{{y}^{z^3}}',
'<msup><mi>x</mi><mrow><msup><mrow><mi>y</mi></mrow><mrow><msup><mi>z</mi><mn>3</mn></msup></mrow></msup></mrow></msup>'],
['x^{{y}^3}',
'<msup><mi>x</mi><mrow><msup><mrow><mi>y</mi></mrow><mrow><msup><mrow><mi>z</mi></mrow><mn>3</mn></msup></mrow></msup></mrow></msup>'],
['x^{x_{{x}_3}}',
'<msup><mi>x</mi><mrow><msub><mi>x</mi><mrow><msub><mrow><mi>x</mi></mrow><mn>3</mn></msub></mrow></msub></mrow></msup>'],
])('convertLatexToMathMl test', (latex, mml) => {
console.log(`Code ${latex}`);
expect(convertLatexToMathMl(latex)).toEqual(mml);
});
});
3) Ставим контрольные точки, запускаемся в режиме отладки
DOD:
- fork проекта с фиксом или PR с фиксом в основной проект
- конвертация latex-mathml-latex не дает искажений для версии v0.68.1
(сам latex-код может немного измениться (например, для группировки), но
главное, чтобы в mathlive был одинаковый рендер до конвертации и после
- остальной функционал работает как прежде
Приемка:
В рамках конференции у себя демострируете работоспособность исправления далее мы перечисляем предоплату 50%, после передачи перечисляем остальное
Отзывы
Аноним
~ 3 года
назад
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.