helper.test.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. 'use strict';
  2. /**
  3. * 辅助方法扩展 单元测试
  4. *
  5. * @author Mai
  6. * @data 2018/4/20
  7. * @version
  8. */
  9. const { app, assert } = require('egg-mock/bootstrap');
  10. const mathjs = require('mathjs');
  11. describe('test/app/extend/helper.test.js', () => {
  12. it('ValidTemplateCode test', function () {
  13. const ctx = app.mockContext();
  14. assert(ctx.helper.ValidTemplateCode('z') === true);
  15. assert(ctx.helper.ValidTemplateCode('Z') === true);
  16. assert(ctx.helper.ValidTemplateCode('-') === false);
  17. assert(ctx.helper.ValidTemplateCode('1') === false);
  18. assert(ctx.helper.ValidTemplateCode('z1') === true);
  19. assert(ctx.helper.ValidTemplateCode('z1-') === false);
  20. assert(ctx.helper.ValidTemplateCode('zav') === true);
  21. assert(ctx.helper.ValidTemplateCode('z1-e') === true);
  22. assert(ctx.helper.ValidTemplateCode('z1-e-1') === true);
  23. });
  24. it('ValidTemplateIndexCode test', function () {
  25. const ctx = app.mockContext();
  26. assert(ctx.helper.ValidTemplateIndexCode('z2-d-d-1~z2-d-d-5 高填方路段处理 同z2-d-c-1~z2-d-c-5') === false);
  27. });
  28. it('validMatchCode test', function () {
  29. const ctx = app.mockContext();
  30. assert(ctx.helper.validMatchCode('1-1-1'));
  31. assert(ctx.helper.validMatchCode('1-1-X'));
  32. assert(ctx.helper.validMatchCode('1-X-1'));
  33. assert(!ctx.helper.validMatchCode('1-1-'));
  34. assert(!ctx.helper.validMatchCode('X-1-1'));
  35. assert(!ctx.helper.validMatchCode('1-人-1'));
  36. });
  37. it('loadJsonFile test', function () {
  38. const ctx = app.mockContext();
  39. const vJ = ctx.helper.loadJsonFile(app.baseDir + '/test/app/extend/test.json');
  40. assert(vJ.bills);
  41. assert(vJ.properties);
  42. });
  43. it('operationJson test', function () {
  44. const ctx = app.mockContext();
  45. let testjson = {name: 'hello'};
  46. const result = ctx.helper.operationJson(testjson,'ok','world');
  47. assert(result.ok === 'world');
  48. });
  49. it('calcExprStr test', function () {
  50. const ctx = app.mockContext();
  51. assert(ctx.helper.calcExprStr('1+2').toFixed(2) == 3);
  52. assert(ctx.helper.calcExprStr('1*2').toFixed(2) == 2);
  53. assert(ctx.helper.calcExprStr('-1/2').toFixed(2) == -0.5);
  54. assert(ctx.helper.calcExprStr('1-2').toFixed(2) == -1);
  55. assert(ctx.helper.calcExprStr('1-2+3').toFixed(2) == 2);
  56. assert(ctx.helper.calcExprStr('1-2*2').toFixed(2) == -3);
  57. assert(ctx.helper.calcExprStr('1-2/2').toFixed(2) == 0);
  58. assert(ctx.helper.calcExprStr('(2-1)/2').toFixed(2) == 0.5);
  59. assert(ctx.helper.calcExprStr('(2+1)*2').toFixed(2) == 6);
  60. assert(ctx.helper.calcExprStr('(2+1)*(3-2)').toFixed(2) == 3);
  61. assert(ctx.helper.calcExprStr('(327+3)*(892-882)').toFixed(2) == 3300);
  62. assert(!ctx.helper.calcExprStr('1-'));
  63. assert(!ctx.helper.calcExprStr('1+'));
  64. assert(!ctx.helper.calcExprStr('1/'));
  65. assert(!ctx.helper.calcExprStr('1*'));
  66. assert(!ctx.helper.calcExprStr('2/0'));
  67. assert(ctx.helper.calcExprStr('-3').toFixed(2) == -3);
  68. });
  69. it('calcExprStrRpn test', function () {
  70. const ctx = app.mockContext();
  71. assert(ctx.helper.calcExprStrRpn('1+2').toFixed(2) == 3);
  72. assert(ctx.helper.calcExprStrRpn('1*2').toFixed(2) == 2);
  73. assert(ctx.helper.calcExprStrRpn('-1/2').toFixed(2) == -0.5);
  74. assert(ctx.helper.calcExprStrRpn('1-2').toFixed(2) == -1);
  75. assert(ctx.helper.calcExprStrRpn('1-2+3').toFixed(2) == 2);
  76. assert(ctx.helper.calcExprStrRpn('1-2*2').toFixed(2) == -3);
  77. assert(ctx.helper.calcExprStrRpn('1-2/2').toFixed(2) == 0);
  78. assert(ctx.helper.calcExprStrRpn('(2-1)/2').toFixed(2) == 0.5);
  79. assert(ctx.helper.calcExprStrRpn('(2+1)*2').toFixed(2) == 6);
  80. assert(ctx.helper.calcExprStrRpn('(2+1)*(3-2)').toFixed(2) == 3);
  81. assert(ctx.helper.calcExprStrRpn('(327+3)*(892-882)').toFixed(2) == 3300);
  82. assert(!ctx.helper.calcExprStrRpn('1-'));
  83. assert(!ctx.helper.calcExprStrRpn('1+'));
  84. assert(!ctx.helper.calcExprStrRpn('1/'));
  85. assert(!ctx.helper.calcExprStrRpn('1*'));
  86. assert(!ctx.helper.calcExprStrRpn('2/0'));
  87. assert(ctx.helper.calcExprStrRpn('-3').toFixed(2) == -3);
  88. });
  89. });