diff --git a/ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts b/ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts index b6d29b9042..facfa99df3 100644 --- a/ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts +++ b/ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts @@ -1,130 +1,380 @@ -import { expect, test } from '@playwright/test'; +import { expect, test, Page } from '@playwright/test'; import { takeEditorScreenshot, receiveFileComparisonData, openFileAndAddToCanvas, saveToFile, + drawBenzeneRing, + getCoordinatesTopAtomOfBenzeneRing, + clickOnAtom, + selectNestedTool, + ArrowTool, + clickOnTheCanvas, + selectTopPanelButton, + TopPanelButton, + RgroupTool, + pressButton, + selectLeftPanelButton, + LeftPanelButton, + selectAction, + dragMouseTo, + setAttachmentPoints, + moveMouseToTheMiddleOfTheScreen, + getCoordinatesOfTheMiddleOfTheScreen, waitForPageInit, } from '@utils'; import { getRxn } from '@utils/formats'; +import { drawReactionWithTwoBenzeneRings } from '@utils/canvas/drawStructures'; -test('Open and Save file - Reaction from file that contains abbreviation 1/2 - open', async ({ - page, -}) => { - /** - * Test case: EPMLSOPKET-1899(1) - * Description: Reaction with abbreviations is opened and saved correctly - */ - await waitForPageInit(page); - - await openFileAndAddToCanvas('sec_butyl_abr.rxn', page); - // check that structure opened from file is displayed correctly - await takeEditorScreenshot(page); -}); +async function savedFileInfoStartsWithRxn(page: Page, wantedResult = false) { + await selectTopPanelButton(TopPanelButton.Save, page); + const textareaSelector = 'textarea[class^="Save-module_previewArea"]'; + const textareaElement = await page.$(textareaSelector); + const textareaText = await textareaElement?.textContent(); + const expectedSentence = '$RXN'; + wantedResult + ? expect(textareaText?.startsWith(expectedSentence)).toBeTruthy() + : expect(textareaText?.startsWith(expectedSentence)).toBeFalsy(); +} -test('Open and Save file - Reaction from file that contains abbreviation 2/2 - save', async ({ - page, -}) => { - /** - * Test case: EPMLSOPKET-1899(2) - * Description: Reaction with abbreviations is opened and saved correctly - */ - await waitForPageInit(page); +test.describe('Tests for Open and Save RXN file operations', () => { + test.beforeEach(async ({ page }) => { + await waitForPageInit(page); + }); - await openFileAndAddToCanvas('sec_butyl_abr.rxn', page); - const expectedFile = await getRxn(page, 'v2000'); - await saveToFile('sec-butyl-abr-expectedV2000.rxn', expectedFile); + test('Open and Save file - Reaction with atom and bond properties', async ({ + page, + }) => { + /** + * Test case: EPMLSOPKET-1897 + * Description: Reaction with atom and bond properties + */ + await openFileAndAddToCanvas( + 'Rxn-V2000/reaction-with-atom-and-bond-properties-saved.rxn', + page, + ); + await takeEditorScreenshot(page); + }); - // eslint-disable-next-line no-magic-numbers - const METADATA_STRINGS_INDEXES = [2, 7, 23, 54]; + test('Open and Save file - Reaction from file that contains Rgroup', async ({ + page, + }) => { + /** + * Test case: EPMLSOPKET-1901 + * Description: Reaction from file that contains Rgroup + */ + const xOffsetFromCenter = 40; + await drawBenzeneRing(page); + await selectLeftPanelButton(LeftPanelButton.R_GroupLabelTool, page); + await clickOnAtom(page, 'C', 1); + await page.getByRole('button', { name: 'R7' }).click(); + await page.getByRole('button', { name: 'Apply' }).click(); + await selectNestedTool(page, ArrowTool.ARROW_FILLED_BOW); + await clickOnTheCanvas(page, xOffsetFromCenter, 0); + await selectTopPanelButton(TopPanelButton.Save, page); + const saveButtonOne = page.getByRole('button', { + name: 'Save', + exact: true, + }); + await expect(saveButtonOne).not.toHaveAttribute('disabled', 'disabled'); - const { fileExpected: rxnFileExpected, file: rxnFile } = - await receiveFileComparisonData({ + await pressButton(page, 'Cancel'); + await selectNestedTool(page, RgroupTool.ATTACHMENT_POINTS); + await setAttachmentPoints( page, - expectedFileName: 'tests/test-data/sec-butyl-abr-expectedV2000.rxn', - metaDataIndexes: METADATA_STRINGS_INDEXES, + { label: 'C', index: 2 }, + { primary: true }, + 'Apply', + ); + await selectTopPanelButton(TopPanelButton.Save, page); + const saveButtonTwo = page.getByRole('button', { + name: 'Save', + exact: true, }); + await expect(saveButtonTwo).not.toHaveAttribute('disabled', 'disabled'); - expect(rxnFile).toEqual(rxnFileExpected); -}); + await page.getByRole('button', { name: 'Cancel' }).click(); + await selectNestedTool(page, RgroupTool.R_GROUP_FRAGMENT); + const { x, y } = await getCoordinatesTopAtomOfBenzeneRing(page); + await page.mouse.click(x, y); + await page.getByRole('button', { name: 'R22' }).click(); + await page.getByRole('button', { name: 'Apply' }).click(); + await selectTopPanelButton(TopPanelButton.Save, page); + const saveButtonThree = page.getByRole('button', { + name: 'Save', + exact: true, + }); + await expect(saveButtonThree).not.toHaveAttribute('disabled', 'disabled'); + }); -test('Open and Save file - Reaction from file that contains Heteroatoms 1/2 - open', async ({ - page, -}) => { - /** - * Test case: EPMLSOPKET-1904(1) - * Description: Reaction with heteroatoms is opened and saved correctly - */ - await waitForPageInit(page); - - await openFileAndAddToCanvas('Heteroatoms.rxn', page); - // check that structure opened from file is displayed correctly - await takeEditorScreenshot(page); -}); + // EPMLSOPKET-1903 - TO DO + // TO DO: while saving file showed ERROR: array: invalid index -2 (size=0) + // Need to create new bug looks like it connected to #2389 issue + test.fixme( + 'Open and Save file - Reaction from file that contains Sgroup', + async ({ page }) => { + /** + * Test case: EPMLSOPKET-1903 + * Description: Reaction from file that contains Sgroup + */ + await openFileAndAddToCanvas( + 'Rxn-V2000/structure-with-s-groups-with-unsupported-s-group-type.rxn', + page, + ); + const expectedFile = await getRxn(page); + await saveToFile( + 'Rxn-V2000/structure-with-s-groups-with-unsupported-s-group-type-saved.rxn', + expectedFile, + ); + await openFileAndAddToCanvas( + 'Rxn-V2000/structure-with-s-groups-with-unsupported-s-group-type-saved.rxn', + page, + ); + await takeEditorScreenshot(page); + }, + ); -test('Open and Save file - Reaction from file that contains Heteroatoms 2/2 - save', async ({ - page, -}) => { - /** - * Test case: EPMLSOPKET-1904(2) - * Description: Reaction with heteroatoms is opened and saved correctly - */ - await waitForPageInit(page); + test('Open and Save file - File without arrow or(and) plus-symbol', async ({ + page, + }) => { + /** + * Test case: EPMLSOPKET-1905 + * Description: File without arrow or(and) plus-symbol + */ + await selectLeftPanelButton(LeftPanelButton.Chain, page); + await moveMouseToTheMiddleOfTheScreen(page); + const { x, y } = await getCoordinatesOfTheMiddleOfTheScreen(page); + const xDelta = 300; + const xDeltaHalf = 150; + const yDelta50 = 50; + const yDelta20 = 20; + const xCoordinatesWithShift = x + xDelta; + const xCoordinatesWithShiftHalf = x + xDeltaHalf; + const yCoordinatesWithShift = y + yDelta50; + await dragMouseTo(xCoordinatesWithShift, y, page); + await savedFileInfoStartsWithRxn(page); - await openFileAndAddToCanvas('Heteroatoms.rxn', page); - const expectedFile = await getRxn(page, 'v2000'); - await saveToFile('heteroatoms-expectedV2000.rxn', expectedFile); + await pressButton(page, 'Cancel'); + await selectLeftPanelButton(LeftPanelButton.ReactionPlusTool, page); + await page.mouse.click(xCoordinatesWithShiftHalf, yCoordinatesWithShift); + const ySecondChain = yCoordinatesWithShift + yDelta50; + await selectLeftPanelButton(LeftPanelButton.Chain, page); + await page.mouse.move(x, ySecondChain); + await dragMouseTo(xCoordinatesWithShift, ySecondChain, page); + await savedFileInfoStartsWithRxn(page); - // eslint-disable-next-line no-magic-numbers - const METADATA_STRINGS_INDEXES = [2, 7, 30, 39, 62]; + await pressButton(page, 'Cancel'); + await selectLeftPanelButton(LeftPanelButton.Erase, page); + await page.mouse.click(xCoordinatesWithShiftHalf, yCoordinatesWithShift); + await selectNestedTool(page, ArrowTool.ARROW_FILLED_BOW); + const yArrowStart = y + yDelta20; + const yArrowEnd = yArrowStart + yDelta20; + await page.mouse.move(xCoordinatesWithShiftHalf, yArrowStart); + await dragMouseTo(xCoordinatesWithShiftHalf, yArrowEnd, page); + await savedFileInfoStartsWithRxn(page); - const { fileExpected: rxnFileExpected, file: rxnFile } = - await receiveFileComparisonData({ - page, - expectedFileName: 'tests/test-data/heteroatoms-expectedV2000.rxn', - metaDataIndexes: METADATA_STRINGS_INDEXES, - }); + await pressButton(page, 'Cancel'); + await selectTopPanelButton(TopPanelButton.Clear, page); + await selectNestedTool(page, ArrowTool.ARROW_FILLED_BOW); + await page.mouse.move(xCoordinatesWithShiftHalf, yArrowStart); + await dragMouseTo(xCoordinatesWithShiftHalf, yArrowEnd, page); + await savedFileInfoStartsWithRxn(page, true); + }); - expect(rxnFile).toEqual(rxnFileExpected); -}); + test('Open and Save file - Structure is not missing when "Paste from clipboard" or "Open from file" if reaction consists of two or more reaction arrows and structures', async ({ + page, + }) => { + /** + * Test case: EPMLSOPKET-8904 + * Description: Structure isn't missing when "Paste from clipboard" or "Open from file" if reaction consists of two or more reaction arrows and structures + */ + const RING_OFFSET = 150; + const ARROW_OFFSET = 20; + const ARROW_LENGTH = 100; + await drawReactionWithTwoBenzeneRings( + page, + RING_OFFSET, + ARROW_OFFSET, + ARROW_LENGTH, + ); -test('Open and Save file - V3000 rxn file contains Rgroup 1/2 - open', async ({ - page, -}) => { - /** - * Test case: EPMLSOPKET-1902(1) - * Description: Reaction can be opened correctly from rxn V3000 file - */ - await waitForPageInit(page); - - await openFileAndAddToCanvas('Rgroup_V3000.rxn', page); - // check that structure opened from file is displayed correctly - await takeEditorScreenshot(page); -}); + const xOffsetFromCenter = 50; + await selectNestedTool(page, ArrowTool.ARROW_FILLED_BOW); + await moveMouseToTheMiddleOfTheScreen(page); + await clickOnTheCanvas(page, xOffsetFromCenter, 0); + const expectedFileV2000 = await getRxn(page); + await takeEditorScreenshot(page); + await saveToFile( + 'Rxn-V2000/structure-with-two-reaction-arrows-saved.rxn', + expectedFileV2000, + ); + const expectedFileV3000 = await getRxn(page); + await saveToFile( + 'Rxn-V3000/structure-with-two-reaction-arrows-saved.rxn', + expectedFileV3000, + ); + await selectAction(TopPanelButton.Clear, page); + await openFileAndAddToCanvas( + 'Rxn-V3000/structure-with-two-reaction-arrows-saved.rxn', + page, + ); + await takeEditorScreenshot(page); -test('Open and Save file - V3000 rxn file contains Rgroup 2/2 - save', async ({ - page, -}) => { - /** - * Test case: EPMLSOPKET-1902(2) - * Description: Reaction can be saved correctly to rxn V3000 file - */ - await waitForPageInit(page); + await selectAction(TopPanelButton.Clear, page); + await openFileAndAddToCanvas( + 'Rxn-V2000/structure-with-two-reaction-arrows-saved.rxn', + page, + ); + await takeEditorScreenshot(page); + }); - await openFileAndAddToCanvas('Rgroup_V3000.rxn', page); - const expectedFile = await getRxn(page, 'v3000'); - await saveToFile('r-group-V3000-expectedV3000.rxn', expectedFile); + test('Open and Save file - Import the structure from the saved RXN 2000/3000 file', async ({ + page, + }) => { + /** + * Test case: EPMLSOPKET-12964 + * Description: Import the structure from the saved RXN 2000/3000 file + */ + await openFileAndAddToCanvas( + 'Rxn-V3000/reaction-with-several-components.rxn', + page, + ); + await takeEditorScreenshot(page); + }); - // eslint-disable-next-line no-magic-numbers - const METADATA_STRINGS_INDEXES = [2]; + test('Open and Save file - Open the RXN v3000 file with S-Group Properties Type = Multiple group', async ({ + page, + }) => { + /** + * Test case: EPMLSOPKET-12967 for Open RXN v3000 file with 'S-Group Properties Type = Multiple group rxnV3000Multiple.zip + * Description: Open the RXN v3000 file with S-Group Properties Type = Multiple group + */ + await openFileAndAddToCanvas( + 'Rxn-V3000/structure-with-s-groups-with-unsupported-s-group-type.rxn', + page, + ); + await takeEditorScreenshot(page); + }); - const { fileExpected: rxnFileExpected, file: rxnFile } = - await receiveFileComparisonData({ + test('Open and Save file - Open the RXN v2000 file with S-Group Properties Type = Multiple group', async ({ + page, + }) => { + /** + * Test case: EPMLSOPKET-12967 for Open RXN v2000 file with 'S-Group Properties Type = Multiple group rxnV2000Multiple.zip + * Description: Open the RXN v2000 file with S-Group Properties Type = Multiple group + */ + await openFileAndAddToCanvas( + 'Rxn-V2000/structure-with-s-groups-with-unsupported-s-group-type.rxn', page, - expectedFileName: 'tests/test-data/r-group-V3000-expectedV3000.rxn', - metaDataIndexes: METADATA_STRINGS_INDEXES, - fileFormat: 'v3000', - }); + ); + await takeEditorScreenshot(page); + }); + + test('Open and Save file - Reaction from file that contains abbreviation 1/2 - open', async ({ + page, + }) => { + /** + * Test case: EPMLSOPKET-1899(1) + * Description: Reaction with abbreviations is opened and saved correctly + */ + await openFileAndAddToCanvas('sec_butyl_abr.rxn', page); + await takeEditorScreenshot(page); + }); + + test('Open and Save file - Reaction from file that contains abbreviation 2/2 - save', async ({ + page, + }) => { + /** + * Test case: EPMLSOPKET-1899(2) + * Description: Reaction with abbreviations is opened and saved correctly + */ + await openFileAndAddToCanvas('sec_butyl_abr.rxn', page); + const expectedFile = await getRxn(page, 'v2000'); + await saveToFile('sec-butyl-abr-expectedV2000.rxn', expectedFile); + + // eslint-disable-next-line no-magic-numbers + const METADATA_STRINGS_INDEXES = [2, 7, 23, 54]; + + const { fileExpected: rxnFileExpected, file: rxnFile } = + await receiveFileComparisonData({ + page, + expectedFileName: 'tests/test-data/sec-butyl-abr-expectedV2000.rxn', + metaDataIndexes: METADATA_STRINGS_INDEXES, + }); + + expect(rxnFile).toEqual(rxnFileExpected); + }); + + test('Open and Save file - Reaction from file that contains Heteroatoms 1/2 - open', async ({ + page, + }) => { + /** + * Test case: EPMLSOPKET-1904(1) + * Description: Reaction with heteroatoms is opened and saved correctly + */ + await openFileAndAddToCanvas('Heteroatoms.rxn', page); + // check that structure opened from file is displayed correctly + await takeEditorScreenshot(page); + }); + + test('Open and Save file - Reaction from file that contains Heteroatoms 2/2 - save', async ({ + page, + }) => { + /** + * Test case: EPMLSOPKET-1904(2) + * Description: Reaction with heteroatoms is opened and saved correctly + */ + await openFileAndAddToCanvas('Heteroatoms.rxn', page); + const expectedFile = await getRxn(page, 'v2000'); + await saveToFile('heteroatoms-expectedV2000.rxn', expectedFile); + + // eslint-disable-next-line no-magic-numbers + const METADATA_STRINGS_INDEXES = [2, 7, 30, 39, 62]; + + const { fileExpected: rxnFileExpected, file: rxnFile } = + await receiveFileComparisonData({ + page, + expectedFileName: 'tests/test-data/heteroatoms-expectedV2000.rxn', + metaDataIndexes: METADATA_STRINGS_INDEXES, + }); + + expect(rxnFile).toEqual(rxnFileExpected); + }); + + test('Open and Save file - V3000 rxn file contains Rgroup 1/2 - open', async ({ + page, + }) => { + /** + * Test case: EPMLSOPKET-1902(1) + * Description: Reaction can be opened correctly from rxn V3000 file + */ + await openFileAndAddToCanvas('Rgroup_V3000.rxn', page); + // check that structure opened from file is displayed correctly + await takeEditorScreenshot(page); + }); + + test('Open and Save file - V3000 rxn file contains Rgroup 2/2 - save', async ({ + page, + }) => { + /** + * Test case: EPMLSOPKET-1902(2) + * Description: Reaction can be saved correctly to rxn V3000 file + */ + await openFileAndAddToCanvas('Rgroup_V3000.rxn', page); + const expectedFile = await getRxn(page, 'v3000'); + await saveToFile('r-group-V3000-expectedV3000.rxn', expectedFile); + + // eslint-disable-next-line no-magic-numbers + const METADATA_STRINGS_INDEXES = [2]; + + const { fileExpected: rxnFileExpected, file: rxnFile } = + await receiveFileComparisonData({ + page, + expectedFileName: 'tests/test-data/r-group-V3000-expectedV3000.rxn', + metaDataIndexes: METADATA_STRINGS_INDEXES, + fileFormat: 'v3000', + }); - expect(rxnFile).toEqual(rxnFileExpected); + expect(rxnFile).toEqual(rxnFileExpected); + }); }); diff --git a/ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts-snapshots/Tests-for-Open-and-Save-RXN-file-operations-Op-12ac7-with-S-Group-Properties-Type-Multiple-group-1-chromium-linux.png b/ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts-snapshots/Tests-for-Open-and-Save-RXN-file-operations-Op-12ac7-with-S-Group-Properties-Type-Multiple-group-1-chromium-linux.png new file mode 100644 index 0000000000..a0b033405c Binary files /dev/null and b/ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts-snapshots/Tests-for-Open-and-Save-RXN-file-operations-Op-12ac7-with-S-Group-Properties-Type-Multiple-group-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts-snapshots/Open-and-Save-file---Reaction-from-file-that-contains-abbreviation-1-2---open-1-chromium-linux.png b/ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts-snapshots/Tests-for-Open-and-Save-RXN-file-operations-Op-14347-om-file-that-contains-abbreviation-1-2---open-1-chromium-linux.png similarity index 100% rename from ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts-snapshots/Open-and-Save-file---Reaction-from-file-that-contains-abbreviation-1-2---open-1-chromium-linux.png rename to ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts-snapshots/Tests-for-Open-and-Save-RXN-file-operations-Op-14347-om-file-that-contains-abbreviation-1-2---open-1-chromium-linux.png diff --git a/ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts-snapshots/Tests-for-Open-and-Save-RXN-file-operations-Op-56a8a-of-two-or-more-reaction-arrows-and-structures-3-chromium-linux.png b/ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts-snapshots/Tests-for-Open-and-Save-RXN-file-operations-Op-56a8a-of-two-or-more-reaction-arrows-and-structures-3-chromium-linux.png new file mode 100644 index 0000000000..5db800149c Binary files /dev/null and b/ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts-snapshots/Tests-for-Open-and-Save-RXN-file-operations-Op-56a8a-of-two-or-more-reaction-arrows-and-structures-3-chromium-linux.png differ diff --git a/ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts-snapshots/Open-and-Save-file---V3000-rxn-file-contains-Rgroup-1-2---open-1-chromium-linux.png b/ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts-snapshots/Tests-for-Open-and-Save-RXN-file-operations-Op-64e6b-e---V3000-rxn-file-contains-Rgroup-1-2---open-1-chromium-linux.png similarity index 100% rename from ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts-snapshots/Open-and-Save-file---V3000-rxn-file-contains-Rgroup-1-2---open-1-chromium-linux.png rename to ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts-snapshots/Tests-for-Open-and-Save-RXN-file-operations-Op-64e6b-e---V3000-rxn-file-contains-Rgroup-1-2---open-1-chromium-linux.png diff --git a/ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts-snapshots/Tests-for-Open-and-Save-RXN-file-operations-Op-75ae3-of-two-or-more-reaction-arrows-and-structures-1-chromium-linux.png b/ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts-snapshots/Tests-for-Open-and-Save-RXN-file-operations-Op-75ae3-of-two-or-more-reaction-arrows-and-structures-1-chromium-linux.png new file mode 100644 index 0000000000..93d6784fb0 Binary files /dev/null and b/ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts-snapshots/Tests-for-Open-and-Save-RXN-file-operations-Op-75ae3-of-two-or-more-reaction-arrows-and-structures-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts-snapshots/Open-and-Save-file---Reaction-from-file-that-contains-Heteroatoms-1-2---open-1-chromium-linux.png b/ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts-snapshots/Tests-for-Open-and-Save-RXN-file-operations-Op-7f7c8-rom-file-that-contains-Heteroatoms-1-2---open-1-chromium-linux.png similarity index 100% rename from ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts-snapshots/Open-and-Save-file---Reaction-from-file-that-contains-Heteroatoms-1-2---open-1-chromium-linux.png rename to ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts-snapshots/Tests-for-Open-and-Save-RXN-file-operations-Op-7f7c8-rom-file-that-contains-Heteroatoms-1-2---open-1-chromium-linux.png diff --git a/ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts-snapshots/Tests-for-Open-and-Save-RXN-file-operations-Op-891c7-e-structure-from-the-saved-RXN-2000-3000-file-1-chromium-linux.png b/ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts-snapshots/Tests-for-Open-and-Save-RXN-file-operations-Op-891c7-e-structure-from-the-saved-RXN-2000-3000-file-1-chromium-linux.png new file mode 100644 index 0000000000..6ecdc1f7cd Binary files /dev/null and b/ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts-snapshots/Tests-for-Open-and-Save-RXN-file-operations-Op-891c7-e-structure-from-the-saved-RXN-2000-3000-file-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts-snapshots/Tests-for-Open-and-Save-RXN-file-operations-Op-bcdcd-file---Reaction-with-atom-and-bond-properties-1-chromium-linux.png b/ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts-snapshots/Tests-for-Open-and-Save-RXN-file-operations-Op-bcdcd-file---Reaction-with-atom-and-bond-properties-1-chromium-linux.png new file mode 100644 index 0000000000..a101e27616 Binary files /dev/null and b/ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts-snapshots/Tests-for-Open-and-Save-RXN-file-operations-Op-bcdcd-file---Reaction-with-atom-and-bond-properties-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts-snapshots/Tests-for-Open-and-Save-RXN-file-operations-Op-c6241-with-S-Group-Properties-Type-Multiple-group-1-chromium-linux.png b/ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts-snapshots/Tests-for-Open-and-Save-RXN-file-operations-Op-c6241-with-S-Group-Properties-Type-Multiple-group-1-chromium-linux.png new file mode 100644 index 0000000000..31c2e7807c Binary files /dev/null and b/ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts-snapshots/Tests-for-Open-and-Save-RXN-file-operations-Op-c6241-with-S-Group-Properties-Type-Multiple-group-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts-snapshots/Tests-for-Open-and-Save-RXN-file-operations-Op-e083c-of-two-or-more-reaction-arrows-and-structures-2-chromium-linux.png b/ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts-snapshots/Tests-for-Open-and-Save-RXN-file-operations-Op-e083c-of-two-or-more-reaction-arrows-and-structures-2-chromium-linux.png new file mode 100644 index 0000000000..5db800149c Binary files /dev/null and b/ketcher-autotests/tests/File-Management/Open-And-Save-Files/Rxn-Files/rxn-files.spec.ts-snapshots/Tests-for-Open-and-Save-RXN-file-operations-Op-e083c-of-two-or-more-reaction-arrows-and-structures-2-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Templates/S-Groups/s-groups.spec.ts b/ketcher-autotests/tests/Templates/S-Groups/s-groups.spec.ts index 50bafc4939..40f1a185b6 100644 --- a/ketcher-autotests/tests/Templates/S-Groups/s-groups.spec.ts +++ b/ketcher-autotests/tests/Templates/S-Groups/s-groups.spec.ts @@ -22,7 +22,7 @@ test.describe('S-Groups', () => { Description: Open file with S-groups (with Unsupported S-group type GEN) and see that brackets in place for all S-Groups except DAT */ await openFileAndAddToCanvas( - 'structure-with-s-groups-with-unsupported-s-group-type.rxn', + 'Rxn-V2000/structure-with-s-groups-with-unsupported-s-group-type.rxn', page, ); }); diff --git a/ketcher-autotests/tests/test-data/Rxn-V2000/reaction-with-atom-and-bond-properties-saved.rxn b/ketcher-autotests/tests/test-data/Rxn-V2000/reaction-with-atom-and-bond-properties-saved.rxn new file mode 100644 index 0000000000..764d07f40f --- /dev/null +++ b/ketcher-autotests/tests/test-data/Rxn-V2000/reaction-with-atom-and-bond-properties-saved.rxn @@ -0,0 +1,23 @@ +$RXN + + -INDIGO- 1006230821 + + 1 0 +$MOL + + -INDIGO-10062308212D + + 6 6 0 0 0 0 0 0 0 0999 V2000 + 13.8348 -7.5001 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 15.5652 -7.4996 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 14.7016 -7.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 15.5652 -8.5005 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 13.8348 -8.5050 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 14.7038 -9.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3 1 2 0 0 0 0 + 1 5 1 0 0 0 0 + 5 6 6 0 0 0 0 + 6 4 1 0 0 0 0 + 4 2 3 0 0 0 0 + 2 3 1 0 0 0 0 +M END diff --git a/ketcher-autotests/tests/test-data/structure-with-s-groups-with-unsupported-s-group-type.rxn b/ketcher-autotests/tests/test-data/Rxn-V2000/structure-with-s-groups-with-unsupported-s-group-type.rxn similarity index 100% rename from ketcher-autotests/tests/test-data/structure-with-s-groups-with-unsupported-s-group-type.rxn rename to ketcher-autotests/tests/test-data/Rxn-V2000/structure-with-s-groups-with-unsupported-s-group-type.rxn diff --git a/ketcher-autotests/tests/test-data/Rxn-V2000/structure-with-two-reaction-arrows-saved.rxn b/ketcher-autotests/tests/test-data/Rxn-V2000/structure-with-two-reaction-arrows-saved.rxn new file mode 100644 index 0000000000..6afd6bfdbc --- /dev/null +++ b/ketcher-autotests/tests/test-data/Rxn-V2000/structure-with-two-reaction-arrows-saved.rxn @@ -0,0 +1,41 @@ +$RXN + + -INDIGO- 1006231119 + + 1 1 +$MOL + + -INDIGO-10062311192D + + 6 6 0 0 0 0 0 0 0 0999 V2000 + 13.8348 -7.5001 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 15.5652 -7.4996 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 14.7016 -7.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 15.5652 -8.5005 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 13.8348 -8.5050 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 14.7038 -9.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3 1 2 0 0 0 0 + 1 5 1 0 0 0 0 + 5 6 2 0 0 0 0 + 6 4 1 0 0 0 0 + 4 2 2 0 0 0 0 + 2 3 1 0 0 0 0 +M END +$MOL + + -INDIGO-10062311192D + + 6 6 0 0 0 0 0 0 0 0999 V2000 + 13.8348 -2.7251 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 15.5652 -2.7246 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 14.7016 -2.2250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 15.5652 -3.7255 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 13.8348 -3.7300 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 14.7038 -4.2250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3 1 2 0 0 0 0 + 1 5 1 0 0 0 0 + 5 6 2 0 0 0 0 + 6 4 1 0 0 0 0 + 4 2 2 0 0 0 0 + 2 3 1 0 0 0 0 +M END diff --git a/ketcher-autotests/tests/test-data/Rxn-V3000/reaction-with-several-components.rxn b/ketcher-autotests/tests/test-data/Rxn-V3000/reaction-with-several-components.rxn new file mode 100644 index 0000000000..58f2035cf9 --- /dev/null +++ b/ketcher-autotests/tests/test-data/Rxn-V3000/reaction-with-several-components.rxn @@ -0,0 +1,154 @@ +$RXN V3000 + + ChemDraw12232218102D + +M V30 COUNTS 6 2 +M V30 BEGIN REACTANT +M V30 BEGIN CTAB +M V30 COUNTS 10 10 0 0 0 +M V30 BEGIN ATOM +M V30 1 C -0.410997 0.715841 0.000000 0 +M V30 2 C 0.825429 0.002476 0.000000 0 +M V30 3 C 0.414571 0.715565 0.000000 0 +M V30 4 C 0.412646 -0.712814 0.000000 0 +M V30 5 C -0.825430 -0.002200 0.000000 0 +M V30 6 C -0.408796 -0.714189 0.000000 0 +M V30 7 C -0.823505 1.430305 0.000000 0 +M V30 8 C -0.818554 -1.430305 0.000000 0 +M V30 9 C -1.650447 -0.004399 0.000000 0 +M V30 10 C 1.650447 0.002200 0.000000 0 +M V30 END ATOM +M V30 BEGIN BOND +M V30 1 2 3 1 +M V30 2 2 4 2 +M V30 3 1 1 5 +M V30 4 1 2 3 +M V30 5 2 5 6 +M V30 6 1 6 4 +M V30 7 1 1 7 +M V30 8 1 6 8 +M V30 9 1 5 9 +M V30 10 1 2 10 +M V30 END BOND +M V30 END CTAB +M V30 BEGIN CTAB +M V30 COUNTS 10 10 0 0 0 +M V30 BEGIN ATOM +M V30 1 C -0.410997 0.715841 0.000000 0 +M V30 2 C 0.825429 0.002476 0.000000 0 +M V30 3 C 0.414571 0.715565 0.000000 0 +M V30 4 C 0.412646 -0.712814 0.000000 0 +M V30 5 C -0.825430 -0.002200 0.000000 0 +M V30 6 C -0.408796 -0.714189 0.000000 0 +M V30 7 C -0.823505 1.430305 0.000000 0 +M V30 8 C -0.818554 -1.430305 0.000000 0 +M V30 9 C -1.650447 -0.004399 0.000000 0 +M V30 10 C 1.650447 0.002200 0.000000 0 +M V30 END ATOM +M V30 BEGIN BOND +M V30 1 2 3 1 +M V30 2 2 4 2 +M V30 3 1 1 5 +M V30 4 1 2 3 +M V30 5 2 5 6 +M V30 6 1 6 4 +M V30 7 1 1 7 +M V30 8 1 6 8 +M V30 9 1 5 9 +M V30 10 1 2 10 +M V30 END BOND +M V30 END CTAB +M V30 BEGIN CTAB +M V30 COUNTS 1 0 0 0 0 +M V30 BEGIN ATOM +M V30 1 O 0.000000 0.000000 0.000000 0 +M V30 END ATOM +M V30 END CTAB +M V30 BEGIN CTAB +M V30 COUNTS 1 0 0 0 0 +M V30 BEGIN ATOM +M V30 1 O 0.000000 0.000000 0.000000 0 +M V30 END ATOM +M V30 END CTAB +M V30 BEGIN CTAB +M V30 COUNTS 2 1 0 0 0 +M V30 BEGIN ATOM +M V30 1 O -0.412508 0.000000 0.000000 0 CHG=2 +M V30 2 O 0.412508 0.000000 0.000000 0 +M V30 END ATOM +M V30 BEGIN BOND +M V30 1 2 1 2 +M V30 END BOND +M V30 END CTAB +M V30 BEGIN CTAB +M V30 COUNTS 2 1 0 0 0 +M V30 BEGIN ATOM +M V30 1 O -0.412508 0.000000 0.000000 0 +M V30 2 O 0.412508 0.000000 0.000000 0 +M V30 END ATOM +M V30 BEGIN BOND +M V30 1 2 1 2 +M V30 END BOND +M V30 END CTAB +M V30 END REACTANT +M V30 BEGIN PRODUCT +M V30 BEGIN CTAB +M V30 COUNTS 11 11 0 0 0 +M V30 BEGIN ATOM +M V30 1 C 0.208865 0.715841 0.000000 0 +M V30 2 C 1.445293 0.002476 0.000000 0 +M V30 3 C 1.034434 0.715565 0.000000 0 +M V30 4 C 1.032509 -0.712814 0.000000 0 +M V30 5 C -0.205565 -0.002200 0.000000 0 +M V30 6 C 0.211067 -0.714189 0.000000 0 +M V30 7 C -0.198690 -1.430305 0.000000 0 +M V30 8 C -1.030584 -0.004399 0.000000 0 +M V30 9 O -1.445293 0.708690 0.000000 0 +M V30 10 O -1.441169 -0.720239 0.000000 0 +M V30 11 C -0.203641 1.430305 0.000000 0 +M V30 END ATOM +M V30 BEGIN BOND +M V30 1 2 3 1 +M V30 2 2 4 2 +M V30 3 1 1 5 +M V30 4 1 2 3 +M V30 5 2 5 6 +M V30 6 1 6 4 +M V30 7 1 6 7 +M V30 8 1 5 8 +M V30 9 2 8 9 +M V30 10 1 8 10 +M V30 11 1 1 11 +M V30 END BOND +M V30 END CTAB +M V30 BEGIN CTAB +M V30 COUNTS 11 11 0 0 0 +M V30 BEGIN ATOM +M V30 1 C 0.208865 0.715841 0.000000 0 +M V30 2 C 1.445293 0.002476 0.000000 0 +M V30 3 C 1.034434 0.715565 0.000000 0 +M V30 4 C 1.032509 -0.712814 0.000000 0 +M V30 5 C -0.205565 -0.002200 0.000000 0 +M V30 6 C 0.211067 -0.714189 0.000000 0 +M V30 7 C -0.198690 -1.430305 0.000000 0 +M V30 8 C -1.030584 -0.004399 0.000000 0 +M V30 9 O -1.445293 0.708690 0.000000 0 +M V30 10 O -1.441169 -0.720239 0.000000 0 +M V30 11 C -0.203641 1.430305 0.000000 0 +M V30 END ATOM +M V30 BEGIN BOND +M V30 1 2 3 1 +M V30 2 2 4 2 +M V30 3 1 1 5 +M V30 4 1 2 3 +M V30 5 2 5 6 +M V30 6 1 6 4 +M V30 7 1 6 7 +M V30 8 1 5 8 +M V30 9 2 8 9 +M V30 10 1 8 10 +M V30 11 1 1 11 +M V30 END BOND +M V30 END CTAB +M V30 END PRODUCT +M END diff --git a/ketcher-autotests/tests/test-data/Rxn-V3000/structure-with-s-groups-with-unsupported-s-group-type.rxn b/ketcher-autotests/tests/test-data/Rxn-V3000/structure-with-s-groups-with-unsupported-s-group-type.rxn new file mode 100644 index 0000000000..d7188f65c3 --- /dev/null +++ b/ketcher-autotests/tests/test-data/Rxn-V3000/structure-with-s-groups-with-unsupported-s-group-type.rxn @@ -0,0 +1,264 @@ +$RXN V3000 + + -INDIGO- 0317231310 + +M V30 COUNTS 1 1 +M V30 BEGIN REACTANT +M V30 BEGIN CTAB +M V30 COUNTS 49 48 3 0 0 +M V30 BEGIN ATOM +M V30 1 C -19.6081 -8.52501 0.0 0 +M V30 2 C -18.7421 -9.02502 0.0 0 +M V30 3 C -17.8761 -8.52501 0.0 0 +M V30 4 C -17.0101 -9.02502 0.0 0 +M V30 5 C -16.1441 -8.52501 0.0 0 +M V30 6 C -15.278 -9.02502 0.0 0 +M V30 7 C -14.412 -8.52501 0.0 0 +M V30 8 C -13.546 -9.02502 0.0 0 +M V30 9 C -12.68 -8.52501 0.0 0 +M V30 10 C -16.1441 -7.52497 0.0 0 +M V30 11 C -17.0101 -7.02495 0.0 0 +M V30 12 C -17.0101 -6.02503 0.0 0 +M V30 13 C -17.8761 -5.52501 0.0 0 +M V30 14 C -17.8761 -4.52498 0.0 0 +M V30 15 C -18.7421 -6.02503 0.0 0 +M V30 16 C -18.7421 -7.02495 0.0 0 +M V30 17 C -19.6081 -5.52501 0.0 0 +M V30 18 C -20.4742 -6.02503 0.0 0 +M V30 19 C -21.3402 -5.52501 0.0 0 +M V30 20 C -17.0101 -9.02502 0.0 0 +M V30 21 C -17.8761 -8.52501 0.0 0 +M V30 22 C -16.1441 -8.52501 0.0 0 +M V30 23 C -15.278 -9.02502 0.0 0 +M V30 24 C -14.412 -8.52501 0.0 0 +M V30 25 C -17.0101 -7.02495 0.0 0 +M V30 26 C -16.1441 -7.52497 0.0 0 +M V30 27 C -17.0101 -6.02503 0.0 0 +M V30 28 C -17.8761 -5.52501 0.0 0 +M V30 29 C -17.8761 -4.52498 0.0 0 +M V30 30 C -18.7421 -6.02503 0.0 0 +M V30 31 C -18.7421 -7.02495 0.0 0 +M V30 32 C -19.6081 -5.52501 0.0 0 +M V30 33 C -20.4742 -6.02503 0.0 0 +M V30 34 C -21.3402 -5.52501 0.0 0 +M V30 35 C -17.0101 -9.02502 0.0 0 +M V30 36 C -17.8761 -8.52501 0.0 0 +M V30 37 C -16.1441 -8.52501 0.0 0 +M V30 38 C -15.278 -9.02502 0.0 0 +M V30 39 C -14.412 -8.52501 0.0 0 +M V30 40 C -17.0101 -7.02495 0.0 0 +M V30 41 C -16.1441 -7.52497 0.0 0 +M V30 42 C -17.0101 -6.02503 0.0 0 +M V30 43 C -17.8761 -5.52501 0.0 0 +M V30 44 C -17.8761 -4.52498 0.0 0 +M V30 45 C -18.7421 -6.02503 0.0 0 +M V30 46 C -18.7421 -7.02495 0.0 0 +M V30 47 C -19.6081 -5.52501 0.0 0 +M V30 48 C -20.4742 -6.02503 0.0 0 +M V30 49 C -21.3402 -5.52501 0.0 0 +M V30 END ATOM +M V30 BEGIN BOND +M V30 1 1 1 2 +M V30 2 1 3 4 +M V30 3 1 4 5 +M V30 4 1 5 6 +M V30 5 1 6 7 +M V30 6 1 7 8 +M V30 7 1 8 9 +M V30 8 1 5 10 +M V30 9 1 10 11 +M V30 10 1 11 12 +M V30 11 1 12 13 +M V30 12 1 13 14 +M V30 13 1 13 15 +M V30 14 1 15 16 +M V30 15 1 15 17 +M V30 16 1 17 18 +M V30 17 1 18 19 +M V30 18 1 3 24 +M V30 19 1 21 20 +M V30 20 1 20 22 +M V30 21 1 22 23 +M V30 22 1 23 24 +M V30 23 1 22 26 +M V30 24 1 26 25 +M V30 25 1 25 27 +M V30 26 1 27 28 +M V30 27 1 28 29 +M V30 28 1 28 30 +M V30 29 1 30 31 +M V30 30 1 30 32 +M V30 31 1 32 33 +M V30 32 1 33 34 +M V30 33 1 21 39 +M V30 34 1 36 35 +M V30 35 1 35 37 +M V30 36 1 37 38 +M V30 37 1 38 39 +M V30 38 1 37 41 +M V30 39 1 41 40 +M V30 40 1 40 42 +M V30 41 1 42 43 +M V30 42 1 43 44 +M V30 43 1 43 45 +M V30 44 1 45 46 +M V30 45 1 45 47 +M V30 46 1 47 48 +M V30 47 1 48 49 +M V30 48 1 36 2 +M V30 END BOND +M V30 BEGIN SGROUP +M V30 1 SRU 1 ATOMS=(11 5 11 10 12 13 14 15 16 17 18 19) BRKXYZ=(9 -21.64019- +M V30 0 -9.275015 0.000000 -21.640190 -8.275015 0.000000 0.000000 0.000000 0- +M V30 .000000) BRKXYZ=(9 -15.844058 -8.275015 0.000000 -15.844058 -9.275015 - +M V30 0.000000 0.000000 0.000000 0.000000) CONNECT=HT LABEL=n +M V30 2 MUL 2 ATOMS=(45 4 3 5 6 7 11 10 12 13 14 15 16 17 18 19 20 21 22 23 - +M V30 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 4- +M V30 7 48 49) BRKXYZ=(9 -21.840189 -9.525024 0.000000 -21.840189 -4.024976 - +M V30 0.000000 0.000000 0.000000 0.000000) BRKXYZ=(9 -13.912013 -4.024976 0.- +M V30 000000 -13.912013 -9.525024 0.000000 0.000000 0.000000 0.000000) PATOM- +M V30 S=(15 4 3 5 6 7 11 10 12 13 14 15 16 17 18 19) MULT=3 +M V30 3 SRU 3 ATOMS=(5 15 13 14 16 17) BRKXYZ=(9 -17.576099 -5.275023 0.0000- +M V30 00 -17.576099 -6.275023 0.000000 0.000000 0.000000 0.000000) BRKXYZ=(9- +M V30 -19.908144 -6.275023 0.000000 -19.908144 -5.275023 0.000000 0.000000 - +M V30 0.000000 0.000000) CONNECT=HT LABEL=n +M V30 END SGROUP +M V30 END CTAB +M V30 END REACTANT +M V30 BEGIN PRODUCT +M V30 BEGIN CTAB +M V30 COUNTS 49 48 6 0 0 +M V30 BEGIN ATOM +M V30 1 C -7.18799 -8.52501 0.0 0 +M V30 2 C -6.32196 -9.02502 0.0 0 +M V30 3 C -5.45594 -8.52501 0.0 0 +M V30 4 C -4.58992 -9.02502 0.0 0 +M V30 5 C -3.7239 -8.52501 0.0 0 +M V30 6 C -2.85788 -9.02502 0.0 0 +M V30 7 C -1.99185 -8.52501 0.0 0 +M V30 8 C -1.12583 -9.02502 0.0 0 +M V30 9 C -0.25981 -8.52501 0.0 0 +M V30 10 C -3.7239 -7.52497 0.0 0 +M V30 11 C -4.58992 -7.02495 0.0 0 +M V30 12 C -4.58992 -6.02503 0.0 0 +M V30 13 C -5.45594 -5.52501 0.0 0 +M V30 14 C -5.45594 -4.52498 0.0 0 +M V30 15 C -6.32196 -6.02503 0.0 0 +M V30 16 C -6.32196 -7.02495 0.0 0 +M V30 17 C -7.18799 -5.52501 0.0 0 +M V30 18 C -8.05401 -6.02503 0.0 0 +M V30 19 C -8.92003 -5.52501 0.0 0 +M V30 20 C -1.99185 -8.52501 0.0 0 +M V30 21 C -5.45594 -8.52501 0.0 0 +M V30 22 C -2.85788 -9.02502 0.0 0 +M V30 23 C -3.7239 -8.52501 0.0 0 +M V30 24 C -4.58992 -9.02502 0.0 0 +M V30 25 C -3.7239 -7.52497 0.0 0 +M V30 26 C -4.58992 -7.02495 0.0 0 +M V30 27 C -4.58992 -6.02503 0.0 0 +M V30 28 C -5.45594 -5.52501 0.0 0 +M V30 29 C -5.45594 -4.52498 0.0 0 +M V30 30 C -6.32196 -6.02503 0.0 0 +M V30 31 C -6.32196 -7.02495 0.0 0 +M V30 32 C -7.18799 -5.52501 0.0 0 +M V30 33 C -8.05401 -6.02503 0.0 0 +M V30 34 C -8.92003 -5.52501 0.0 0 +M V30 35 C -1.99185 -8.52501 0.0 0 +M V30 36 C -5.45594 -8.52501 0.0 0 +M V30 37 C -2.85788 -9.02502 0.0 0 +M V30 38 C -3.7239 -8.52501 0.0 0 +M V30 39 C -4.58992 -9.02502 0.0 0 +M V30 40 C -3.7239 -7.52497 0.0 0 +M V30 41 C -4.58992 -7.02495 0.0 0 +M V30 42 C -4.58992 -6.02503 0.0 0 +M V30 43 C -5.45594 -5.52501 0.0 0 +M V30 44 C -5.45594 -4.52498 0.0 0 +M V30 45 C -6.32196 -6.02503 0.0 0 +M V30 46 C -6.32196 -7.02495 0.0 0 +M V30 47 C -7.18799 -5.52501 0.0 0 +M V30 48 C -8.05401 -6.02503 0.0 0 +M V30 49 C -8.92003 -5.52501 0.0 0 +M V30 END ATOM +M V30 BEGIN BOND +M V30 1 1 1 2 +M V30 2 1 3 2 +M V30 3 1 3 4 +M V30 4 1 4 5 +M V30 5 1 5 6 +M V30 6 1 6 7 +M V30 7 1 8 9 +M V30 8 1 5 10 +M V30 9 1 10 11 +M V30 10 1 11 12 +M V30 11 1 12 13 +M V30 12 1 13 14 +M V30 13 1 13 15 +M V30 14 1 15 16 +M V30 15 1 15 17 +M V30 16 1 17 18 +M V30 17 1 18 19 +M V30 18 1 7 21 +M V30 19 1 21 24 +M V30 20 1 24 23 +M V30 21 1 23 22 +M V30 22 1 22 20 +M V30 23 1 23 25 +M V30 24 1 25 26 +M V30 25 1 26 27 +M V30 26 1 27 28 +M V30 27 1 28 29 +M V30 28 1 28 30 +M V30 29 1 30 31 +M V30 30 1 30 32 +M V30 31 1 32 33 +M V30 32 1 33 34 +M V30 33 1 20 36 +M V30 34 1 36 39 +M V30 35 1 39 38 +M V30 36 1 38 37 +M V30 37 1 37 35 +M V30 38 1 38 40 +M V30 39 1 40 41 +M V30 40 1 41 42 +M V30 41 1 42 43 +M V30 42 1 43 44 +M V30 43 1 43 45 +M V30 44 1 45 46 +M V30 45 1 45 47 +M V30 46 1 47 48 +M V30 47 1 48 49 +M V30 48 1 35 8 +M V30 END BOND +M V30 BEGIN SGROUP +M V30 1 SRU 1 ATOMS=(5 17 13 15 16 14) BRKXYZ=(9 -7.487987 -6.275023 0.00000- +M V30 0 -7.487987 -5.275023 0.000000 0.000000 0.000000 0.000000) BRKXYZ=(9 -- +M V30 5.155943 -5.275023 0.000000 -5.155943 -6.275023 0.000000 0.000000 0.00- +M V30 0000 0.000000) CONNECT=HT LABEL=n +M V30 2 MUL 2 ATOMS=(45 7 3 6 5 4 10 11 12 13 14 15 16 17 18 19 20 21 22 23 - +M V30 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 4- +M V30 7 48 49) BRKXYZ=(9 -9.420031 -9.525024 0.000000 -9.420031 -4.024976 0.- +M V30 000000 0.000000 0.000000 0.000000) BRKXYZ=(9 -1.491855 -4.024976 0.000- +M V30 000 -1.491855 -9.525024 0.000000 0.000000 0.000000 0.000000) PATOMS=(1- +M V30 5 7 3 6 5 4 10 11 12 13 14 15 16 17 18 19) MULT=3 +M V30 3 SRU 3 ATOMS=(11 5 10 11 12 13 14 15 16 17 18 19) BRKXYZ=(9 -9.220031- +M V30 -9.275015 0.000000 -9.220031 -8.275015 0.000000 0.000000 0.000000 0.0- +M V30 00000) BRKXYZ=(9 -3.423899 -8.275015 0.000000 -3.423899 -9.275015 0.00- +M V30 0000 0.000000 0.000000 0.000000) CONNECT=HT LABEL=n +M V30 4 DAT 4 ATOMS=(1 14) BRKXYZ=(9 0.000000 0.000000 0.000000 0.000000 0.0- +M V30 00000 0.000000 0.000000 0.000000 0.000000) BRKXYZ=(9 0.000000 0.000000- +M V30 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000) FIELD- +M V30 DISP=" 0.0000 0.0000 DA ALL 1 1 " FIELDDATA="Cl-Br- +M V30 " +M V30 5 GEN 5 ATOMS=(17 3 2 4 5 6 7 8 10 11 12 13 14 15 16 17 18 19) BRKXYZ=- +M V30 (9 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.00- +M V30 0000 0.000000) BRKXYZ=(9 0.000000 0.000000 0.000000 0.000000 0.000000 - +M V30 0.000000 0.000000 0.000000 0.000000) +M V30 6 DAT 6 ATOMS=(7 2 3 4 5 6 7 8) CBONDS=(6 2 3 4 5 6 18) BRKXYZ=(9 0.00- +M V30 0000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.- +M V30 000000) BRKXYZ=(9 0.000000 0.000000 0.000000 0.000000 0.000000 0.00000- +M V30 0 0.000000 0.000000 0.000000) FIELDDISP=" 0.0000 0.0000 DA - +M V30 ALL 1 1 " FIELDDATA="C" +M V30 END SGROUP +M V30 END CTAB +M V30 END PRODUCT +M END diff --git a/ketcher-autotests/tests/test-data/Rxn-V3000/structure-with-two-reaction-arrows-saved-v3000.rxn b/ketcher-autotests/tests/test-data/Rxn-V3000/structure-with-two-reaction-arrows-saved-v3000.rxn new file mode 100644 index 0000000000..add969f3f4 --- /dev/null +++ b/ketcher-autotests/tests/test-data/Rxn-V3000/structure-with-two-reaction-arrows-saved-v3000.rxn @@ -0,0 +1,48 @@ +$RXN V3000 + + -INDIGO- 1006230822 + +M V30 COUNTS 1 1 +M V30 BEGIN REACTANT +M V30 BEGIN CTAB +M V30 COUNTS 6 6 0 0 0 +M V30 BEGIN ATOM +M V30 1 C 13.8348 -7.50007 0.0 0 +M V30 2 C 15.5652 -7.49959 0.0 0 +M V30 3 C 14.7016 -6.99997 0.0 0 +M V30 4 C 15.5652 -8.50053 0.0 0 +M V30 5 C 13.8348 -8.50502 0.0 0 +M V30 6 C 14.7038 -9.0 0.0 0 +M V30 END ATOM +M V30 BEGIN BOND +M V30 1 2 3 1 +M V30 2 1 1 5 +M V30 3 2 5 6 +M V30 4 1 6 4 +M V30 5 2 4 2 +M V30 6 1 2 3 +M V30 END BOND +M V30 END CTAB +M V30 END REACTANT +M V30 BEGIN PRODUCT +M V30 BEGIN CTAB +M V30 COUNTS 6 6 0 0 0 +M V30 BEGIN ATOM +M V30 1 C 13.8348 -2.72507 0.0 0 +M V30 2 C 15.5652 -2.72459 0.0 0 +M V30 3 C 14.7016 -2.22497 0.0 0 +M V30 4 C 15.5652 -3.72553 0.0 0 +M V30 5 C 13.8348 -3.73002 0.0 0 +M V30 6 C 14.7038 -4.22503 0.0 0 +M V30 END ATOM +M V30 BEGIN BOND +M V30 1 2 3 1 +M V30 2 1 1 5 +M V30 3 2 5 6 +M V30 4 1 6 4 +M V30 5 2 4 2 +M V30 6 1 2 3 +M V30 END BOND +M V30 END CTAB +M V30 END PRODUCT +M END diff --git a/ketcher-autotests/tests/test-data/Rxn-V3000/structure-with-two-reaction-arrows-saved.rxn b/ketcher-autotests/tests/test-data/Rxn-V3000/structure-with-two-reaction-arrows-saved.rxn new file mode 100644 index 0000000000..6afd6bfdbc --- /dev/null +++ b/ketcher-autotests/tests/test-data/Rxn-V3000/structure-with-two-reaction-arrows-saved.rxn @@ -0,0 +1,41 @@ +$RXN + + -INDIGO- 1006231119 + + 1 1 +$MOL + + -INDIGO-10062311192D + + 6 6 0 0 0 0 0 0 0 0999 V2000 + 13.8348 -7.5001 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 15.5652 -7.4996 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 14.7016 -7.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 15.5652 -8.5005 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 13.8348 -8.5050 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 14.7038 -9.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3 1 2 0 0 0 0 + 1 5 1 0 0 0 0 + 5 6 2 0 0 0 0 + 6 4 1 0 0 0 0 + 4 2 2 0 0 0 0 + 2 3 1 0 0 0 0 +M END +$MOL + + -INDIGO-10062311192D + + 6 6 0 0 0 0 0 0 0 0999 V2000 + 13.8348 -2.7251 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 15.5652 -2.7246 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 14.7016 -2.2250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 15.5652 -3.7255 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 13.8348 -3.7300 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 14.7038 -4.2250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3 1 2 0 0 0 0 + 1 5 1 0 0 0 0 + 5 6 2 0 0 0 0 + 6 4 1 0 0 0 0 + 4 2 2 0 0 0 0 + 2 3 1 0 0 0 0 +M END diff --git a/ketcher-autotests/tests/test-data/heteroatoms-expectedV2000.rxn b/ketcher-autotests/tests/test-data/heteroatoms-expectedV2000.rxn index c7cf8e1da0..a5526aa7ab 100644 --- a/ketcher-autotests/tests/test-data/heteroatoms-expectedV2000.rxn +++ b/ketcher-autotests/tests/test-data/heteroatoms-expectedV2000.rxn @@ -1,11 +1,11 @@ $RXN - -INDIGO- 0914231336 + -INDIGO- 1006231119 2 2 $MOL - -INDIGO-09142313362D + -INDIGO-10062311192D 9 8 0 0 0 0 0 0 0 0999 V2000 1.8618 -8.5809 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 @@ -28,7 +28,7 @@ $MOL M END $MOL - -INDIGO-09142313362D + -INDIGO-10062311192D 2 1 0 0 0 0 0 0 0 0999 V2000 11.4345 -8.5951 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 @@ -37,7 +37,7 @@ $MOL M END $MOL - -INDIGO-09142313362D + -INDIGO-10062311192D 9 8 0 0 0 0 0 0 0 0999 V2000 18.1339 -8.7017 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 @@ -60,7 +60,7 @@ $MOL M END $MOL - -INDIGO-09142313362D + -INDIGO-10062311192D 1 0 0 0 0 0 0 0 0 0999 V2000 27.9882 -8.5213 0.0000 H2 0 0 0 0 0 0 0 0 0 0 0 0 diff --git a/ketcher-autotests/tests/test-data/r-group-V3000-expectedV3000.rxn b/ketcher-autotests/tests/test-data/r-group-V3000-expectedV3000.rxn index d33bfea7c0..c3c556af56 100644 --- a/ketcher-autotests/tests/test-data/r-group-V3000-expectedV3000.rxn +++ b/ketcher-autotests/tests/test-data/r-group-V3000-expectedV3000.rxn @@ -1,6 +1,6 @@ $RXN V3000 - -INDIGO- 0914231336 + -INDIGO- 1006231119 M V30 COUNTS 1 1 M V30 BEGIN REACTANT diff --git a/ketcher-autotests/tests/test-data/sec-butyl-abr-expectedV2000.rxn b/ketcher-autotests/tests/test-data/sec-butyl-abr-expectedV2000.rxn index 8174d254de..112fb0bb52 100644 --- a/ketcher-autotests/tests/test-data/sec-butyl-abr-expectedV2000.rxn +++ b/ketcher-autotests/tests/test-data/sec-butyl-abr-expectedV2000.rxn @@ -1,11 +1,11 @@ $RXN - -INDIGO- 0914231336 + -INDIGO- 1006231119 2 1 $MOL - -INDIGO-09142313362D + -INDIGO-10062311192D 5 5 0 0 0 0 0 0 0 0999 V2000 13.1022 -9.7018 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 @@ -21,7 +21,7 @@ $MOL M END $MOL - -INDIGO-09142313362D + -INDIGO-10062311192D 10 9 0 0 0 0 0 0 0 0999 V2000 3.2286 -8.6591 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 @@ -52,7 +52,7 @@ M SDI 1 4 0.0000 0.0000 0.0000 0.0000 M END $MOL - -INDIGO-09142313362D + -INDIGO-10062311192D 17 17 0 0 0 0 0 0 0 0999 V2000 20.4404 -9.2536 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0