-
Nick Draper authored
Update copyright headers in all files Squashed commit of the following: * First version of a script to manage copyright statements re #23468 * Neatened up script, added comments re #23488 * move script to tools directory re #23488 * small script changes and a couple of manual file changes re #23488 * Minor chnage to whitespace detection in regex re #23488 * Add an excluded directory re #23488 * remove a repeasted copyright statement in a file re #23488 * Don't comsume the comment end if it is on the same line re #23488 * fix error in new copright parsing re #23488 * remove double copyrifght entry re #23488 * Improve handling of old copyrights at the start of comments re #23488 * remove empty comments re #23488 * exclude gsoapgenerated directories re #23488 * Sort out greedy line matching re #23488 * improve empty comment removal re #23488 * improve false positives re #23488 * impressive speedup by limiting regex matching length re #23488 * remove evil invisible non ascii character Also upadte the copyright at the same time re #23488 * resolve multiple copyrights in a single file re #23488 * resolve an issue with new statement detection re #23488 * another unprintable unicode character re #23488 * pep updates and cmake the new copyright fit clang format re #23488 * update already done new format headers re #23488 * wrong type of bracket re #23488 * Update class_maker and friends re #23488 * Update all copyright statements re #23488 * clang format re #23488 * flake8 warnings re #23488 * Flake8 warnings re #23488 * Exclude .cmake.in and rb.in files re #23488 * replace missing line re #23488 * exclude .py.in files as they are flasely recognized as C++ re #23488 * another setp.py.in re #23488 * another .py.in correction re #23488 * Hopefully the last of the .py.in files re #23488 * resolve utf-8 encoding of python files and changed ABINS checksum re #23488 * updates to unit tests that reference line numbers re #23488 * remaining unit test files and other fixes re #23488
Nick Draper authoredUpdate copyright headers in all files Squashed commit of the following: * First version of a script to manage copyright statements re #23468 * Neatened up script, added comments re #23488 * move script to tools directory re #23488 * small script changes and a couple of manual file changes re #23488 * Minor chnage to whitespace detection in regex re #23488 * Add an excluded directory re #23488 * remove a repeasted copyright statement in a file re #23488 * Don't comsume the comment end if it is on the same line re #23488 * fix error in new copright parsing re #23488 * remove double copyrifght entry re #23488 * Improve handling of old copyrights at the start of comments re #23488 * remove empty comments re #23488 * exclude gsoapgenerated directories re #23488 * Sort out greedy line matching re #23488 * improve empty comment removal re #23488 * improve false positives re #23488 * impressive speedup by limiting regex matching length re #23488 * remove evil invisible non ascii character Also upadte the copyright at the same time re #23488 * resolve multiple copyrights in a single file re #23488 * resolve an issue with new statement detection re #23488 * another unprintable unicode character re #23488 * pep updates and cmake the new copyright fit clang format re #23488 * update already done new format headers re #23488 * wrong type of bracket re #23488 * Update class_maker and friends re #23488 * Update all copyright statements re #23488 * clang format re #23488 * flake8 warnings re #23488 * Flake8 warnings re #23488 * Exclude .cmake.in and rb.in files re #23488 * replace missing line re #23488 * exclude .py.in files as they are flasely recognized as C++ re #23488 * another setp.py.in re #23488 * another .py.in correction re #23488 * Hopefully the last of the .py.in files re #23488 * resolve utf-8 encoding of python files and changed ABINS checksum re #23488 * updates to unit tests that reference line numbers re #23488 * remaining unit test files and other fixes re #23488
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
MDUnitTest.h 3.46 KiB
// Mantid Repository : https://github.com/mantidproject/mantid
//
// Copyright © 2018 ISIS Rutherford Appleton Laboratory UKRI,
// NScD Oak Ridge National Laboratory, European Spallation Source
// & Institut Laue - Langevin
// SPDX - License - Identifier: GPL - 3.0 +
#ifndef MANTID_KERNEL_MDUNITTEST_H_
#define MANTID_KERNEL_MDUNITTEST_H_
#include <cxxtest/TestSuite.h>
#include "MantidKernel/MDUnit.h"
#include "MantidKernel/UnitLabelTypes.h"
using namespace Mantid::Kernel;
class MDUnitTest : public CxxTest::TestSuite {
public:
// This pair of boilerplate methods prevent the suite being created statically
// This means the constructor isn't called when running other tests
static MDUnitTest *createSuite() { return new MDUnitTest(); }
static void destroySuite(MDUnitTest *suite) { delete suite; }
void test_RLU_Constructor_with_valid_special_unit_label_accepts_the_label() {
auto unitLabel = UnitLabel("in 1.992 A^-1");
ReciprocalLatticeUnit unit(unitLabel);
TS_ASSERT_EQUALS(unitLabel.ascii(), unit.getUnitLabel().ascii());
}
void
test_RLU_Constructor_with_invalid_special_unit_label_does_not_accept_the_label() {
auto unitLabel = UnitLabel("in invalidLabel A-1");
ReciprocalLatticeUnit unit(unitLabel);
TS_ASSERT_EQUALS(Units::Symbol::RLU, unit.getUnitLabel());
}
void test_RLU_getUnitLabel() {
ReciprocalLatticeUnit unit;
TS_ASSERT_EQUALS(Units::Symbol::RLU, unit.getUnitLabel());
}
void test_RLU_canConvertTo_does_not_convert_to_just_anything() {
ReciprocalLatticeUnit unit;
LabelUnit other("MeV");
TSM_ASSERT("Conversion forbidden", !unit.canConvertTo(other));
TSM_ASSERT_DIFFERS("Different types", unit, other);
}
void test_RLU_canConvertTo_InverseAngstroms() {
ReciprocalLatticeUnit unit;
InverseAngstromsUnit other;
TSM_ASSERT("Simple conversion possible", unit.canConvertTo(other));
TSM_ASSERT_DIFFERS("Convertable, but not the same", unit, other);
}
void test_InverseAngstroms_getUnitLabel() {
InverseAngstromsUnit unit;
TS_ASSERT_EQUALS(Units::Symbol::InverseAngstrom, unit.getUnitLabel());
}
void test_InverseAngstroms_canConvertTo_does_not_convert_to_just_anything() {
InverseAngstromsUnit unit;
LabelUnit other("MeV");
TSM_ASSERT("Conversion forbidden", !unit.canConvertTo(other));
TSM_ASSERT_DIFFERS("Different types", unit, other);
}
void test_InverseAnstroms_canConvertTo_RLU() {
ReciprocalLatticeUnit unit;
InverseAngstromsUnit other;
TSM_ASSERT("Simple conversion possible", unit.canConvertTo(other));
TSM_ASSERT_DIFFERS("Convertable, but not the same", unit, other);
}
void test_labelUnit_getUnitLabel() {
// Negative test
LabelUnit tUnit("DegC");
TSM_ASSERT_DIFFERS("Not same unit label", UnitLabel("SomethingElse"),
tUnit.getUnitLabel());
// Positive test
TSM_ASSERT_EQUALS("Same unit label", UnitLabel("DegC"),
tUnit.getUnitLabel());
}
void test_LabelUnit_canConvert_to_same() {
LabelUnit a("Bar");
LabelUnit b("Bar");
TS_ASSERT(a.canConvertTo(b));
TSM_ASSERT_EQUALS("Convertable, and same type", a, b);
}
void test_LabelUnit_canConvert_to_other() {
LabelUnit a("DegC");
LabelUnit b("Bar");
TS_ASSERT(!a.canConvertTo(b));
TS_ASSERT_DIFFERS(a, b);
}
void test_cloneLabelUnit() {
LabelUnit a("CustomUnit");
LabelUnit *b = a.clone();
TS_ASSERT_EQUALS(a, *b);
delete b;
}
};
#endif /* MANTID_KERNEL_MDUNITTEST_H_ */