]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Add test for creation of SD substitution maps from scalar types 7974/head
authorJean-Paul Pelteret <jppelteret@gmail.com>
Sat, 27 Apr 2019 17:31:44 +0000 (19:31 +0200)
committerJean-Paul Pelteret <jppelteret@gmail.com>
Sun, 28 Apr 2019 15:22:06 +0000 (17:22 +0200)
tests/symengine/substitution_maps_scalar_03.cc [new file with mode: 0644]
tests/symengine/substitution_maps_scalar_03.output [new file with mode: 0644]

diff --git a/tests/symengine/substitution_maps_scalar_03.cc b/tests/symengine/substitution_maps_scalar_03.cc
new file mode 100644 (file)
index 0000000..cc4c79e
--- /dev/null
@@ -0,0 +1,79 @@
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2019 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+// Check that functions to create substitution maps from scalar variables work
+// correctly.
+
+#include <deal.II/differentiation/sd.h>
+
+#include <symengine/basic.h>
+#include <symengine/symengine_rcp.h>
+
+#include <complex>
+#include <iostream>
+#include <string>
+
+#include "../tests.h"
+
+using namespace dealii;
+namespace SD = Differentiation::SD;
+namespace SE = ::SymEngine;
+
+int
+main()
+{
+  initlog();
+
+
+  const SD::types::substitution_map substitution_map_1 =
+    SD::make_substitution_map(SD::Expression("x1"), SD::Expression(1));
+  const SD::types::substitution_map substitution_map_2 =
+    SD::make_substitution_map(SD::Expression("x3"), 3.0);
+  const SD::types::substitution_map substitution_map_3 =
+    SD::make_substitution_map(SD::types::symbol_vector{SD::Expression("x6"),
+                                                       SD::Expression("x7")},
+                              std::vector<int>{6, 7});
+  const SD::types::substitution_map substitution_map_4{
+    {SD::Expression("x8"), SD::Expression(8.0)},
+    {SD::Expression("x9"), SD::Expression(9.0f)},
+    {SD::Expression("x10"), SD::Expression(10u)}};
+  const SD::types::substitution_map substitution_map_5 =
+    SD::make_substitution_map(std::make_pair(SD::Expression("x11"), 11));
+  const SD::types::substitution_map substitution_map_6 =
+    SD::make_substitution_map(std::vector<std::pair<SD::Expression, int>>{
+      std::make_pair(SD::Expression("x12"), 12),
+      std::make_pair(SD::Expression("x13"), 13)});
+  const SD::types::substitution_map substitution_map_7 =
+    SD::make_substitution_map(std::make_pair(SD::Expression("x14"), 14.0f),
+                              std::make_pair(SD::Expression("x15"), 15),
+                              std::make_pair(SD::Expression("x16"), 16.0),
+                              SD::types::substitution_map{
+                                {SD::Expression("x17"), SD::Expression(17.0)},
+                                {SD::Expression("x18"),
+                                 SD::Expression(std::complex<double>(18.0))}});
+  const SD::types::substitution_map substitution_map =
+    SD::merge_substitution_maps(substitution_map_1,
+                                substitution_map_2,
+                                substitution_map_3,
+                                substitution_map_4,
+                                substitution_map_5,
+                                substitution_map_6,
+                                substitution_map_7);
+
+  SD::Utilities::print_substitution_map(deallog, substitution_map);
+
+  deallog << "OK" << std::endl;
+}
diff --git a/tests/symengine/substitution_maps_scalar_03.output b/tests/symengine/substitution_maps_scalar_03.output
new file mode 100644 (file)
index 0000000..061cd9e
--- /dev/null
@@ -0,0 +1,17 @@
+
+DEAL::x1 = 1
+x3 = 3.0
+x6 = 6
+x8 = 8.0
+x7 = 7
+x9 = 9.0
+x15 = 15
+x14 = 14.0
+x13 = 13
+x12 = 12
+x11 = 11
+x10 = 10
+x18 = 18.0 + 0.0*I
+x17 = 17.0
+x16 = 16.0
+OK

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.