diff options
author | Marshall Clow <marshall@idio.com> | 2013-06-03 14:02:28 +0000 |
---|---|---|
committer | Marshall Clow <marshall@idio.com> | 2013-06-03 14:02:28 +0000 |
commit | a8f3a4e0c34ba44d7e897ec6530296d510ef5290 (patch) | |
tree | 85b63782b5a2fbc240312725466ad5f685443d47 /doc/test/test.qbk | |
parent | 976548a67dbaa0ded32850cfec396d19877b9d72 (diff) | |
parent | a99b1259fb571ff6d60a5ce930f699ad0bec150c (diff) | |
download | boost-a8f3a4e0c34ba44d7e897ec6530296d510ef5290.tar.gz |
Release 1.54.0 beta1boost-1.54.0-beta1
[SVN r84619]
Diffstat (limited to 'doc/test/test.qbk')
-rw-r--r-- | doc/test/test.qbk | 626 |
1 files changed, 626 insertions, 0 deletions
diff --git a/doc/test/test.qbk b/doc/test/test.qbk new file mode 100644 index 0000000000..889d414758 --- /dev/null +++ b/doc/test/test.qbk @@ -0,0 +1,626 @@ +[article Document To Test Formatting + [quickbook 1.4] + [copyright 2007 John Maddock, Joel de Guzman, Eric Niebler and Matias Capeletto] + [purpose Test Formatting Document] + [license + Distributed under the Boost Software License, Version 1.0. + (See accompanying file LICENSE_1_0.txt or copy at + [@http://www.boost.org/LICENSE_1_0.txt]) + ] + [authors [Maddock, John], [de Guzman, Joel], [Niebler, Eric], [Capeletto, Matias] ] + [category math] + [/last-revision $Date: 2007-05-07 10:21:52 +0100 (Mon, 07 May 2007) $] +] + +[include HTML4_symbols.qbk] + +[/ Some composite templates] +[template super[x]'''<superscript>'''[x]'''</superscript>'''] +[template sub[x]'''<subscript>'''[x]'''</subscript>'''] +[template floor[x]'''⌊'''[x]'''⌋'''] +[template floorlr[x][lfloor][x][rfloor]] +[template ceil[x] '''⌈'''[x]'''⌉'''] + +[section Introduction] + +This document is purely a test case to test out HTML and PDF generation and style. + +This is some body text. + + int main() + { + double d = 2.345; + return d; + } + +We can count in Greek too: [alpha], [beta], [gamma]. + +Try some superscrips and subscripts: x[super 2], x[sub i][super 3], [alpha][super 2], +[beta][super [alpha]], [floor x], [floor [alpha]], [ceil a]. + +[endsect] + +[section Code Blocks] + +[section Embedded code] + +These should be syntax highlighted: + + #include <iostream> + + int main() + { + // Sample code + std::cout << "Hello, World\n"; + return 0; + } + +[endsect] + +[section Code With a Very Long Line] + + template <class RealType> RealType inline foo(const RealType& a, const RealType& b, const RealType& c, const RealType& d, const RealType& e, const RealType& f, const RealType& g, const RealType& h){ return 0; } + +[endsect] + +[section Imported code and callouts] + +[import stub.cpp] + +Here's some code with left-placed callouts: + +[class_] + +And again with callouts placed exactly where we put them: + +[foo_bar] + +[endsect] + +[section Larger example] + +Now let's include a larger example, this may span several pages +and should not be chopped off half way through... some FO processors +get this wrong! + + namespace boost{ + + template <class BidirectionalIterator> + class sub_match; + + typedef sub_match<const char*> csub_match; + typedef sub_match<const wchar_t*> wcsub_match; + typedef sub_match<std::string::const_iterator> ssub_match; + typedef sub_match<std::wstring::const_iterator> wssub_match; + + template <class BidirectionalIterator> + class sub_match : public std::pair<BidirectionalIterator, BidirectionalIterator> + { + public: + typedef typename iterator_traits<BidirectionalIterator>::value_type value_type; + typedef typename iterator_traits<BidirectionalIterator>::difference_type difference_type; + typedef BidirectionalIterator iterator; + + bool matched; + + difference_type length()const; + operator basic_string<value_type>()const; + basic_string<value_type> str()const; + + int compare(const sub_match& s)const; + int compare(const basic_string<value_type>& s)const; + int compare(const value_type* s)const; + #ifdef BOOST_REGEX_MATCH_EXTRA + typedef implementation-private capture_sequence_type; + const capture_sequence_type& captures()const; + #endif + }; + // + // comparisons to another sub_match: + // + template <class BidirectionalIterator> + bool operator == (const sub_match<BidirectionalIterator>& lhs, + const sub_match<BidirectionalIterator>& rhs); + template <class BidirectionalIterator> + bool operator != (const sub_match<BidirectionalIterator>& lhs, + const sub_match<BidirectionalIterator>& rhs); + template <class BidirectionalIterator> + bool operator < (const sub_match<BidirectionalIterator>& lhs, + const sub_match<BidirectionalIterator>& rhs); + template <class BidirectionalIterator> + bool operator <= (const sub_match<BidirectionalIterator>& lhs, + const sub_match<BidirectionalIterator>& rhs); + template <class BidirectionalIterator> + bool operator >= (const sub_match<BidirectionalIterator>& lhs, + const sub_match<BidirectionalIterator>& rhs); + template <class BidirectionalIterator> + bool operator > (const sub_match<BidirectionalIterator>& lhs, + const sub_match<BidirectionalIterator>& rhs); + + + // + // comparisons to a basic_string: + // + template <class BidirectionalIterator, class traits, class Allocator> + bool operator == (const std::basic_string<iterator_traits<BidirectionalIterator>::value_type, + traits, + Allocator>& lhs, + const sub_match<BidirectionalIterator>& rhs); + template <class BidirectionalIterator, class traits, class Allocator> + bool operator != (const std::basic_string<iterator_traits<BidirectionalIterator>::value_type, + traits, + Allocator>& lhs, + const sub_match<BidirectionalIterator>& rhs); + template <class BidirectionalIterator, class traits, class Allocator> + bool operator < (const std::basic_string<iterator_traits<BidirectionalIterator>::value_type, + traits, + Allocator>& lhs, + const sub_match<BidirectionalIterator>& rhs); + template <class BidirectionalIterator, class traits, class Allocator> + bool operator > (const std::basic_string<iterator_traits<BidirectionalIterator>::value_type, + traits, + Allocator>& lhs, + const sub_match<BidirectionalIterator>& rhs); + template <class BidirectionalIterator, class traits, class Allocator> + bool operator >= (const std::basic_string<iterator_traits<BidirectionalIterator>::value_type, + traits, + Allocator>& lhs, + const sub_match<BidirectionalIterator>& rhs); + template <class BidirectionalIterator, class traits, class Allocator> + bool operator <= (const std::basic_string<iterator_traits<BidirectionalIterator>::value_type, + traits, + Allocator>& lhs, + const sub_match<BidirectionalIterator>& rhs); + + template <class BidirectionalIterator, class traits, class Allocator> + bool operator == (const sub_match<BidirectionalIterator>& lhs, + const std::basic_string<iterator_traits<BidirectionalIterator>::value_type, + traits, + Allocator>& rhs); + template <class BidirectionalIterator, class traits, class Allocator> + bool operator != (const sub_match<BidirectionalIterator>& lhs, + const std::basic_string<iterator_traits<BidirectionalIterator>::value_type, + traits, + Allocator>& rhs); + template <class BidirectionalIterator, class traits, class Allocator> + bool operator < (const sub_match<BidirectionalIterator>& lhs, + const std::basic_string<iterator_traits<BidirectionalIterator>::value_type, + traits, + Allocator>& rhs); + template <class BidirectionalIterator, class traits, class Allocator> + bool operator > (const sub_match<BidirectionalIterator>& lhs, + const std::basic_string<iterator_traits<BidirectionalIterator>::value_type, + traits, + Allocator>& rhs); + template <class BidirectionalIterator, class traits, class Allocator> + bool operator >= (const sub_match<BidirectionalIterator>& lhs, + const std::basic_string<iterator_traits<BidirectionalIterator>::value_type, + traits, + Allocator>& rhs); + template <class BidirectionalIterator, class traits, class Allocator> + bool operator <= (const sub_match<BidirectionalIterator>& lhs, + const std::basic_string<iterator_traits<BidirectionalIterator>::value_type, + traits, + Allocator>& rhs); + + // + // comparisons to a pointer to a character array: + // + template <class BidirectionalIterator> + bool operator == (typename iterator_traits<BidirectionalIterator>::value_type const* lhs, + const sub_match<BidirectionalIterator>& rhs); + template <class BidirectionalIterator> + bool operator != (typename iterator_traits<BidirectionalIterator>::value_type const* lhs, + const sub_match<BidirectionalIterator>& rhs); + template <class BidirectionalIterator> + bool operator < (typename iterator_traits<BidirectionalIterator>::value_type const* lhs, + const sub_match<BidirectionalIterator>& rhs); + template <class BidirectionalIterator> + bool operator > (typename iterator_traits<BidirectionalIterator>::value_type const* lhs, + const sub_match<BidirectionalIterator>& rhs); + template <class BidirectionalIterator> + bool operator >= (typename iterator_traits<BidirectionalIterator>::value_type const* lhs, + const sub_match<BidirectionalIterator>& rhs); + template <class BidirectionalIterator> + bool operator <= (typename iterator_traits<BidirectionalIterator>::value_type const* lhs, + const sub_match<BidirectionalIterator>& rhs); + + template <class BidirectionalIterator> + bool operator == (const sub_match<BidirectionalIterator>& lhs, + typename iterator_traits<BidirectionalIterator>::value_type const* rhs); + template <class BidirectionalIterator> + bool operator != (const sub_match<BidirectionalIterator>& lhs, + typename iterator_traits<BidirectionalIterator>::value_type const* rhs); + template <class BidirectionalIterator> + bool operator < (const sub_match<BidirectionalIterator>& lhs, + typename iterator_traits<BidirectionalIterator>::value_type const* rhs); + template <class BidirectionalIterator> + bool operator > (const sub_match<BidirectionalIterator>& lhs, + typename iterator_traits<BidirectionalIterator>::value_type const* rhs); + template <class BidirectionalIterator> + bool operator >= (const sub_match<BidirectionalIterator>& lhs, + typename iterator_traits<BidirectionalIterator>::value_type const* rhs); + template <class BidirectionalIterator> + bool operator <= (const sub_match<BidirectionalIterator>& lhs, + typename iterator_traits<BidirectionalIterator>::value_type const* rhs); + + // + // comparisons to a single character: + // + template <class BidirectionalIterator> + bool operator == (typename iterator_traits<BidirectionalIterator>::value_type const& lhs, + const sub_match<BidirectionalIterator>& rhs); + template <class BidirectionalIterator> + bool operator != (typename iterator_traits<BidirectionalIterator>::value_type const& lhs, + const sub_match<BidirectionalIterator>& rhs); + template <class BidirectionalIterator> + bool operator < (typename iterator_traits<BidirectionalIterator>::value_type const& lhs, + const sub_match<BidirectionalIterator>& rhs); + template <class BidirectionalIterator> + bool operator > (typename iterator_traits<BidirectionalIterator>::value_type const& lhs, + const sub_match<BidirectionalIterator>& rhs); + template <class BidirectionalIterator> + bool operator >= (typename iterator_traits<BidirectionalIterator>::value_type const& lhs, + const sub_match<BidirectionalIterator>& rhs); + template <class BidirectionalIterator> + bool operator <= (typename iterator_traits<BidirectionalIterator>::value_type const& lhs, + const sub_match<BidirectionalIterator>& rhs); + + template <class BidirectionalIterator> + bool operator == (const sub_match<BidirectionalIterator>& lhs, + typename iterator_traits<BidirectionalIterator>::value_type const& rhs); + template <class BidirectionalIterator> + bool operator != (const sub_match<BidirectionalIterator>& lhs, + typename iterator_traits<BidirectionalIterator>::value_type const& rhs); + template <class BidirectionalIterator> + bool operator < (const sub_match<BidirectionalIterator>& lhs, + typename iterator_traits<BidirectionalIterator>::value_type const& rhs); + template <class BidirectionalIterator> + bool operator > (const sub_match<BidirectionalIterator>& lhs, + typename iterator_traits<BidirectionalIterator>::value_type const& rhs); + template <class BidirectionalIterator> + bool operator >= (const sub_match<BidirectionalIterator>& lhs, + typename iterator_traits<BidirectionalIterator>::value_type const& rhs); + template <class BidirectionalIterator> + bool operator <= (const sub_match<BidirectionalIterator>& lhs, + typename iterator_traits<BidirectionalIterator>::value_type const& rhs); + // + // addition operators: + // + template <class BidirectionalIterator, class traits, class Allocator> + std::basic_string<typename iterator_traits<BidirectionalIterator>::value_type, traits, Allocator> + operator + (const std::basic_string<typename iterator_traits<BidirectionalIterator>::value_type, + traits, + Allocator>& s, + const sub_match<BidirectionalIterator>& m); + template <class BidirectionalIterator, class traits, class Allocator> + std::basic_string<typename iterator_traits<BidirectionalIterator>::value_type, traits, Allocator> + operator + (const sub_match<BidirectionalIterator>& m, + const std::basic_string<typename iterator_traits<BidirectionalIterator>::value_type, + traits, + Allocator>& s); + template <class BidirectionalIterator> + std::basic_string<typename iterator_traits<BidirectionalIterator>::value_type> + operator + (typename iterator_traits<BidirectionalIterator>::value_type const* s, + const sub_match<BidirectionalIterator>& m); + template <class BidirectionalIterator> + std::basic_string<typename iterator_traits<BidirectionalIterator>::value_type> + operator + (const sub_match<BidirectionalIterator>& m, + typename iterator_traits<BidirectionalIterator>::value_type const * s); + template <class BidirectionalIterator> + std::basic_string<typename iterator_traits<BidirectionalIterator>::value_type> + operator + (typename iterator_traits<BidirectionalIterator>::value_type const& s, + const sub_match<BidirectionalIterator>& m); + template <class BidirectionalIterator> + std::basic_string<typename iterator_traits<BidirectionalIterator>::value_type> + operator + (const sub_match<BidirectionalIterator>& m, + typename iterator_traits<BidirectionalIterator>::value_type const& s); + template <class BidirectionalIterator> + std::basic_string<typename iterator_traits<BidirectionalIterator>::value_type> + operator + (const sub_match<BidirectionalIterator>& m1, + const sub_match<BidirectionalIterator>& m2); + + // + // stream inserter: + // + template <class charT, class traits, class BidirectionalIterator> + basic_ostream<charT, traits>& + operator << (basic_ostream<charT, traits>& os, + const sub_match<BidirectionalIterator>& m); + + } // namespace boost + +[endsect] + +[endsect] + +[section Basic Formatting] + +[section Font Styles] + +Here we go with some inline formatting: +['italic], [*bold], [_underline], [^teletype], [-strikethrough], +we can combine styles as well: ['[*bold italic]], [_[^teletype with underline]]. + +[endsect] + +[section Replaceable Text] + +Text that is intended to be user-replaceable is [~rendered like this]. + +[endsect] + +[section Quotations] + +Here we go: ["A question that sometimes drives me hazy: am I or are the others crazy?]--Einstein + +Note the proper left and right quote marks. Also, while you can simply use ordinary quote marks like "quoted", our quotation, above, will generate correct DocBook quotations (e.g. <quote>quoted</quote>). + +Like all phrase elements, quotations may be nested. Example: + +["Here's the rule for bargains: ["Do other men, for they would do you.] That's +the true business precept.] + +[endsect] + +[section Inline Code] + +This text has inlined code `int main() { return 0; }` in it. +The code should be syntax highlighted. + +[endsect] + +[section Links] + +Try this: [@http://www.boost.org this is [*boost's] website....] it should +be visible as a link. + +This is [@../../../boost/math/distributions.hpp a link to a header file (boost/math/distributions.hpp)], +it should be rewritable and point to the website when built as a PDF. + +This is [@boost:libs/regex/index.html a link to another library's documentation (Boost.Regex)], using the boost: protocol, +it should be rewritten to point to the website when building a PDF. + +This is [@boost:/libs/regex/index.html a link to another library's documentation (Boost.Regex)], using the boost:/ protocol, +it should be rewritten to point to the website when building a PDF. + +This is [@../weighted_tail_quantile.hpp a relative link to a header file within the test source], +it should be rewritten to point to the website when building a PDF. +Although it might be on the website yet. + +[endsect] + +[section Footnotes] + +Here's one [footnote A sample footnote]. + +And here's another [footnote Another sample footnote]. + +[endsect] + +[section Blockquote] + +Lets indent the next paragraph: + +[:Here we go!!!] + +[endsect] + +[section Headings] + +Now try rendering some heading styles: + +[h1 Heading 1] + +[h2 Heading 2] + +[h3 Heading 3] + +[h4 Heading 4] + +[h5 Heading 5] + +[h6 Heading 6] + +[endsect] + +[endsect] + +[section Blurbs] + +[section Preformatted text] + +Here's some sample program output: + +[pre +'''F test for equal standard deviations +____________________________________ + +Sample 1: +Number of Observations = 240 +Sample Standard Deviation = 65.549 + +Sample 2: +Number of Observations = 240 +Sample Standard Deviation = 61.854 + +Test Statistic = 1.123 + +CDF of test statistic: = 8.148e-001 +Upper Critical Value at alpha: = 1.238e+000 +Upper Critical Value at alpha/2: = 1.289e+000 +Lower Critical Value at alpha: = 8.080e-001 +Lower Critical Value at alpha/2: = 7.756e-001 + +Results for Alternative Hypothesis and alpha = 0.0500 + +Alternative Hypothesis Conclusion +Standard deviations are unequal (two sided test) REJECTED +Standard deviation 1 is less than standard deviation 2 REJECTED +Standard deviation 1 is greater than standard deviation 2 REJECTED''' +] + +[endsect] + +[section Admonishments] + +There are four admonishments supported by Docbook XML: + +[note This is a note] + +[tip This is a tip] + +[important This is important] + +[caution This is a caution] + +[warning This is a warning + +They can contain more than one paragraph. +] + +[endsect] + +[section Blurbs] + +[blurb [*An eye catching advertisement or note...] + +These should be rendered in a manner similar to admonishments. + +They can contain more than one paragraph. +] + +[endsect] + +[endsect] + +[section Lists and Tables] + +[section Lists] + +A numbered list: + +# One +# Two +# Three + # Three.a + # Three.b + # Three.c +# Four + # Four.a + # Four.a.i + # Four.a.ii +# Five + +An unordered list: + +* First +* Second +* Third + +A mixture of the two: + +# 1 + * 1.a + # 1.a.1 + # 1.a.2 + * 1.b +# 2 + * 2.a + * 2.b + # 2.b.1 + # 2.b.2 + * 2.b.2.a + * 2.b.2.b + + +[endsect] + +[section Variable Lists] + +[variablelist A Variable List + [[term 1] [The definition of term 1]] + [[term 2] [The definition of term 2]] + [[term 3] [The definition of term 3]] +] + +[endsect] + +[section Tables] + +Here's a big table with code and other tricky things: + +[table Notes on the Implementation of the Beta Distribution +[[Function][Implementation Notes]] +[[pdf] + [f(x;[alpha],[beta]) = x[super[alpha] - 1] (1 - x)[super[beta] -1] / B([alpha], [beta]) + + Implemented using ibeta_derivative(a, b, x).]] + +[[cdf][Using the incomplete beta function ibeta(a, b, x)]] +[[cdf complement][ibetac(a, b, x)]] +[[quantile][Using the inverse incomplete beta function ibeta_inv(a, b, p)]] +[[quantile from the complement][ibetac_inv(a, b, q)]] +[[mean][`a/(a+b)`]] +[[variance][`a * b / (a+b)^2 * (a + b + 1)`]] +[[mode][`(a-1) / (a + b + 2)`]] +[[skewness][`2 (b-a) sqrt(a+b+1)/(a+b+2) * sqrt(a * b)`]] +[[kurtosis excess][ [$images/beta_dist_kurtosis.png] ]] +[[kurtosis][`kurtosis + 3`]] +[[parameter estimation][ ]] +[[alpha + + from mean and variance][`mean * (( (mean * (1 - mean)) / variance)- 1)`]] +[[beta + + from mean and variance][`(1 - mean) * (((mean * (1 - mean)) /variance)-1)`]] +[[The member functions `estimate_alpha` and `estimate_beta` + + from cdf and probability x + + and *either* `alpha` or `beta`] + [Implemented in terms of the inverse incomplete beta functions + +ibeta_inva, and ibeta_invb respectively.]] +[[`estimate_alpha`][`ibeta_inva(beta, x, probability)`]] +[[`estimate_beta`][`ibeta_invb(alpha, x, probability)`]] +] + +[endsect] + +[endsect] + +[section Images] + +These are tricky enough that they warrent their own section. + +Let's start with a PNG file that's set to 120dpi, it should render at +a sensible size in both html and PDF forms. It should print OK too! + +[$images/digamma3.png] + +Now try again with a sample SVG image: + +[$images/open_clipart_library_logo.svg] + + +[endsect] + +[include test_HTML4_symbols.qbk] + +[include remez.qbk] + +[section:array Array Example Boostbook XML Documentation] +[xinclude array.xml] +[xinclude array1.xml] +[xinclude array2.xml] +[xinclude array3.xml] +[xinclude array4.xml] +[endsect] + +[section:accumulators Accumulators Example Doxygen Documentation] +[xinclude statsdoc.xml] +[endsect] + + + |