From f5ad6d57efd7bbd5229f6a28406bda96cad67d7d Mon Sep 17 00:00:00 2001
From: Sam Jenkins <s.jenkins@stfc.ac.uk>
Date: Fri, 19 Oct 2018 15:11:29 +0100
Subject: [PATCH] Re #23807 Updated Systemtests

---
 Framework/API/test/SampleTest.h               | 10 ++++-----
 Framework/Algorithms/test/CopySampleTest.h    |  2 +-
 .../test/MonteCarloAbsorptionTest.h           |  2 +-
 Framework/Algorithms/test/MonteCarloTesting.h |  6 ++---
 .../DataHandling/test/LoadBinaryStlTest.h     | 10 +++++++++
 Framework/Geometry/test/MeshObject2DTest.h    | 12 +++++-----
 Framework/Geometry/test/MeshObjectTest.h      | 12 +++++-----
 .../test/NexusShapeFactoryTest.h              | 22 +++++++++----------
 8 files changed, 42 insertions(+), 34 deletions(-)

diff --git a/Framework/API/test/SampleTest.h b/Framework/API/test/SampleTest.h
index 6b73e2df9e7..05b8d760f28 100644
--- a/Framework/API/test/SampleTest.h
+++ b/Framework/API/test/SampleTest.h
@@ -62,15 +62,15 @@ public:
   test_That_An_Environment_Can_Be_Set_And_The_Same_Environment_Is_Returned() {
     Sample sample;
     const std::string envName("TestKit");
-    SampleEnvironment *kit =
-        new SampleEnvironment(envName, boost::make_shared<const Container>(""));
-    kit->add(boost::make_shared<const CSGObject>());
+    boost::shared_ptr<Geometry::SampleEnvironment> environment = nullptr;
+    environment = boost::make_shared<SampleEnvironment>(envName, boost::make_shared<const Container>(""));
+    environment->add(boost::make_shared<const CSGObject>());
 
-    TS_ASSERT_THROWS_NOTHING(sample.setEnvironment(kit));
+    TS_ASSERT_THROWS_NOTHING(sample.setEnvironment(environment));
 
     const SampleEnvironment &sampleKit = sample.getEnvironment();
     // Test that this references the correct object
-    TS_ASSERT_EQUALS(&sampleKit, kit);
+    TS_ASSERT_EQUALS(&sampleKit, environment.get());
     TS_ASSERT_EQUALS(sampleKit.name(), envName);
     TS_ASSERT_EQUALS(sampleKit.nelements(), 2);
   }
diff --git a/Framework/Algorithms/test/CopySampleTest.h b/Framework/Algorithms/test/CopySampleTest.h
index 715e35c6b34..be04af48168 100644
--- a/Framework/Algorithms/test/CopySampleTest.h
+++ b/Framework/Algorithms/test/CopySampleTest.h
@@ -47,7 +47,7 @@ public:
     const std::string envName("TestKit");
     auto canShape = ComponentCreationHelper::cappedCylinderXML(
         0.5, 1.5, V3D(0.0, 0.0, 0.0), V3D(0., 1.0, 0.), "tube");
-    SampleEnvironment *kit = new SampleEnvironment(
+    auto kit = boost::make_shared<SampleEnvironment>(
         envName,
         boost::make_shared<Container>(ShapeFactory().createShape(canShape)));
     sample.setEnvironment(kit);
diff --git a/Framework/Algorithms/test/MonteCarloAbsorptionTest.h b/Framework/Algorithms/test/MonteCarloAbsorptionTest.h
index b43a162c130..65bddeb318b 100644
--- a/Framework/Algorithms/test/MonteCarloAbsorptionTest.h
+++ b/Framework/Algorithms/test/MonteCarloAbsorptionTest.h
@@ -65,7 +65,7 @@ void addSample(Mantid::API::MatrixWorkspace_sptr ws,
     canShape->setMaterial(Material(
         "CanMaterial", PhysicalConstants::getNeutronAtom(26, 0), 0.01));
     auto can = boost::make_shared<Container>(canShape);
-    SampleEnvironment *env = new SampleEnvironment("can", can);
+    auto env = boost::make_shared<SampleEnvironment>("can", can);
     ws->mutableSample().setEnvironment(env);
   } else if (environment == Environment::UserBeamSize) {
     auto inst = ws->getInstrument();
diff --git a/Framework/Algorithms/test/MonteCarloTesting.h b/Framework/Algorithms/test/MonteCarloTesting.h
index 5d2b3f860bc..b3233ec7ea3 100644
--- a/Framework/Algorithms/test/MonteCarloTesting.h
+++ b/Framework/Algorithms/test/MonteCarloTesting.h
@@ -14,9 +14,7 @@
 #include "MantidKernel/Material.h"
 #include "MantidKernel/PseudoRandomNumberGenerator.h"
 #include "MantidKernel/WarningSuppressions.h"
-#include "MantidKernel/make_unique.h"
 #include "MantidTestHelpers/ComponentCreationHelper.h"
-
 #include <boost/make_shared.hpp>
 #include <gmock/gmock.h>
 
@@ -105,7 +103,7 @@ inline Mantid::API::Sample createSamplePlusContainer() {
   }
   auto can = boost::make_shared<Container>(canShape);
   auto environment =
-      Mantid::Kernel::make_unique<SampleEnvironment>("Annulus Container", can);
+      boost::make_shared<SampleEnvironment>("Annulus Container", can);
   // Sample volume
   auto sampleCell = ComponentCreationHelper::createCappedCylinder(
       innerRadius, height, centre, upAxis, "sample");
@@ -118,7 +116,7 @@ inline Mantid::API::Sample createSamplePlusContainer() {
   // Sample object
   Sample testSample;
   testSample.setShape(sampleCell);
-  testSample.setEnvironment(environment.release());
+  testSample.setEnvironment(environment);
   return testSample;
 }
 
diff --git a/Framework/DataHandling/test/LoadBinaryStlTest.h b/Framework/DataHandling/test/LoadBinaryStlTest.h
index fd5c3e33cf8..63543edbc34 100644
--- a/Framework/DataHandling/test/LoadBinaryStlTest.h
+++ b/Framework/DataHandling/test/LoadBinaryStlTest.h
@@ -66,4 +66,14 @@ public:
   }
 };
 
+class LoadBinaryStlTestPerformance : public CxxTest::TestSuite {
+public:
+  void test_loading_large_stl() {
+    std::string path = FileFinder::Instance().getFullPath("SI-4200-610.stl");
+    auto loader = LoadBinaryStl(path);
+    auto LargeFile = loader.readStl();
+  }
+  
+  
+};
 #endif /* LOAD_BINARYSTL_TEST_H_ */
\ No newline at end of file
diff --git a/Framework/Geometry/test/MeshObject2DTest.h b/Framework/Geometry/test/MeshObject2DTest.h
index 7d0f1a2e79b..a08bd630d71 100644
--- a/Framework/Geometry/test/MeshObject2DTest.h
+++ b/Framework/Geometry/test/MeshObject2DTest.h
@@ -30,14 +30,14 @@ MeshObject2D makeSimpleTriangleMesh() {
   vertices.emplace_back(V3D(-1, 0, 0));
   vertices.emplace_back(V3D(1, 0, 0));
   vertices.emplace_back(V3D(0, 1, 0));
-  std::vector<uint16_t> triangles;
+  std::vector<uint32_t> triangles;
   triangles.insert(triangles.end(), {0, 1, 2});
   return MeshObject2D(triangles, vertices, Mantid::Kernel::Material());
 }
 MeshObject2D makeTrapezoidMesh(const V3D &a, const V3D &b, const V3D &c,
                                const V3D &d) {
   std::vector<V3D> vertices{a, b, c, d};
-  std::vector<uint16_t> triangles;
+  std::vector<uint32_t> triangles;
   triangles.insert(triangles.end(), {0, 1, 2});
   triangles.insert(triangles.end(), {2, 3, 0});
   return MeshObject2D(triangles, vertices, Mantid::Kernel::Material());
@@ -108,7 +108,7 @@ public:
     vertices.emplace_back(V3D(0, 0, 0));
     vertices.emplace_back(V3D(1, 0, 0));
 
-    std::vector<uint16_t> triangles;
+    std::vector<uint32_t> triangles;
     triangles.insert(triangles.end(),
                      {0, 1, 1}); // invalid, but doesn't matter for this test
 
@@ -131,7 +131,7 @@ public:
     vertices.emplace_back(V3D(1, 0, 0));
     vertices.emplace_back(V3D(2, 0, 0));
 
-    std::vector<uint16_t> triangles;
+    std::vector<uint32_t> triangles;
     triangles.insert(triangles.end(), {0, 1, 2});
 
     // Test constructor taking lvalue references
@@ -155,7 +155,7 @@ public:
     vertices.emplace_back(V3D(1, 1, 0));
     vertices.emplace_back(V3D(1, 0, 1));
 
-    std::vector<uint16_t> triangles;
+    std::vector<uint32_t> triangles;
     triangles.insert(triangles.end(), {0, 1, 2});
 
     // Test constructor taking lvalue references
@@ -176,7 +176,7 @@ public:
     vertices.emplace_back(V3D(-1, 0, 0));
     vertices.emplace_back(V3D(1, 0, 0));
     vertices.emplace_back(V3D(0, 1, 0));
-    std::vector<uint16_t> triangles;
+    std::vector<uint32_t> triangles;
     triangles.insert(triangles.end(), {0, 1, 2});
 
     MeshObject2D mesh(triangles, vertices, Mantid::Kernel::Material());
diff --git a/Framework/Geometry/test/MeshObjectTest.h b/Framework/Geometry/test/MeshObjectTest.h
index 3d1d8d73519..0129a5f9174 100644
--- a/Framework/Geometry/test/MeshObjectTest.h
+++ b/Framework/Geometry/test/MeshObjectTest.h
@@ -74,7 +74,7 @@ std::unique_ptr<MeshObject> createCube(const double size, const V3D &centre) {
   vertices.emplace_back(centre + V3D(max, min, min));
   vertices.emplace_back(centre + V3D(min, min, min));
 
-  std::vector<uint16_t> triangles;
+  std::vector<uint32_t> triangles;
   // top face of cube - z max
   triangles.insert(triangles.end(), {0, 1, 2});
   triangles.insert(triangles.end(), {2, 1, 3});
@@ -124,7 +124,7 @@ std::unique_ptr<MeshObject> createOctahedron() {
   vertices.emplace_back(V3D(0, -u, 0));
   vertices.emplace_back(V3D(0, 0, -u));
 
-  std::vector<uint16_t> triangles;
+  std::vector<uint32_t> triangles;
   // +++ face
   triangles.insert(triangles.end(), {0, 1, 2});
   //++- face
@@ -168,7 +168,7 @@ std::unique_ptr<MeshObject> createLShape() {
   vertices.emplace_back(V3D(1, 2, 1));
   vertices.emplace_back(V3D(0, 2, 1));
 
-  std::vector<uint16_t> triangles;
+  std::vector<uint32_t> triangles;
   // z min
   triangles.insert(triangles.end(), {0, 5, 1});
   triangles.insert(triangles.end(), {1, 3, 2});
@@ -214,7 +214,7 @@ public:
     vertices.emplace_back(V3D(0, 1, 0));
     vertices.emplace_back(V3D(0, 0, 1));
 
-    std::vector<uint16_t> triangles;
+    std::vector<uint32_t> triangles;
     triangles.insert(triangles.end(), {1, 2, 3});
     triangles.insert(triangles.end(), {2, 1, 0});
     triangles.insert(triangles.end(), {3, 0, 1});
@@ -237,7 +237,7 @@ public:
 
   void testTooManyVertices() {
     auto tooManyVertices = std::vector<V3D>(70000);
-    auto triangles = std::vector<uint16_t>(1000);
+    auto triangles = std::vector<uint32_t>(1000);
     TS_ASSERT_THROWS_ANYTHING(
         MeshObject(triangles, tooManyVertices, Mantid::Kernel::Material()));
   }
@@ -250,7 +250,7 @@ public:
     vertices.emplace_back(V3D(0, 1, 0));
     vertices.emplace_back(V3D(0, 0, 1));
 
-    std::vector<uint16_t> triangles;
+    std::vector<uint32_t> triangles;
     triangles.insert(triangles.end(), {1, 2, 3});
     triangles.insert(triangles.end(), {2, 1, 0});
     triangles.insert(triangles.end(), {3, 0, 1});
diff --git a/Framework/NexusGeometry/test/NexusShapeFactoryTest.h b/Framework/NexusGeometry/test/NexusShapeFactoryTest.h
index ea7c353e905..d392974f3de 100644
--- a/Framework/NexusGeometry/test/NexusShapeFactoryTest.h
+++ b/Framework/NexusGeometry/test/NexusShapeFactoryTest.h
@@ -29,7 +29,7 @@ public:
     vertices.emplace_back(V3D(-1, 0, 0));
     vertices.emplace_back(V3D(1, 0, 0));
     vertices.emplace_back(V3D(0, 1, 0));
-    std::vector<uint16_t> triangles;
+    std::vector<uint32_t> triangles;
     triangles.insert(triangles.end(), {0, 1, 2});
 
     auto obj = createMesh(std::move(triangles), std::move(vertices));
@@ -46,7 +46,7 @@ public:
     vertices.emplace_back(V3D(1, 0, 0));
     vertices.emplace_back(V3D(0, 1, 0));
     vertices.emplace_back(V3D(0, 1, 1));
-    std::vector<uint16_t> triangles;
+    std::vector<uint32_t> triangles;
     triangles.insert(triangles.end(), {0, 1, 2, 1, 3, 2, 3, 0, 2});
 
     auto obj = createMesh(std::move(triangles), std::move(vertices));
@@ -59,8 +59,8 @@ public:
 class NexusShapeFactoryTestPerformance : public CxxTest::TestSuite {
 private:
   std::vector<Eigen::Vector3d> m_vertices;
-  std::vector<uint16_t> m_facesIndices;
-  std::vector<uint16_t> m_windingOrder;
+  std::vector<uint32_t> m_facesIndices;
+  std::vector<uint32_t> m_windingOrder;
 
   template <typename T>
   void appendTo(std::vector<T> &destination, unsigned int value) {
@@ -79,7 +79,7 @@ public:
 
   NexusShapeFactoryTestPerformance() {
     // Make inputs. Repeated squares
-    for (uint16_t i = 0; i < 10000; ++i) {
+    for (uint32_t i = 0; i < 10000; ++i) {
       m_vertices.emplace_back(Eigen::Vector3d(0 + i, 1, 0));
       m_vertices.emplace_back(Eigen::Vector3d(0 + i, 1, 0));
       /*
@@ -89,13 +89,13 @@ public:
        *     x           x     x
        */
 
-      appendTo<uint16_t>(m_facesIndices, (i * 4));
-      appendTo<uint16_t>(m_facesIndices, ((i + 1) * 4));
+      appendTo<uint32_t>(m_facesIndices, (i * 4));
+      appendTo<uint32_t>(m_facesIndices, ((i + 1) * 4));
       if (i % 2 != 0) {
-        appendTo<uint16_t>(m_windingOrder, (i * 2));
-        appendTo<uint16_t>(m_windingOrder, (i * 2 + 1));
-        appendTo<uint16_t>(m_windingOrder, (i * 2 + 2));
-        appendTo<uint16_t>(m_windingOrder, (i * 2 + 3));
+        appendTo<uint32_t>(m_windingOrder, (i * 2));
+        appendTo<uint32_t>(m_windingOrder, (i * 2 + 1));
+        appendTo<uint32_t>(m_windingOrder, (i * 2 + 2));
+        appendTo<uint32_t>(m_windingOrder, (i * 2 + 3));
       }
     }
   }
-- 
GitLab