<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Boost Test: Abhängigkeiten zwischen Tests?]]></title><description><![CDATA[<p>Moin Leute,</p>
<p>Ich wollte mit Boost Tests ein Paar Unittests schreiben. Nun habe ich das Problem, dass mehrere Tests aufeinander aufbauen. Es geht darum, das sich eine svd berechne. In Test1 wird getestet ob die SVD erfolgreich war (also ob die Ausgaben stimmen), in Test 2 muss das Ergebnis dann sortiert werden, was geprüft wird und in Test3 wird basierend auf der sortierten Menge eine weitere Funktion aufgerufen.</p>
<p>Ich habe das jetzt so gelöst:</p>
<pre><code class="language-cpp">//sets up svd for all testcases, so that we can use the result in all tests
struct SVDTestFixture
{
	//stored svd for every testcase
	Array&lt; double &gt; A;// input matrix
	Array&lt; double &gt; U;// the two orthogonal
	Array&lt; double &gt; V;// matrices
	Array&lt; double &gt; w;

	SVDTestFixture()
    {
        //calculating SVD
        //...
    }
};

BOOST_FIXTURE_TEST_SUITE(SVDResults, SVDTestFixture);

BOOST_AUTO_TEST_CASE( LinAlg_svd )
{
    //testing correctness of svd
}
BOOST_AUTO_TEST_CASE( LinAlg_svdsort )
{
    // Sorting singular values by descending order(in place):
    svdsort(U, V, w);
    //...
}
BOOST_AUTO_TEST_CASE( LinAlg_svdrank )
{
    // Determining rank of matrix A:
    unsigned r = svdrank(A, U, V, w);
}
BOOST_AUTO_TEST_SUITE_END();
</code></pre>
<p>Ich habe das also so gelöst,d as sich in einer Fixture zuerst die SVD berechne, diese in Test1 checke dann die Werte der Fixture in Test2 sortiere (und teste) und dann mit der sortierten fixture in test3 den Rang berechne.</p>
<p>Bei mir funktioniert das jetzt so. Aber ist diese Reihenfolge nun gewährleistet oder können da komische Dinge passieren? Wenn ja, wie könnte man das verbessern? Was sit der kanonische Weg um sowas zu machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/268923/boost-test-abhängigkeiten-zwischen-tests</link><generator>RSS for Node</generator><lastBuildDate>Mon, 31 Aug 2026 13:20:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/268923.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 16 Jun 2010 10:02:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Boost Test: Abhängigkeiten zwischen Tests? on Wed, 16 Jun 2010 10:04:55 GMT]]></title><description><![CDATA[<p>Moin Leute,</p>
<p>Ich wollte mit Boost Tests ein Paar Unittests schreiben. Nun habe ich das Problem, dass mehrere Tests aufeinander aufbauen. Es geht darum, das sich eine svd berechne. In Test1 wird getestet ob die SVD erfolgreich war (also ob die Ausgaben stimmen), in Test 2 muss das Ergebnis dann sortiert werden, was geprüft wird und in Test3 wird basierend auf der sortierten Menge eine weitere Funktion aufgerufen.</p>
<p>Ich habe das jetzt so gelöst:</p>
<pre><code class="language-cpp">//sets up svd for all testcases, so that we can use the result in all tests
struct SVDTestFixture
{
	//stored svd for every testcase
	Array&lt; double &gt; A;// input matrix
	Array&lt; double &gt; U;// the two orthogonal
	Array&lt; double &gt; V;// matrices
	Array&lt; double &gt; w;

	SVDTestFixture()
    {
        //calculating SVD
        //...
    }
};

BOOST_FIXTURE_TEST_SUITE(SVDResults, SVDTestFixture);

BOOST_AUTO_TEST_CASE( LinAlg_svd )
{
    //testing correctness of svd
}
BOOST_AUTO_TEST_CASE( LinAlg_svdsort )
{
    // Sorting singular values by descending order(in place):
    svdsort(U, V, w);
    //...
}
BOOST_AUTO_TEST_CASE( LinAlg_svdrank )
{
    // Determining rank of matrix A:
    unsigned r = svdrank(A, U, V, w);
}
BOOST_AUTO_TEST_SUITE_END();
</code></pre>
<p>Ich habe das also so gelöst,d as sich in einer Fixture zuerst die SVD berechne, diese in Test1 checke dann die Werte der Fixture in Test2 sortiere (und teste) und dann mit der sortierten fixture in test3 den Rang berechne.</p>
<p>Bei mir funktioniert das jetzt so. Aber ist diese Reihenfolge nun gewährleistet oder können da komische Dinge passieren? Wenn ja, wie könnte man das verbessern? Was sit der kanonische Weg um sowas zu machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1913148</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1913148</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Wed, 16 Jun 2010 10:04:55 GMT</pubDate></item><item><title><![CDATA[Reply to Boost Test: Abhängigkeiten zwischen Tests? on Wed, 16 Jun 2010 10:05:51 GMT]]></title><description><![CDATA[<p>Ich weiß zwar nicht ob das auch ein Prinzip der Boost-Test-Suite ist, aber die Universitätslehrmeinung in diesem Punkt lautet &quot;Unit-Tests bauen nicht aufeinander auf&quot;.</p>
<p>Du solltest einem weiteren Test, welcher Ergebnisse aus dem Vortest benötigt ein korrektes Ergebnis via Mocking liefern. Dabei kannst du verschiedenste Werte testen, allerdings jeweils nur einen pro Test (Unit-Tests sollen deterministisch sein und dementsprechend keine Random-Werte als Input erhalten).</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1913151</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1913151</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Wed, 16 Jun 2010 10:05:51 GMT</pubDate></item><item><title><![CDATA[Reply to Boost Test: Abhängigkeiten zwischen Tests? on Wed, 16 Jun 2010 10:39:04 GMT]]></title><description><![CDATA[<p>SideWinder schrieb:</p>
<blockquote>
<p>Ich weiß zwar nicht ob das auch ein Prinzip der Boost-Test-Suite ist, aber die Universitätslehrmeinung in diesem Punkt lautet &quot;Unit-Tests bauen nicht aufeinander auf&quot;.</p>
</blockquote>
<p>Wenn ich das richtig verstehe, sollte ich also statt die berechneten Ergebnisse durch die tests zu schicken eher in Test1 mit den Zielwerten vergleichen, dann in Test2 nur die Zielwerte von Test1 als Eingabe nehmen, usw?</p>
<p>Klingt irgendwie logisch...führt leider dazu, dass ich doch ordentlich code-Wiederholungen habe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1913167</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1913167</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Wed, 16 Jun 2010 10:39:04 GMT</pubDate></item><item><title><![CDATA[Reply to Boost Test: Abhängigkeiten zwischen Tests? on Wed, 16 Jun 2010 10:55:34 GMT]]></title><description><![CDATA[<p>otze schrieb:</p>
<blockquote>
<p>führt leider dazu, dass ich doch ordentlich code-Wiederholungen habe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
</blockquote>
<p>Wo hast du Code-Wiederholungen die du nicht in eigene Funktionen auslagern kannst?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1913174</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1913174</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 16 Jun 2010 10:55:34 GMT</pubDate></item><item><title><![CDATA[Reply to Boost Test: Abhängigkeiten zwischen Tests? on Wed, 16 Jun 2010 13:00:47 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>otze schrieb:</p>
<blockquote>
<p>führt leider dazu, dass ich doch ordentlich code-Wiederholungen habe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
</blockquote>
<p>Wo hast du Code-Wiederholungen die du nicht in eigene Funktionen auslagern kannst?</p>
</blockquote>
<p>Ne Menge Deklarationen und Initialisierungen. Die wollte ich mir eigentlich sparen. Naja, ich habe das jetzt so gelöst, dass ich einfach separate Tests schreibe. Ist besser so.</p>
<p>Aber Danke euch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1913281</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1913281</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Wed, 16 Jun 2010 13:00:47 GMT</pubDate></item><item><title><![CDATA[Reply to Boost Test: Abhängigkeiten zwischen Tests? on Wed, 16 Jun 2010 13:26:13 GMT]]></title><description><![CDATA[<p>otze schrieb:</p>
<blockquote>
<p>pumuckl schrieb:</p>
<blockquote>
<p>otze schrieb:</p>
<blockquote>
<p>führt leider dazu, dass ich doch ordentlich code-Wiederholungen habe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
</blockquote>
<p>Wo hast du Code-Wiederholungen die du nicht in eigene Funktionen auslagern kannst?</p>
</blockquote>
<p>Ne Menge Deklarationen und Initialisierungen. Die wollte ich mir eigentlich sparen.</p>
</blockquote>
<p>Und die können nicht in ein Fixture eingebaut werden, in dem sie initialisiert werden? IIRC können Fixtures voneinander erben...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1913298</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1913298</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 16 Jun 2010 13:26:13 GMT</pubDate></item></channel></rss>