<!-- 
RSS generated by JIRA (8.3.4#803005-sha1:1f96e09b3c60279a408a2ae47be3c745f571388b) at Sat Feb 10 15:47:32 JST 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>PFS-JIRA</title>
    <link>https://pfspipe.ipmu.jp/jira</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.3.4</version>
        <build-number>803005</build-number>
        <build-date>13-09-2019</build-date>
    </build-info>


<item>
            <title>[PIPE2D-31] Produce summary of test coverage</title>
                <link>https://pfspipe.ipmu.jp/jira/browse/PIPE2D-31</link>
                <project id="10002" key="PIPE2D">DRP 2-D Pipeline</project>
                    <description>&lt;p&gt;Please go over all the tests and summarise what they tell us.&lt;/p&gt;</description>
                <environment></environment>
        <key id="10901">PIPE2D-31</key>
            <summary>Produce summary of test coverage</summary>
                <type id="1" iconUrl="https://pfspipe.ipmu.jp/jira/secure/viewavatar?size=xsmall&amp;avatarId=10503&amp;avatarType=issuetype">Bug</type>
                                            <priority id="3" iconUrl="https://pfspipe.ipmu.jp/jira/images/icons/priorities/major.svg">Major</priority>
                        <status id="10002" iconUrl="https://pfspipe.ipmu.jp/jira/images/icons/statuses/generic.png" description="The issue is resolved, reviewed, and merged">Done</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10000">Done</resolution>
                                        <assignee username="aritter">aritter</assignee>
                                    <reporter username="rhl">rhl</reporter>
                        <labels>
                    </labels>
                <created>Fri, 17 Jun 2016 19:58:43 +0000</created>
                <updated>Tue, 30 Aug 2016 19:32:29 +0000</updated>
                            <resolved>Tue, 30 Aug 2016 19:32:29 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                <comments>
                            <comment id="11049" author="aritter" created="Fri, 1 Jul 2016 07:04:07 +0000"  >&lt;p&gt;There currently are unit tests for FiberTrace/FiberTraceSet and Spectrum/SpectrumSet. &lt;br/&gt;
The testing method is the Black Box Method, meaning that the tester only knows the interface and tests the functions provided by the interface, without knowledge of what functions are called inside the tested function.&lt;br/&gt;
Tested are: &lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;the constructors: - test that an objected is created&lt;/li&gt;
&lt;/ul&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;test that the private variables are set according to the constructor,&lt;br/&gt;
                                e.g. if one creates a FiberTrace of width 5 and height 100 pix, the &lt;br/&gt;
                                image, mask, and variance arrays should be 5x100 pix, all &lt;br/&gt;
                                &quot;_is...Set&quot; (_isTraceSet, _isProfileSet, &lt;br/&gt;
                                _isFiberTraceProfileFittingControlSet) variables are false&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
	&lt;li&gt;get/set methods: - test that we can get and set private variables using these methods,&lt;br/&gt;
                                and if set the private variable is actually changed&lt;/li&gt;
	&lt;li&gt;other methods provided by the class: - test that they do what they are supposed to do&lt;/li&gt;
	&lt;li&gt;free functions manipulating objects (defined in the header file of the class):&lt;/li&gt;
&lt;/ul&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;test that they do what they are supposed to do e.g.&lt;br/&gt;
   + PTR(FiberTraceSet&amp;lt;ImageT, MaskT, VarianceT&amp;gt;) math::findAndTraceApertures: &lt;/li&gt;
	&lt;li&gt;test that the method returns a shared pointer to a FiberTraceSet containing the&lt;br/&gt;
           expected number of FiberTraces with a height within the expected limits&lt;br/&gt;
   + SpectrumSet FiberTraceSet::extractAllTracesFromProfile()&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Sets: - test &quot;add...&quot;, &quot;get...&quot;, &quot;set...&quot;, &quot;erase&quot;&lt;/p&gt;

&lt;p&gt;Tests will never be complete as it would be nearly impossible to really test ALL possible input parameter combinations, but at least I am very confident that the tested functions (and functions they call) are doing the right thing. Another test is to execute the python command line tasks &quot;reduceArc&quot; and &quot;reduceArcRefSpec&quot;. Both tasks find and trace the FiberTraces in a Flat, extract them, calculate the profile, &quot;optimally&quot; extract the spectra from an Arc, compare them to a line list, and wavelength calibrate the Arc spectra (so called &quot;Incremental Testing&quot;). The only difference between the 2 tasks is that one (&quot;reduceArc&quot;) creates the line list from the wavelengths of the lines and the simulated map wavelength&amp;lt;-&amp;gt;pixel. The other task (&quot;reduceArcRefSpec&quot;) uses a previously identified reference Spectrum to stretch and cross-correlate it with respect to the spectra to be identified, and creates an approximate line list from that. &lt;br/&gt;
Tested are the butler (deliver the Flat belonging to this Arc), FindAndTraceAperturesTask (python task), CreateFlatFiberTraceProfileTask (python), ExtractSpectraTask (python), math::createLineList (C&amp;#43;&amp;#43;, calculates the pixel position for the line list from the simulated map pixel&amp;lt;=&amp;gt;wavelength), math::stretchAndCrossCorrelateSpec (C&amp;#43;&amp;#43;, does what it says plus creates the line list for each individual Spectrum), Spectrum.identify (C&amp;#43;&amp;#43;, uses the line list to identify and fit the lines, plus fit the dispersion function), write SpArm file (Python + C&amp;#43;&amp;#43;, still place-holders in most HDUs).&lt;/p&gt;

&lt;p&gt;I guess (more) discussion tomorrow...&lt;/p&gt;</comment>
                            <comment id="11050" author="aritter" created="Fri, 1 Jul 2016 07:27:45 +0000"  >&lt;p&gt;Darn, forgot to mention something more (had it in, cut it out to put it somewhere else, got distracted,...). For the SpectrumSet we also test that the length of the Spectrum is equal to the height of the FiberTrace, the RMS of the lines used for fitting the dispersion (I have independently confirmed that the user-defined number of randomly selected lines kept out of the fitting process deliver a similar RMS, but Spectrum currently only stores the RMS of the lines used for fitting), that the wavelength solution is monotonic, and that the wavelength range is within certain limits.&lt;/p&gt;</comment>
                            <comment id="11250" author="rhl" created="Fri, 12 Aug 2016 20:40:08 +0000"  >&lt;p&gt;Please transfer anything useful into the tests (no need to document things like &quot;check the setters/getters&quot;).  Then OK to merge and close&lt;/p&gt;</comment>
                            <comment id="11272" author="aritter" created="Tue, 30 Aug 2016 19:32:29 +0000"  >&lt;p&gt;Nothing to merge, this was a summary of test coverage only.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                                                <inwardlinks description="is blocked by">
                                        <issuelink>
            <issuekey id="10906">PIPE2D-32</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10500" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|02qpuc:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10100" key="com.atlassian.jira.plugin.system.customfieldtypes:userpicker">
                        <customfieldname>Reviewers</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>rhl</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10005" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="19">2014-13</customfieldvalue>
    <customfieldvalue id="20">2014-14</customfieldvalue>
    <customfieldvalue id="21">2014-15</customfieldvalue>
    <customfieldvalue id="22">2014-16</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    </customfields>
    </item>
</channel>
</rss>