def manual_initialization(n_nodes): nodes = GaussLegendreNodes() nodes.init(n_nodes) assert_equal(nodes.num_nodes, n_nodes, "Number of nodes should be set") assert_is_instance(nodes.nodes, np.ndarray, "Nodes should be a numpy.ndarray") assert_equal(nodes.nodes.size, n_nodes, "There should be correct number of nodes")
class GaussLegendreNodesTest(unittest.TestCase): def setUp(self): self._test_obj = GaussLegendreNodes() def test_default_initialization(self): self.assertIsNone(self._test_obj.num_nodes, "Number of nodes should be initialized as 'None'") self.assertIsNone(self._test_obj.nodes, "Nodes list should be initializes as 'None'") def test_correctness_of_selected_nodes(self): self._test_obj.init(1) self.assertAlmostEqual(self._test_obj.nodes[0], 0.0) self.setUp() self._test_obj.init(2) self.assertAlmostEqual(self._test_obj.nodes[0], -np.sqrt(1.0 / 3.0)) self.assertAlmostEqual(self._test_obj.nodes[1], np.sqrt(1.0 / 3.0)) self.setUp() self._test_obj.init(5) self.assertAlmostEqual(self._test_obj.nodes[0], -1.0 / 3.0 * np.sqrt(5.0 + 2.0 * np.sqrt(10.0 / 7.0))) self.assertAlmostEqual(self._test_obj.nodes[1], -1.0 / 3.0 * np.sqrt(5.0 - 2.0 * np.sqrt(10.0 / 7.0))) self.assertAlmostEqual(self._test_obj.nodes[2], 0.0) self.assertAlmostEqual(self._test_obj.nodes[3], 1.0 / 3.0 * np.sqrt(5.0 - 2.0 * np.sqrt(10.0 / 7.0))) self.assertAlmostEqual(self._test_obj.nodes[4], 1.0 / 3.0 * np.sqrt(5 + 2 * np.sqrt(10.0 / 7.0)))
def setUp(self): self._test_obj = GaussLegendreNodes()