Ticket #8958 (closed: fixed)

Opened 7 years ago

Last modified 5 years ago

SaveAnsto save Algorithm

Reported by: Keith Brown Owned by: Keith Brown
Priority: major Milestone: Release 3.2
Component: Reflectometry Keywords:
Cc: Blocked By:
Blocking: #8960, #8963 Tester: Roman Tolchenov

Description

Ansto is a file format the ISIS reflectometry gui can save to, but at present it's written in python.

Write a c++ algorithm for it.

Change History

comment:1 Changed 7 years ago by Keith Brown

  • Blocking 8963 added

comment:2 Changed 7 years ago by Keith Brown

  • Status changed from new to inprogress

Refs #8958 Initial Files Created

Created the cpp, h and test.h for SaveANSTO and added them to the list.

The files contain a skeleton which allows the project to build but they'll not do anything

Changeset: b922bc4f650532502ec70774361c68895c56e528

comment:3 Changed 7 years ago by Keith Brown

Refs #8958 Save Algorithm Written

The algorithm outputs the same data as the python script wiht the exception of inf and nan where it prints them in a different form.

Owen has said that it should be ok and we'll get the scientists to check

Changeset: 357a8e4a6dfd2a3e605bcb99ae97ede164f9e9f4

comment:4 Changed 7 years ago by Keith Brown

refs #8958 added a file check

The ofstream is now checked to see if it was able to open the file.

Changeset: 934c5b448e9ba68a849f4ebabc8d4138a406c953

comment:5 Changed 7 years ago by Keith Brown

Refs #8958 Written unit test

SaveANSTO now has a basic unit test. Still needs a few more to push it a bit.

Changeset: 10f8c12d8c0e15b7fd6dce188450e50fab5938fb

comment:6 Changed 7 years ago by Keith Brown

Refs #8958 Extra test added

Not much else you can test on this algorithm, i've jsut added a fail test for a fake workspace

I also removed calls to initialize() as they weren't needed when using the AlgorithmManager

Changeset: 9609eead9f824dd17dd87167b2d32527d6c467a6

comment:7 Changed 7 years ago by Keith Brown

Refs #8958 disable failing unit test

Linux and windows deal with nan values differently and it's causing a problem. I need to redefine the file fomat a tad so we know what to expect.

the failing tests have ben disabled so the buildservers can get back to normal

Changeset: 775e1431661b468afa06ca1fc9c9fff6bba49e4d

comment:8 Changed 7 years ago by Keith Brown

Refs #8958 Sorted complier warnings

there were a couple of "comparison between signed and unsigned int" warnings.

I also changed a couple of autos to const references of thier actual types on martyn's suggestion.

Changeset: 197fc5c0ab6ed6f996bfc070259a52c7a7cd718c

comment:9 Changed 7 years ago by Keith Brown

Refs #8958 Renamed algorithm files

The algorithm is being renamed, files have been renamed

Changeset: 7eb694f9814cb2c2ddb601f06f2dd10039463114

comment:10 Changed 7 years ago by Keith Brown

Refs #8958 Renamed and refactored

The aglorithm has no been fully renamed from SaveANSTO to SaveANSTOAscii.

The test has also been heavily refactored to strip out some duplication, re-implement some parts in a way i've been advised to do and changed the testing to a better more strict way.

Windows now catches that nan that linux caught, as it was the way the stream opperator worked.

Changeset: 941feb561427d49751c5ff52bd68d14d358eee05

comment:11 Changed 7 years ago by Keith Brown

Refs #8958 checks and outputs nan and inf consistently

Nan and inf values are checked for and output in a constant format. (hopefully across platforms)

Changeset: 94bd6e912744d9017496de9ecc65a96b463b1dde

comment:12 Changed 7 years ago by Keith Brown

Refs #8958 Unit test now checks for special values

The unit test now looks for a NAN or INF in one of the tests. This means that the test will still pass if a platform outputs a different special value for divide by zero, as by all rights both NAN and INF are both valid results.

Changeset: e3b112c789b2f4aa37c62060546b0bef929ed389

comment:13 Changed 7 years ago by Keith Brown

Refs #8958 Forgot an include

When i added the boost::math functions i forgot to add the inlcude. Windows didn't seem to care as it was apprently in a precompiled header.

Changeset: 9f1f7340b163e2f1fe898f4d9d17d3d4be53d5f4

comment:14 Changed 7 years ago by Keith Brown

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

comment:15 Changed 7 years ago by Keith Brown

  • Status changed from verify to reopened
  • Resolution fixed deleted

just realised there are a few errors

comment:16 Changed 7 years ago by Keith Brown

  • Status changed from reopened to inprogress

Refs #8958 Renamed variables and improved vector allocation.

The vector is now initialised and alocated in one go, which should eb much more efficent.

Many variables have been renamed, before now they were using the same names as they did in Max's code

Changeset: 6dba6a8e4a116052e440641a38eaa2f89b4e41ff

comment:17 Changed 7 years ago by Keith Brown

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

To tester

Save a workspace from within the ISIS reflectometry GUI using the ANSTO format (File->Save Workspaces)

Then save the same workspace with the new SaveANSTOAscii algorithm, the resulting files should be identical

comment:18 Changed 7 years ago by Peter Parker

  • Status changed from verify to reopened
  • Resolution fixed deleted

That last commit needs a checkbuild, Keith, as it's not in Develop.

comment:19 Changed 7 years ago by Keith Brown

That'll be because of the forced updates to develop. Will do that in a bit

comment:20 Changed 7 years ago by Keith Brown

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

comment:21 Changed 7 years ago by Roman Tolchenov

  • Status changed from verify to verifying
  • Tester set to Roman Tolchenov

comment:22 Changed 7 years ago by Roman Tolchenov

  • Status changed from verifying to reopened
  • Resolution fixed deleted

The WIKI section is too short. Is there a LoadANSTO algorithm?

comment:23 Changed 7 years ago by Keith Brown

Nope, no paired load algorithm as this is literally an export format and what it saves will make zero sense in mantid.

But I'll admit the WIKI section could be more descriptive

comment:24 Changed 7 years ago by Keith Brown

  • Blocking 8960 added

#8960 is now being blocked by this as these algorithms need to be subclassed from the same base functionality as they're VERY similiar

comment:25 Changed 7 years ago by Keith Brown

  • Status changed from reopened to inprogress

Refs #8958 Added wiki information

Added some wiki information. Basically enough to show that this is a specific-use save algorithm as well as explicitly mentioning that the result is not meant to be loaded back into mantid

Changeset: 0bf86f34320044ff136004f99f6817f868d92e3e

comment:26 Changed 7 years ago by Keith Brown

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

comment:27 Changed 7 years ago by Roman Tolchenov

  • Status changed from verify to verifying

comment:28 Changed 7 years ago by Roman Tolchenov

  • Status changed from verifying to closed

Merge remote-tracking branch 'origin/feature/8958_SaveAnsto_Algorithm'

Full changeset: fc7c42c56c36715f690b6dbbc1af713cd282727d

comment:29 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 9801

Note: See TracTickets for help on using tickets.