|
420 | 420 | })
|
421 | 421 | })
|
422 | 422 |
|
| 423 | + describe('- splitLeft(sep, [maxSplit, [limit]])', function() { |
| 424 | + it('should return an array of strings, split from the left at sep, at most maxSplit splits, at most limit elements', function() { |
| 425 | + // by a char |
| 426 | + ARY_EQ (['a', 'b', 'c', 'd'], S('a|b|c|d').splitLeft('|')) |
| 427 | + ARY_EQ (['a', 'b|c|d'], S('a|b|c|d').splitLeft('|', 1)) |
| 428 | + ARY_EQ (['a', 'b', 'c|d'], S('a|b|c|d').splitLeft('|', 2)) |
| 429 | + ARY_EQ (['a', 'b', 'c', 'd'], S('a|b|c|d').splitLeft('|', 3)) |
| 430 | + ARY_EQ (['a', 'b', 'c', 'd'], S('a|b|c|d').splitLeft('|', 4)) |
| 431 | + ARY_EQ (['a', 'b', 'c', 'd'], S('a|b|c|d').splitLeft('|', 1000)) |
| 432 | + ARY_EQ (['a|b|c|d'], S('a|b|c|d').splitLeft('|', 0)) |
| 433 | + ARY_EQ (['a', '', 'b||c||d'], S('a||b||c||d').splitLeft('|', 2)) |
| 434 | + ARY_EQ (['', ' begincase'], S('| begincase').splitLeft('|')) |
| 435 | + ARY_EQ (['endcase ', ''], S('endcase |').splitLeft('|')) |
| 436 | + ARY_EQ (['', 'bothcase', ''], S('|bothcase|').splitLeft('|')) |
| 437 | + |
| 438 | + ARY_EQ (['a', 'b', 'c\x00\x00d'], S('a\x00b\x00c\x00\x00d').splitLeft('\x00', 2)) |
| 439 | + |
| 440 | + // by string |
| 441 | + ARY_EQ (['a', 'b', 'c', 'd'], S('a//b//c//d').splitLeft('//')) |
| 442 | + ARY_EQ (['a', 'b//c//d'], S('a//b//c//d').splitLeft('//', 1)) |
| 443 | + ARY_EQ (['a', 'b', 'c//d'], S('a//b//c//d').splitLeft('//', 2)) |
| 444 | + ARY_EQ (['a', 'b', 'c', 'd'], S('a//b//c//d').splitLeft('//', 3)) |
| 445 | + ARY_EQ (['a', 'b', 'c', 'd'], S('a//b//c//d').splitLeft('//', 4)) |
| 446 | + ARY_EQ (['a//b//c//d'], S('a//b//c//d').splitLeft('//', 0)) |
| 447 | + ARY_EQ (['a', '', 'b////c////d'], S('a////b////c////d').splitLeft('//', 2)) // overlap |
| 448 | + ARY_EQ (['', ' begincase'], S('test begincase').splitLeft('test')) |
| 449 | + ARY_EQ (['endcase ', ''], S('endcase test').splitLeft('test')) |
| 450 | + ARY_EQ (['', ' bothcase ', ''], S('test bothcase test').splitLeft('test')) |
| 451 | + ARY_EQ (['a', 'bc'], S('abbbc').splitLeft('bb')) |
| 452 | + ARY_EQ (['', ''], S('aaa').splitLeft('aaa')) |
| 453 | + ARY_EQ (['aaa'], S('aaa').splitLeft('aaa', 0)) |
| 454 | + ARY_EQ (['ab', 'ab'], S('abbaab').splitLeft('ba')) |
| 455 | + ARY_EQ (['aaaa'], S('aaaa').splitLeft('aab')) |
| 456 | + ARY_EQ ([''], S('').splitLeft('aaa')) |
| 457 | + ARY_EQ (['aa'], S('aa').splitLeft('aaa')) |
| 458 | + ARY_EQ (['A', 'bobb'], S('Abbobbbobb').splitLeft('bbobb')) |
| 459 | + ARY_EQ (['', 'B', 'A'], S('bbobbBbbobbA').splitLeft('bbobb')) |
| 460 | + |
| 461 | + // with limit |
| 462 | + ARY_EQ (['a'], S('a|b|c|d').splitLeft('|', 3, 1)) |
| 463 | + ARY_EQ (['a', 'b', 'c'], S('a|b|c|d').splitLeft('|', 3, 3)) |
| 464 | + ARY_EQ (['a', 'b', 'c', 'd'], S('a|b|c|d').splitLeft('|', 3, 4)) |
| 465 | + ARY_EQ (['a', 'b', 'c', 'd'], S('a|b|c|d').splitLeft('|', 3, 5)) |
| 466 | + |
| 467 | + ARY_EQ (['d'], S('a|b|c|d').splitLeft('|', 3, -1)) |
| 468 | + ARY_EQ (['b', 'c|d'], S('a|b|c|d').splitLeft('|', 2, -2)) |
| 469 | + ARY_EQ (['b', 'c', 'd'], S('a|b|c|d').splitLeft('|', 3, -3)) |
| 470 | + ARY_EQ (['a', 'b', 'c', 'd'], S('a|b|c|d').splitLeft('|', 3, -4)) |
| 471 | + ARY_EQ (['a', 'b', 'c', 'd'], S('a|b|c|d').splitLeft('|', 3, -5)) |
| 472 | + |
| 473 | + }) |
| 474 | + }) |
| 475 | + |
| 476 | + describe('- splitRight(sep, [maxSplit, [limit]])', function() { |
| 477 | + it('should return an array of strings, split from the right at sep, at most maxSplit splits, at most limit elements', function() { |
| 478 | + // by a char |
| 479 | + ARY_EQ (['a', 'b', 'c', 'd'], S('a|b|c|d').splitRight('|')) |
| 480 | + ARY_EQ (['a|b|c', 'd'], S('a|b|c|d').splitRight('|', 1)) |
| 481 | + ARY_EQ (['a|b', 'c', 'd'], S('a|b|c|d').splitRight('|', 2)) |
| 482 | + ARY_EQ (['a', 'b', 'c', 'd'], S('a|b|c|d').splitRight('|', 3)) |
| 483 | + ARY_EQ (['a', 'b', 'c', 'd'], S('a|b|c|d').splitRight('|', 4)) |
| 484 | + ARY_EQ (['a', 'b', 'c', 'd'], S('a|b|c|d').splitRight('|', 1000)) |
| 485 | + ARY_EQ (['a|b|c|d'], S('a|b|c|d').splitRight('|', 0)) |
| 486 | + ARY_EQ (['a||b||c', '', 'd'], S('a||b||c||d').splitRight('|', 2)) |
| 487 | + ARY_EQ (['', ' begincase'], S('| begincase').splitRight('|')) |
| 488 | + ARY_EQ (['endcase ', ''], S('endcase |').splitRight('|')) |
| 489 | + ARY_EQ (['', 'bothcase', ''], S('|bothcase|').splitRight('|')) |
| 490 | + |
| 491 | + ARY_EQ (['a\x00\x00b', 'c', 'd'], S('a\x00\x00b\x00c\x00d').splitRight('\x00', 2)) |
| 492 | + |
| 493 | + // by string |
| 494 | + ARY_EQ (['a', 'b', 'c', 'd'], S('a//b//c//d').splitRight('//')) |
| 495 | + ARY_EQ (['a//b//c', 'd'], S('a//b//c//d').splitRight('//', 1)) |
| 496 | + ARY_EQ (['a//b', 'c', 'd'], S('a//b//c//d').splitRight('//', 2)) |
| 497 | + ARY_EQ (['a', 'b', 'c', 'd'], S('a//b//c//d').splitRight('//', 3)) |
| 498 | + ARY_EQ (['a', 'b', 'c', 'd'], S('a//b//c//d').splitRight('//', 4)) |
| 499 | + ARY_EQ (['a//b//c//d'], S('a//b//c//d').splitRight('//', 0)) |
| 500 | + ARY_EQ (['a////b////c', '', 'd'], S('a////b////c////d').splitRight('//', 2)) // overlap |
| 501 | + ARY_EQ (['', ' begincase'], S('test begincase').splitRight('test')) |
| 502 | + ARY_EQ (['endcase ', ''], S('endcase test').splitRight('test')) |
| 503 | + ARY_EQ (['', ' bothcase ', ''], S('test bothcase test').splitRight('test')) |
| 504 | + ARY_EQ (['ab', 'c'], S('abbbc').splitRight('bb')) |
| 505 | + ARY_EQ (['', ''], S('aaa').splitRight('aaa')) |
| 506 | + ARY_EQ (['aaa'], S('aaa').splitRight('aaa', 0)) |
| 507 | + ARY_EQ (['ab', 'ab'], S('abbaab').splitRight('ba')) |
| 508 | + ARY_EQ (['aaaa'], S('aaaa').splitRight('aab')) |
| 509 | + ARY_EQ ([''], S('').splitRight('aaa')) |
| 510 | + ARY_EQ (['aa'], S('aa').splitRight('aaa')) |
| 511 | + ARY_EQ (['bbob', 'A'], S('bbobbbobbA').splitRight('bbobb')) |
| 512 | + ARY_EQ (['', 'B', 'A'], S('bbobbBbbobbA').splitRight('bbobb')) |
| 513 | + |
| 514 | + // with limit |
| 515 | + ARY_EQ (['d'], S('a|b|c|d').splitRight('|', 3, 1)) |
| 516 | + ARY_EQ (['b', 'c', 'd'], S('a|b|c|d').splitRight('|', 3, 3)) |
| 517 | + ARY_EQ (['a', 'b', 'c', 'd'], S('a|b|c|d').splitRight('|', 3, 4)) |
| 518 | + ARY_EQ (['a', 'b', 'c', 'd'], S('a|b|c|d').splitRight('|', 3, 5)) |
| 519 | + |
| 520 | + ARY_EQ (['a'], S('a|b|c|d').splitRight('|', 3, -1)) |
| 521 | + ARY_EQ (['a|b', 'c'], S('a|b|c|d').splitRight('|', 2, -2)) |
| 522 | + ARY_EQ (['a', 'b', 'c'], S('a|b|c|d').splitRight('|', 3, -3)) |
| 523 | + ARY_EQ (['a', 'b', 'c', 'd'], S('a|b|c|d').splitRight('|', 3, -4)) |
| 524 | + ARY_EQ (['a', 'b', 'c', 'd'], S('a|b|c|d').splitRight('|', 3, -5)) |
| 525 | + |
| 526 | + }) |
| 527 | + }) |
| 528 | + |
423 | 529 | describe('- strip([string1],[string2],...)', function() {
|
424 | 530 | it('should return the new string with all occurrences of [string1],[string2],... removed', function() {
|
425 | 531 | T (S('which ones will it take out one wonders').strip('on', 'er').s === 'which es will it take out e wds');
|
|
545 | 651 |
|
546 | 652 | var str = "{{greet }} {{ name}}! How are you doing during the year of {{ date-year }}?";
|
547 | 653 | EQ (S(str).template(values).s, 'Hello JP! How are you doing during the year of 2013?')
|
548 |
| - |
| 654 | + |
549 | 655 | str = "Hello #{name}! How are you doing during the year of #{date-year}?"
|
550 | 656 | EQ (S(str).template(values, '#{', '}').s, 'Hello JP! How are you doing during the year of 2013?')
|
551 | 657 |
|
|
614 | 720 | T (S('*').times(3).s === '***');
|
615 | 721 | })
|
616 | 722 | })
|
617 |
| - |
| 723 | + |
618 | 724 | describe('- titleCase()', function() {
|
619 | 725 | it('should upperCase all words in a camel cased string', function() {
|
620 | 726 | EQ (S('dataRate').titleCase().s, 'DataRate')
|
|
0 commit comments