[Clam-devel] Re: Patch for Steps of LoadFrom

JunJun wangjun at dsp.ac.cn
Sun Jun 15 23:37:32 PDT 2008


Patch of LoadFromStepEnd:
delete the LoadFrom method in derived classes and implement it in Segmentation,
and pass unittests.

By now, the maxPosition is just set on the constructor. Here we 
would need to change the XML format to add such a bound as part of the XML.
Could you schedule a meeting please?
  Patch of LoadFromStep8:
  implement LoadFrom() in DiscontinuousSeg and UnsizedSeg, 
  and pass unittests TestLoadForm.
    Patch of LoadFromStep7:
    implement LoadFrom() in CongtiguousSegmentation, 
    and pass unittests.

      Patch of LoadFromStep6:
      add UnsizedSegmentation::addArray(marks, marks+nMarks); and pass test. and confirmed
      that UnsizedSegmentation s(200,marks,marks+nMarks); is equivalent to 
      UnsizedSegmentation s(200); s.addArray(marks, marks+nMarks);


        Patch of LoadFromStep5:
        to test whether DiscontinuousSegmentation s(200,marks,marks+nMarks); is equivalent to 
        DiscontinuousSegmentation s(200); s.addArray(marks, marks+nMarks);
        Not only in testStoreOn(), but also other related tests.
          Patch of LoadFromStep4:
          add DiscontinuousSegmentation::addArray(marks, marks+nMarks); and pass test
            Patch of LoadFromStep3:
            to test whether ContiguousSegmentation s(200,marks,marks+nMarks);
             is equivalent to 
            ContiguousSegmetation s(200); s.addArray(marks, marks+nMarks);
            Not only in testStoreOn() but also in other related tests.
              Patch of LoadFromStep2:
              to test whether ContiguousSegmentation s(200,marks,marks+nMarks); is equivalent to 
              ContiguousSegmetation s(200); s.addArray(marks, marks+nMarks);

              Bests,
              June
                ----- Original Message ----- 
                From: JunJun 
                To: David García Garzón 
                Cc: clam-devel at llistes.projectes.lafarga.org 
                Sent: Sunday, June 15, 2008 10:39 PM
                Subject: Patch for Steps of LoadFrom 


                > Take just ContiguousSgmentation:
                > 
                > We would like to have a virtual function that receives the array. But current 
                > implementation does not receive a CLAM::Array but it is templated as 
                > iterators which is very convenient for other uses (tests). But template and 
                > virtual are incompatible, the first refactoring would be to turn the template 
                > constructor into a constructor receiving just TData* which i think is 
                > compatible with any current use. Just in case, compile, both the annotator 
                > and the tests and pass the tests.
                > 
                > Once we turned the constructor into a templateless one, lets do an 'Extract 
                > method' refactoring from the constructor for the data filling part. So, for 
                > each Segmentation add the following method:
                > void takeArray(TData * begin, TData * iterator end)
                > {
                >  // copy here the filling code from the constructor
                > }
                > Then substitute the copied code at the constructor by a call to such method.
                > All the test should be working.

                The patch is of the step above.
                Notice that to make the test pass, I made a forced type change (Iterator->TData), and changed the related type (double->float) of the unittests. That is ugly and requires the "Iterator" datatype must be consistent with "TData".

                > 
                > No proceed the same with the rest of the Segmentations sending patches at the 
                > same points.
                > 
                > Create a virtual method takeArray on base Segmentation. Should still compile.
                > 
                > On SegmentationPane, intead of using the three parameters constructor use the 
                > one parameter one and let's call the takeArray method after the switch. All 
                > the segmentations should still work so try them at Annotator as we did some 
                > days ago.
                > 
                > Now, those refactoring have prepared the way for our desired red, the LoadFrom 
                > test. Some hints: you can define an std::istreamstream("With some xml content 
                > to be read") and see how previous tests use the boundsAsString method to get 
                > the actual segmentation content as string.
                > 
                > Now you'll try to use the load but now we have a problem: We are missing the 
                > audioDuration parameter. By now, just set it on the constructor. Here we 
                > would need to change the XML format to add such a bound as part of the XML, 
                > this can break a lot of things so this is the perfect point to have a 
                > meeting.
                > 
                > 
                > -- 
                > David García Garzón
                > (Work) dgarcia at iua dot upf anotherdot es
                > http://www.iua.upf.edu/~dgarcia
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.clam-project.org/pipermail/clam-devel-clam-project.org/attachments/20080616/def5b472/attachment-0003.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: LoadFromStepEnd.patch
Type: application/octet-stream
Size: 33007 bytes
Desc: not available
URL: <http://lists.clam-project.org/pipermail/clam-devel-clam-project.org/attachments/20080616/def5b472/attachment-0003.obj>


More information about the clam-devel mailing list