C++ Boost

Boost.MultiArray: 測試說明

以下是關於 Boost.Multi_Array (B.M) 中所包含的測試案例的說明。

術語

以下列出在下面的說明中將用到的術語:

驗收測試

以下測試檢驗了 Boost.Multi_Array 各個特性,以確認運行期的正確行為。
程序 說明
libs/multi_array/test/constructors.cpp 檢驗 B.M 各主要組件的所有構造函數。
libs/multi_array/test/access.cpp 測試所有 B.M 數組類型的 operator[]operator().
libs/multi_array/test/compare.cpp 測試 B.M 各主要組件的所有比較操作符。
libs/multi_array/test/iterators.cpp 測試所有 B.M 數組類型的所有迭代器遍歷和訪問功能。
libs/multi_array/test/slice.cpp 測試所有 B.M 數組類型的各種子視圖生成。
libs/multi_array/test/assign.cpp 測試各種 B.M 數組類型的 operator=().
libs/multi_array/test/assign_to_array.cpp 確認一種 multi_array 可以從另一種數組類型構造。
libs/multi_array/test/index_bases.cpp 測試 B.M 各主要組件的重索引功能。
libs/multi_array/test/storage_order.cpp 測試 B.M 各主要組件的各種 storage_order.
libs/multi_array/test/reshape.cpp 測試 B.M 各主要組件的整形功能。
libs/multi_array/test/range1.cpp 測試使用 array::index_range 指定索引範圍的各種語法。
libs/multi_array/test/idxgen1.cpp 測試 array::index_gen 對象。
libs/multi_array/test/stl_interaction.cpp 測試數組類型與STL容器的互操作性。
libs/multi_array/test/resize.cpp 測試 multi_array 類的大小調整功能。
libs/multi_array/test/concept_checks.cpp 確認所有數組類型符合所定義的概念。
libs/multi_array/test/generative_tests.hpp 用於簡化對所有數組類型的測試的一個工具。用於 slice.cpp, iterators.cpp, 和 access.cpp.

編譯失敗的測試

以下測試檢查本庫所不接受的各種結構是否編譯失敗。每個測試只檢查一種錯誤,以便於確認編譯失敗的原因。

程序 說明
libs/multi_array/test/fail_cbracket.cpp
libs/multi_array/test/fail_ref_cbracket.cpp
一個常量數組 operator[] 不可以修改元素。
libs/multi_array/test/fail_cdata.cpp
libs/multi_array/test/fail_ref_cdata.cpp
array::data() const 必須返回指向常量數據的指針。
libs/multi_array/test/fail_citerator.cpp
libs/multi_array/test/fail_ref_citerator.cpp
const_iterator 不能轉換為 iterator.
libs/multi_array/test/fail_cparen.cpp
libs/multi_array/test/fail_ref_cparen.cpp
一個常量數組的 operator() 不能修改元素。
libs/multi_array/test/fail_criterator.cpp
libs/multi_array/test/fail_ref_criterator.cpp
const_reverse_iterator 不能轉換為 reverse_iterator.
libs/multi_array/test/fail_csubarray.cpp
libs/multi_array/test/fail_ref_csubarray.cpp
const_subarray 不能轉換為 subarray.
libs/multi_array/test/fail_csubarray2.cpp
libs/multi_array/test/fail_ref_csubarray2.cpp
array::operator[] const 不能轉換為 subarray.
libs/multi_array/test/fail_csubarray3.cpp
libs/multi_array/test/fail_ref_csubarray3.cpp
一個數組中的 const_subarray 不能修改元素。
libs/multi_array/test/fail_cview.cpp
libs/multi_array/test/fail_ref_cview.cpp
一個數組的 const_array_view 不能修改元素。
libs/multi_array/test/fail_cview2.cpp
libs/multi_array/test/fail_ref_cview2.cpp
array::operator[] const 不能轉換為 array_view.
libs/multi_array/test/fail_cview3.cpp
libs/multi_array/test/fail_ref_cview3.cpp
一個數組的 const_array_view 不能修改元素。

Copyright © 2001 Ronald Garcia, Indiana University (garcia@cs.indiana.edu)
Jeremy Siek, Indiana University (jsiek@cs.indiana.edu)
Andrew Lumsdaine, Indiana University (lums@cs.indiana.edu)

Ronald Garcia
Last modified: Wed Oct 31 19:46:44 EST 2001