field_stringify.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. 'use strict';
  2. var test = require('tap').test;
  3. var stringifyField = require('../lib/field_stringify');
  4. test('stringify astrix', function (t) {
  5. try {
  6. var str = stringifyField([1, 2, 3, 4], 1, 4);
  7. t.equal(str, '*');
  8. } catch (err) {
  9. t.error(err, 'stringify field error');
  10. }
  11. t.end();
  12. });
  13. test('stringify astrix step', function (t) {
  14. try {
  15. var str = stringifyField([0, 2, 4, 6], 0, 7);
  16. t.equal(str, '*/2');
  17. } catch (err) {
  18. t.error(err, 'stringify field error');
  19. }
  20. t.end();
  21. });
  22. test('stringify single value', function (t) {
  23. try {
  24. var str = stringifyField([2], 0, 7);
  25. t.equal(str, '2');
  26. } catch (err) {
  27. t.error(err, 'stringify field error');
  28. }
  29. t.end();
  30. });
  31. test('stringify multiple single values', function (t) {
  32. try {
  33. var str = stringifyField([2, 5, 9], 0, 9);
  34. t.equal(str, '2,5,9');
  35. } catch (err) {
  36. t.error(err, 'stringify field error');
  37. }
  38. t.end();
  39. });
  40. test('stringify multiple ranged values', function (t) {
  41. try {
  42. var str = stringifyField([1, 3, 5, 6], 0, 9);
  43. t.equal(str, '1,3,5,6');
  44. } catch (err) {
  45. t.error(err, 'stringify field error');
  46. }
  47. t.end();
  48. });
  49. test('stringify range', function (t) {
  50. try {
  51. var str = stringifyField([2, 3, 4], 0, 7);
  52. t.equal(str, '2-4');
  53. } catch (err) {
  54. t.error(err, 'stringify field error');
  55. }
  56. t.end();
  57. });
  58. test('stringify range step', function (t) {
  59. try {
  60. var str = stringifyField([2, 4, 6], 0, 8);
  61. t.equal(str, '2-6/2');
  62. } catch (err) {
  63. t.error(err, 'stringify field error');
  64. }
  65. t.end();
  66. });
  67. test('stringify semi range step', function (t) {
  68. try {
  69. var str = stringifyField([4, 6, 8], 0, 9);
  70. t.equal(str, '4/2');
  71. } catch (err) {
  72. t.error(err, 'stringify field error');
  73. }
  74. t.end();
  75. });
  76. test('stringify multi types', function (t) {
  77. try {
  78. var str = stringifyField([1, 2, 4, 5, 6, 7, 8, 9, 10, 20, 25, 30, 35, 57], 0, 59);
  79. t.equal(str, '1,2,4-10,20-35/5,57');
  80. } catch (err) {
  81. t.error(err, 'stringify field error');
  82. }
  83. t.end();
  84. });