Exemplo n.º 1
0
 def test_empty_line(self):
     self._test_section(
         cleandoc('''
         200,100,10000,1,0,0:0:0:0:
         
         300,100,15000,1,0,0:0:0:0:
     '''), [
             osufile.HitCircle(x=200,
                               y=100,
                               time=10000,
                               type=1,
                               sound=0,
                               sample=osufile.HitSample(normal_set=0,
                                                        addition_set=0,
                                                        index=0,
                                                        volume=0,
                                                        filename='')),
             osufile.HitCircle(x=300,
                               y=100,
                               time=15000,
                               type=1,
                               sound=0,
                               sample=osufile.HitSample(normal_set=0,
                                                        addition_set=0,
                                                        index=0,
                                                        volume=0,
                                                        filename=''))
         ])
Exemplo n.º 2
0
    def test_slider_edgesounds(self):
        expected = [
            osufile.Slider(x=343,
                           y=300,
                           time=12570,
                           type=2,
                           sound=0,
                           curvetype='P',
                           curvepoints=[(308, 266), (266, 254)],
                           slides=1,
                           length=83.9999974365235,
                           edgesounds=[2, 0],
                           edgesets=[(2, 2), (0, 0)],
                           sample=osufile.HitSample(normal_set=0,
                                                    addition_set=0,
                                                    index=0,
                                                    volume=0,
                                                    filename=''))
        ]
        check = lambda x: self._test_section(x, expected)

        # extra pipes (ignored)
        check(
            '343,300,12570,2,0,P|308:266|266:254,1,83.9999974365235,2|0|5,2:2|0:0,0:0:0:0:'
        )
        # missing pipes (should be filled with 0)
        check(
            '343,300,12570,2,0,P|308:266|266:254,1,83.9999974365235,2,2:2|0:0,0:0:0:0:'
        )
        # invalid pipes (should be filled with 0)
        check(
            '343,300,12570,2,0,P|308:266|266:254,1,83.9999974365235,2|asdf,2:2|0:0,0:0:0:0:'
        )
Exemplo n.º 3
0
    def test_slider_optional_arguments(self):
        sliders = [
            '56,7,11670,2,0,L|152:-2,1,83.9999974365235,0,0:0,0:0:0:0:',
            '56,7,11670,2,0,L|152:-2,1,83.9999974365235,0,0:0',
            '56,7,11670,2,0,L|152:-2,1,83.9999974365235,0',
            '56,7,11670,2,0,L|152:-2,1,83.9999974365235',
            '56,7,11670,2,0,L|152:-2,1'
        ]
        EXPECTED = [
            osufile.Slider(x=56,
                           y=7,
                           time=11670,
                           type=2,
                           sound=0,
                           curvetype='L',
                           curvepoints=[(152, -2)],
                           slides=1,
                           length=83.9999974365235,
                           edgesounds=[0],
                           edgesets=[(0, 0)],
                           sample=osufile.HitSample(normal_set=0,
                                                    addition_set=0,
                                                    index=0,
                                                    volume=0,
                                                    filename=''))
            for i in range(len(sliders))
        ]

        # the parser doesn't recalculate omitted lengths, it sets the lengths to 0,
        # so for all sliders with omitted lengths we'll set the expected data to 0
        for i in range(4, len(EXPECTED)):
            EXPECTED[i].length = 0

        for s, e in zip(sliders, EXPECTED):
            self._test_section(s, [e])
Exemplo n.º 4
0
 def test_hitsample_extra_arguments(self):
     sample = '1:2:3:4:hi.wav:adsfasdf'
     EXPECTED = osufile.HitSample(normal_set=1,
                                  addition_set=2,
                                  index=3,
                                  volume=4,
                                  filename='hi.wav')
     actual = self._get_sample_parser().parse_hitsample(sample)
     self.assertEqual(actual, EXPECTED)
Exemplo n.º 5
0
 def test_slider(self):
     self._test_section(
         '442,316,10170,2,0,P|459:276|452:220,1,83.9999974365235,2|0,0:0|0:0,0:0:0:0:',
         [
             osufile.Slider(x=442,
                            y=316,
                            time=10170,
                            type=2,
                            sound=0,
                            curvetype='P',
                            curvepoints=[(459, 276), (452, 220)],
                            slides=1,
                            length=83.9999974365235,
                            edgesounds=[2, 0],
                            edgesets=[(0, 0), (0, 0)],
                            sample=osufile.HitSample(normal_set=0,
                                                     addition_set=0,
                                                     index=0,
                                                     volume=0,
                                                     filename=''))
         ])
     self._test_section(
         '56,7,11670,2,0,L|152:-2,1,83.9999974365235,0,0:0,0:0:0:0:', [
             osufile.Slider(x=56,
                            y=7,
                            time=11670,
                            type=2,
                            sound=0,
                            curvetype='L',
                            curvepoints=[(152, -2)],
                            slides=1,
                            length=83.9999974365235,
                            edgesounds=[0],
                            edgesets=[(0, 0)],
                            sample=osufile.HitSample(normal_set=0,
                                                     addition_set=0,
                                                     index=0,
                                                     volume=0,
                                                     filename=''))
         ])
Exemplo n.º 6
0
 def test_hitcircle_empty_sample(self):
     self._test_section('200,100,10000,1,0,', [
         osufile.HitCircle(x=200,
                           y=100,
                           time=10000,
                           type=1,
                           sound=0,
                           sample=osufile.HitSample(normal_set=0,
                                                    addition_set=0,
                                                    index=0,
                                                    volume=0,
                                                    filename=''))
     ])
Exemplo n.º 7
0
 def test_hitcircle_extra_arguments(self):
     self._test_section('200,100,10000,1,0,0:0:0:0:,asdfasdf', [
         osufile.HitCircle(x=200,
                           y=100,
                           time=10000,
                           type=1,
                           sound=0,
                           sample=osufile.HitSample(normal_set=0,
                                                    addition_set=0,
                                                    index=0,
                                                    volume=0,
                                                    filename=''))
     ])
Exemplo n.º 8
0
 def test_spinner_extra_arguments(self):
     self._test_section('256,192,5000,12,0,6000,0:0:0:0:,14', [
         osufile.Spinner(x=256,
                         y=192,
                         time=5000,
                         type=12,
                         sound=0,
                         endtime=6000,
                         sample=osufile.HitSample(normal_set=0,
                                                  addition_set=0,
                                                  index=0,
                                                  volume=0,
                                                  filename=''))
     ])
Exemplo n.º 9
0
 def test_holdnote_extra_arguments(self):
     self._test_section('200,100,10000,128,0,11000:1:2:3:4::hi', [
         osufile.Hold(x=200,
                      y=100,
                      time=10000,
                      type=128,
                      sound=0,
                      endtime=11000,
                      sample=osufile.HitSample(normal_set=1,
                                               addition_set=2,
                                               index=3,
                                               volume=4,
                                               filename=''))
     ])
Exemplo n.º 10
0
 def test_slider_too_many_arguments(self):
     self._test_section(
         '56,7,11670,2,0,L|152:-2,1,83.9999974365235,0,0:0,0:0:0:0:,hi', [
             osufile.Slider(x=56,
                            y=7,
                            time=11670,
                            type=2,
                            sound=0,
                            curvetype='L',
                            curvepoints=[(152, -2)],
                            slides=1,
                            length=83.9999974365235,
                            edgesounds=[0],
                            edgesets=[(0, 0)],
                            sample=osufile.HitSample(normal_set=0,
                                                     addition_set=0,
                                                     index=0,
                                                     volume=0,
                                                     filename=''))
         ])