Ticket #8570 (closed: fixed)

Opened 7 years ago

Last modified 5 years ago

Make VectorColumns save-able to a Nexus file.

Reported by: Arturs Bekasovs Owned by: Arturs Bekasovs
Priority: critical Milestone: Release 3.1
Component: Framework Keywords:
Cc: Blocked By:
Blocking: Tester: Nick Draper

Description

In #8550 VectorColumn was added as another TableWorkspace column type. However, currently it is not being saved by SaveNexus, as it doesn't know how to deal with it. This should be implemented.

Attachments

create-table-with-vector-column.py (179 bytes) - added by Arturs Bekasovs 7 years ago.
Script which creates a table with vector column

Change History

comment:1 Changed 7 years ago by Arturs Bekasovs

  • Status changed from new to inprogress

Refs #8570. Add initial test for saving functionality.

Changeset: c6836f5ee4ede9c0e20f2a08c754480421f31fcf

comment:2 Changed 7 years ago by Arturs Bekasovs

Refs #8570. Add method which saves fake column data.

Changeset: f82bf8fa5dc7cd051e0faa9e3d880013b4ed2723

comment:3 Changed 7 years ago by Arturs Bekasovs

Refs #8570. Add code do determine correct dimensions and test for it.

Changeset: 692a5d58be37a0bf2d0202fbcf6a5d7a32ebe1f2

comment:4 Changed 7 years ago by Arturs Bekasovs

Refs #8570. Add code for saving the column data.

Changeset: ff1ec0788f5d06584266ae1e658ae742ac87e448

comment:5 Changed 7 years ago by Arturs Bekasovs

Refs #8570. Add support for multiple column types and test for it.

Changeset: 4a47b6dbf359ace136a825b9f65955626dcd89a6

comment:6 Changed 7 years ago by Arturs Bekasovs

Refs #8570. Update documentation.

Changeset: 6d042eee91b47da640472cb23f57c33b4c4a05f5

comment:7 Changed 7 years ago by Arturs Bekasovs

  • Milestone changed from Backlog to Release 3.1

comment:8 Changed 7 years ago by Arturs Bekasovs

Refs #8570. Add code for writing attributes and test for it.

Changeset: 4341f27b49fc3bd80580ba5d0644ee0328f18d32

comment:9 Changed 7 years ago by Arturs Bekasovs

Refs #8570. Fix the Windows building problem.

Apparently Windows compiler doesn't like allocating dynamic size arrays on the stack.

Changeset: fb61f03f2a08f4384fb3fd7e3d78ada57e2ce8f0

comment:10 Changed 7 years ago by Arturs Bekasovs

Refs #8570. Add test for loading vector columns.

Changeset: 89753f3b7dfd7fb26f38866f8c834a49b317b763

comment:11 Changed 7 years ago by Arturs Bekasovs

Refs #8570. Use rank as well to determine column type in Nexus.

Changeset: 940a910ba5e3c589923c53e30aaa49415549e075

comment:12 Changed 7 years ago by Arturs Bekasovs

Refs #8570. Add code for saving sizes of rows and tests for it.

We need that information to load the column successfully, we can not rely on padding values because they might be a part of the vector stored.

Changeset: 0e2c7a8af728c9a7b5a8f417e4209397a1102f4b

comment:13 Changed 7 years ago by Arturs Bekasovs

Refs #8570. Add implementation for vector_int column.

Changeset: 0023843895bec22f1ca050c607198abf3ec0f781

comment:14 Changed 7 years ago by Arturs Bekasovs

Refs #8570. Mode vector column loading code to a function.

Changeset: a1fc162a471d871870f913aefd62bb7567c146c5

comment:15 Changed 7 years ago by Arturs Bekasovs

Refs #8570. Add support for multiple vector column type loading.

Changeset: f09b61697768ac49e65f1f7a6e5dd0a32eaa2d68

comment:16 Changed 7 years ago by Arturs Bekasovs

Refs #8570. Rename type parameter to be consistent.

Changeset: 37e46b2f4158845503e50020fb4c50aaa450c77d

comment:17 Changed 7 years ago by Arturs Bekasovs

Tester:

This touches important parts of the system, so I would like it to be reviewed/tested by senior developer.

  • The code is templated and uses pre-processor directives to make adding new VectorColumn types as easy as possible. This makes it quite tricky though, so code review is crucial here.
  • Make sure unit tests cover new functionality.
  • The simplest use case to test:
    1. Open Load dialog.
    2. Select AutoTestData/emu00006473.nxs file.
    3. Set the name of the DetectorGroupingTable to Grouping and push Run. Grouping workspace should be created, which contains a VectorColumn.
    4. Save Grouping workspace to the Nexus file.
    5. Load that Nexus file. Loaded workspace should contain the same data as Grouping does.
  • You might find attached Python script handy to create tables for testing.
  • Just in case, load/save a table with some other column types, just to make sure existing functionality hasn't been affected. You can use AutoTestData/SavedTableWorkspace.nxs for that.

Last edited 7 years ago by Arturs Bekasovs (previous) (diff)

Changed 7 years ago by Arturs Bekasovs

Script which creates a table with vector column

comment:18 Changed 7 years ago by Arturs Bekasovs

  • Status changed from inprogress to verify
  • Resolution set to fixed

comment:19 Changed 7 years ago by Nick Draper

  • Status changed from verify to verifying
  • Tester set to Nick Draper

comment:20 Changed 7 years ago by Nick Draper

Review: clear code, Nice unit test addition

Last edited 7 years ago by Nick Draper (previous) (diff)

comment:21 Changed 7 years ago by Nick Draper

  • Status changed from verifying to closed

Merge remote-tracking branch 'origin/feature/8570_saving_vector_columns'

Full changeset: 7d63292acea428ad279605012c4c69c4d7f77309

comment:22 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 9414

Note: See TracTickets for help on using tickets.