@grnsft/if 0.0.6 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/.examples/ompls/azure.yml +205 -0
  2. package/.github/workflows/nodejs-ci.yml +0 -8
  3. package/README.md +48 -9
  4. package/build/index.js +1 -2
  5. package/examples/impls/test/azure.yml +8 -8
  6. package/examples/impls/test/ccf.yml +5 -3
  7. package/examples/impls/test/if-demo.yml +19 -9
  8. package/examples/impls/test/metadata.yml +3 -2
  9. package/examples/impls/test/nesting.yml +10 -13
  10. package/examples/impls/test/sci-e.yml +1 -1
  11. package/examples/impls/test/sci-m.yml +2 -2
  12. package/examples/impls/test/sci-o.yml +2 -4
  13. package/examples/impls/test/sci.yml +1 -2
  14. package/examples/impls/test/shell.yml +2 -1
  15. package/examples/impls/{tdp-finder-test.yml → test/tdp-finder.yml} +8 -8
  16. package/examples/ompls/ccf.yml +3 -1
  17. package/examples/ompls/if-demo.yml +46 -22
  18. package/package.json +12 -5
  19. package/tsconfig.build.json +7 -0
  20. package/tsconfig.build.tsbuildinfo +1 -0
  21. package/build/__mocks__/azure/index.d.ts +0 -11
  22. package/build/__mocks__/azure/index.js +0 -132
  23. package/build/__mocks__/boavizta/countries.json +0 -138
  24. package/build/__mocks__/boavizta/instance_types.json +0 -625
  25. package/build/__mocks__/boavizta/providers.json +0 -1
  26. package/build/__mocks__/fs/index.d.ts +0 -3
  27. package/build/__mocks__/fs/index.js +0 -56
  28. package/build/__mocks__/model-universe/index.d.ts +0 -31
  29. package/build/__mocks__/model-universe/index.js +0 -64
  30. package/build/__mocks__/watt-time/data.json +0 -119
  31. package/build/__tests__/integration/ompl/index.test.d.ts +0 -1
  32. package/build/__tests__/integration/ompl/index.test.js +0 -61
  33. package/build/__tests__/unit/lib/azure-importer/index.test.d.ts +0 -1
  34. package/build/__tests__/unit/lib/azure-importer/index.test.js +0 -152
  35. package/build/__tests__/unit/lib/boavizta/index.test.d.ts +0 -1
  36. package/build/__tests__/unit/lib/boavizta/index.test.js +0 -579
  37. package/build/__tests__/unit/lib/case-studies/aveva.test.d.ts +0 -1
  38. package/build/__tests__/unit/lib/case-studies/aveva.test.js +0 -36
  39. package/build/__tests__/unit/lib/case-studies/emem.test.d.ts +0 -1
  40. package/build/__tests__/unit/lib/case-studies/emem.test.js +0 -108
  41. package/build/__tests__/unit/lib/case-studies/eshoppen.test.d.ts +0 -1
  42. package/build/__tests__/unit/lib/case-studies/eshoppen.test.js +0 -53
  43. package/build/__tests__/unit/lib/case-studies/sci-accenture.test.d.ts +0 -1
  44. package/build/__tests__/unit/lib/case-studies/sci-accenture.test.js +0 -23
  45. package/build/__tests__/unit/lib/ccf/index.test.d.ts +0 -1
  46. package/build/__tests__/unit/lib/ccf/index.test.js +0 -223
  47. package/build/__tests__/unit/lib/cloud-instance-metadata/index.test.d.ts +0 -1
  48. package/build/__tests__/unit/lib/cloud-instance-metadata/index.test.js +0 -73
  49. package/build/__tests__/unit/lib/models-universe.test.d.ts +0 -1
  50. package/build/__tests__/unit/lib/models-universe.test.js +0 -193
  51. package/build/__tests__/unit/lib/observatory.test.d.ts +0 -1
  52. package/build/__tests__/unit/lib/observatory.test.js +0 -99
  53. package/build/__tests__/unit/lib/sci/index.test.d.ts +0 -1
  54. package/build/__tests__/unit/lib/sci/index.test.js +0 -106
  55. package/build/__tests__/unit/lib/sci-e/index.test.d.ts +0 -1
  56. package/build/__tests__/unit/lib/sci-e/index.test.js +0 -30
  57. package/build/__tests__/unit/lib/sci-m/index.test.d.ts +0 -1
  58. package/build/__tests__/unit/lib/sci-m/index.test.js +0 -58
  59. package/build/__tests__/unit/lib/sci-o/index.test.d.ts +0 -1
  60. package/build/__tests__/unit/lib/sci-o/index.test.js +0 -42
  61. package/build/__tests__/unit/lib/shell-imp/index.test.d.ts +0 -1
  62. package/build/__tests__/unit/lib/shell-imp/index.test.js +0 -21
  63. package/build/__tests__/unit/lib/supercomputer.test.d.ts +0 -1
  64. package/build/__tests__/unit/lib/supercomputer.test.js +0 -231
  65. package/build/__tests__/unit/lib/tdp-finder/index.test.d.ts +0 -1
  66. package/build/__tests__/unit/lib/tdp-finder/index.test.js +0 -62
  67. package/build/__tests__/unit/lib/teads-aws/index.test.d.ts +0 -1
  68. package/build/__tests__/unit/lib/teads-aws/index.test.js +0 -170
  69. package/build/__tests__/unit/lib/teads-curve/index.test.d.ts +0 -1
  70. package/build/__tests__/unit/lib/teads-curve/index.test.js +0 -146
  71. package/build/__tests__/unit/lib/watt-time/index.test.d.ts +0 -1
  72. package/build/__tests__/unit/lib/watt-time/index.test.js +0 -106
  73. package/build/__tests__/unit/util/args.test.d.ts +0 -1
  74. package/build/__tests__/unit/util/args.test.js +0 -92
  75. package/build/__tests__/unit/util/models-universe.test.d.ts +0 -1
  76. package/build/__tests__/unit/util/models-universe.test.js +0 -193
  77. package/build/__tests__/unit/util/observatory.test.d.ts +0 -1
  78. package/build/__tests__/unit/util/observatory.test.js +0 -99
  79. package/build/__tests__/unit/util/supercomputer.test.d.ts +0 -1
  80. package/build/__tests__/unit/util/supercomputer.test.js +0 -231
  81. package/build/__tests__/unit/util/yaml.test.d.ts +0 -1
  82. package/build/__tests__/unit/util/yaml.test.js +0 -59
  83. package/build/lib/azure-importer/index.d.ts +0 -55
  84. package/build/lib/azure-importer/index.js +0 -314
  85. package/build/lib/boavizta/index.d.ts +0 -53
  86. package/build/lib/boavizta/index.js +0 -254
  87. package/build/lib/case-studies/aveva-model.d.ts +0 -29
  88. package/build/lib/case-studies/aveva-model.js +0 -53
  89. package/build/lib/case-studies/emem-model.d.ts +0 -42
  90. package/build/lib/case-studies/emem-model.js +0 -93
  91. package/build/lib/case-studies/eshoppen-model.d.ts +0 -24
  92. package/build/lib/case-studies/eshoppen-model.js +0 -123
  93. package/build/lib/case-studies/index.d.ts +0 -4
  94. package/build/lib/case-studies/index.js +0 -21
  95. package/build/lib/case-studies/sci-accenture-model.d.ts +0 -10
  96. package/build/lib/case-studies/sci-accenture-model.js +0 -37
  97. package/build/lib/ccf/aws-embodied.json +0 -5591
  98. package/build/lib/ccf/aws-instances.json +0 -21116
  99. package/build/lib/ccf/aws-use.json +0 -79
  100. package/build/lib/ccf/azure-embodied.json +0 -6547
  101. package/build/lib/ccf/azure-instances.json +0 -8332
  102. package/build/lib/ccf/azure-use.json +0 -58
  103. package/build/lib/ccf/gcp-embodied.json +0 -3049
  104. package/build/lib/ccf/gcp-instances.json +0 -3880
  105. package/build/lib/ccf/gcp-use.json +0 -58
  106. package/build/lib/ccf/index.d.ts +0 -63
  107. package/build/lib/ccf/index.js +0 -338
  108. package/build/lib/cloud-instance-metadata/aws-instances.json +0 -1
  109. package/build/lib/cloud-instance-metadata/azure-instances.json +0 -1
  110. package/build/lib/cloud-instance-metadata/index.d.ts +0 -15
  111. package/build/lib/cloud-instance-metadata/index.js +0 -104
  112. package/build/lib/index.d.ts +0 -14
  113. package/build/lib/index.js +0 -32
  114. package/build/lib/interfaces/ccf.d.ts +0 -19
  115. package/build/lib/interfaces/ccf.js +0 -3
  116. package/build/lib/interfaces/index.d.ts +0 -7
  117. package/build/lib/interfaces/index.js +0 -18
  118. package/build/lib/sci/index.d.ts +0 -13
  119. package/build/lib/sci/index.js +0 -131
  120. package/build/lib/sci-e/index.d.ts +0 -38
  121. package/build/lib/sci-e/index.js +0 -85
  122. package/build/lib/sci-m/index.d.ts +0 -10
  123. package/build/lib/sci-m/index.js +0 -124
  124. package/build/lib/sci-o/index.d.ts +0 -17
  125. package/build/lib/sci-o/index.js +0 -52
  126. package/build/lib/shell-imp/index.d.ts +0 -32
  127. package/build/lib/shell-imp/index.js +0 -82
  128. package/build/lib/tdp-finder/index.d.ts +0 -19
  129. package/build/lib/tdp-finder/index.js +0 -98
  130. package/build/lib/teads-aws/aws-embodied.json +0 -1
  131. package/build/lib/teads-aws/aws-instances.json +0 -1
  132. package/build/lib/teads-aws/index.d.ts +0 -58
  133. package/build/lib/teads-aws/index.js +0 -208
  134. package/build/lib/teads-curve/index.d.ts +0 -52
  135. package/build/lib/teads-curve/index.js +0 -158
  136. package/build/lib/watt-time/index.d.ts +0 -18
  137. package/build/lib/watt-time/index.js +0 -204
  138. package/build/util/models-universe.d.ts +0 -28
  139. package/build/util/models-universe.js +0 -95
  140. package/build/util/observatory.d.ts +0 -20
  141. package/build/util/observatory.js +0 -31
  142. package/build/util/supercomputer.d.ts +0 -30
  143. package/build/util/supercomputer.js +0 -109
  144. package/docs/implementations/tdp-finder.md +0 -36
  145. package/examples/impls/test/complex-pipeline.yml +0 -67
  146. package/examples/impls/test/toto.yaml +0 -22
  147. package/tsconfig.tsbuildinfo +0 -1
@@ -1,31 +0,0 @@
1
- import { ImplInitializeModel, InitalizedModels } from '../../types/models-universe';
2
- import { ModelPluginInterface } from '../../types/model-interface';
3
- export declare class MockModel implements ModelPluginInterface {
4
- configure(): Promise<ModelPluginInterface>;
5
- execute(): Promise<any[]>;
6
- }
7
- /**
8
- * Models Initialization Lifecycle.
9
- */
10
- export declare class ModelsUniverse {
11
- /**
12
- * Models list.
13
- */
14
- initalizedModels: InitalizedModels;
15
- /**
16
- * Gets model class by provided `name` param.
17
- */
18
- private handBuiltinModel;
19
- /**
20
- * Gets model based on `name` and `kind` params.
21
- */
22
- private handModelByCriteria;
23
- /**
24
- * Initializes and registers model.
25
- */
26
- writeDown(model: ImplInitializeModel): InitalizedModels;
27
- /**
28
- * Returns existing model by `name`.
29
- */
30
- getInitializedModel(modelName: string, config: any): Promise<ModelPluginInterface>;
31
- }
@@ -1,64 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ModelsUniverse = exports.MockModel = void 0;
4
- const config_1 = require("../../config");
5
- const { NOT_INITIALIZED_MODEL } = config_1.STRINGS;
6
- class MockModel {
7
- configure() {
8
- return Promise.resolve(this);
9
- }
10
- execute() {
11
- return Promise.resolve([{ data: 'mock-data' }]);
12
- }
13
- }
14
- exports.MockModel = MockModel;
15
- /**
16
- * Models Initialization Lifecycle.
17
- */
18
- class ModelsUniverse {
19
- constructor() {
20
- /**
21
- * Models list.
22
- */
23
- this.initalizedModels = {};
24
- }
25
- /**
26
- * Gets model class by provided `name` param.
27
- */
28
- handBuiltinModel() {
29
- return MockModel;
30
- }
31
- /**
32
- * Gets model based on `name` and `kind` params.
33
- */
34
- handModelByCriteria() {
35
- return this.handBuiltinModel();
36
- }
37
- /**
38
- * Initializes and registers model.
39
- */
40
- writeDown(model) {
41
- const { name } = model;
42
- const Model = this.handModelByCriteria();
43
- const callback = async () => {
44
- const initalizedModel = await new Model().configure();
45
- return initalizedModel;
46
- };
47
- this.initalizedModels = {
48
- ...this.initalizedModels,
49
- [name]: callback,
50
- };
51
- return this.initalizedModels;
52
- }
53
- /**
54
- * Returns existing model by `name`.
55
- */
56
- async getInitializedModel(modelName, config) {
57
- if (this.initalizedModels[modelName]) {
58
- return await this.initalizedModels[modelName](config);
59
- }
60
- throw new Error(NOT_INITIALIZED_MODEL(modelName));
61
- }
62
- }
63
- exports.ModelsUniverse = ModelsUniverse;
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvX19tb2Nrc19fL21vZGVsLXVuaXZlcnNlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQUFxQztBQVFyQyxNQUFNLEVBQUMscUJBQXFCLEVBQUMsR0FBRyxnQkFBTyxDQUFDO0FBRXhDLE1BQWEsU0FBUztJQUNwQixTQUFTO1FBQ1AsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFDRCxPQUFPO1FBQ0wsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7Q0FDRjtBQVBELDhCQU9DO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLGNBQWM7SUFBM0I7UUFDRTs7V0FFRztRQUNJLHFCQUFnQixHQUFxQixFQUFFLENBQUM7SUFnRGpELENBQUM7SUE5Q0M7O09BRUc7SUFDSyxnQkFBZ0I7UUFDdEIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssbUJBQW1CO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksU0FBUyxDQUFDLEtBQTBCO1FBQ3pDLE1BQU0sRUFBQyxJQUFJLEVBQUMsR0FBRyxLQUFLLENBQUM7UUFFckIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFFekMsTUFBTSxRQUFRLEdBQUcsS0FBSyxJQUFJLEVBQUU7WUFDMUIsTUFBTSxlQUFlLEdBQUcsTUFBTSxJQUFJLEtBQUssRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBRXRELE9BQU8sZUFBZSxDQUFDO1FBQ3pCLENBQUMsQ0FBQztRQUVGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRztZQUN0QixHQUFHLElBQUksQ0FBQyxnQkFBZ0I7WUFDeEIsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRO1NBQ2pCLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsU0FBaUIsRUFBRSxNQUFXO1FBQzdELElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3BDLE9BQU8sTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDdkQ7UUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztDQUNGO0FBcERELHdDQW9EQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U1RSSU5HU30gZnJvbSAnLi4vLi4vY29uZmlnJztcblxuaW1wb3J0IHtcbiAgSW1wbEluaXRpYWxpemVNb2RlbCxcbiAgSW5pdGFsaXplZE1vZGVscyxcbn0gZnJvbSAnLi4vLi4vdHlwZXMvbW9kZWxzLXVuaXZlcnNlJztcbmltcG9ydCB7TW9kZWxQbHVnaW5JbnRlcmZhY2V9IGZyb20gJy4uLy4uL3R5cGVzL21vZGVsLWludGVyZmFjZSc7XG5cbmNvbnN0IHtOT1RfSU5JVElBTElaRURfTU9ERUx9ID0gU1RSSU5HUztcblxuZXhwb3J0IGNsYXNzIE1vY2tNb2RlbCBpbXBsZW1lbnRzIE1vZGVsUGx1Z2luSW50ZXJmYWNlIHtcbiAgY29uZmlndXJlKCk6IFByb21pc2U8TW9kZWxQbHVnaW5JbnRlcmZhY2U+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMpO1xuICB9XG4gIGV4ZWN1dGUoKTogUHJvbWlzZTxhbnlbXT4ge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoW3tkYXRhOiAnbW9jay1kYXRhJ31dKTtcbiAgfVxufVxuXG4vKipcbiAqIE1vZGVscyBJbml0aWFsaXphdGlvbiBMaWZlY3ljbGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBNb2RlbHNVbml2ZXJzZSB7XG4gIC8qKlxuICAgKiBNb2RlbHMgbGlzdC5cbiAgICovXG4gIHB1YmxpYyBpbml0YWxpemVkTW9kZWxzOiBJbml0YWxpemVkTW9kZWxzID0ge307XG5cbiAgLyoqXG4gICAqIEdldHMgbW9kZWwgY2xhc3MgYnkgcHJvdmlkZWQgYG5hbWVgIHBhcmFtLlxuICAgKi9cbiAgcHJpdmF0ZSBoYW5kQnVpbHRpbk1vZGVsKCkge1xuICAgIHJldHVybiBNb2NrTW9kZWw7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBtb2RlbCBiYXNlZCBvbiBgbmFtZWAgYW5kIGBraW5kYCBwYXJhbXMuXG4gICAqL1xuICBwcml2YXRlIGhhbmRNb2RlbEJ5Q3JpdGVyaWEoKSB7XG4gICAgcmV0dXJuIHRoaXMuaGFuZEJ1aWx0aW5Nb2RlbCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIGFuZCByZWdpc3RlcnMgbW9kZWwuXG4gICAqL1xuICBwdWJsaWMgd3JpdGVEb3duKG1vZGVsOiBJbXBsSW5pdGlhbGl6ZU1vZGVsKSB7XG4gICAgY29uc3Qge25hbWV9ID0gbW9kZWw7XG5cbiAgICBjb25zdCBNb2RlbCA9IHRoaXMuaGFuZE1vZGVsQnlDcml0ZXJpYSgpO1xuXG4gICAgY29uc3QgY2FsbGJhY2sgPSBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBpbml0YWxpemVkTW9kZWwgPSBhd2FpdCBuZXcgTW9kZWwoKS5jb25maWd1cmUoKTtcblxuICAgICAgcmV0dXJuIGluaXRhbGl6ZWRNb2RlbDtcbiAgICB9O1xuXG4gICAgdGhpcy5pbml0YWxpemVkTW9kZWxzID0ge1xuICAgICAgLi4udGhpcy5pbml0YWxpemVkTW9kZWxzLFxuICAgICAgW25hbWVdOiBjYWxsYmFjayxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMuaW5pdGFsaXplZE1vZGVscztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGV4aXN0aW5nIG1vZGVsIGJ5IGBuYW1lYC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRJbml0aWFsaXplZE1vZGVsKG1vZGVsTmFtZTogc3RyaW5nLCBjb25maWc6IGFueSkge1xuICAgIGlmICh0aGlzLmluaXRhbGl6ZWRNb2RlbHNbbW9kZWxOYW1lXSkge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuaW5pdGFsaXplZE1vZGVsc1ttb2RlbE5hbWVdKGNvbmZpZyk7XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKE5PVF9JTklUSUFMSVpFRF9NT0RFTChtb2RlbE5hbWUpKTtcbiAgfVxufVxuIl19
@@ -1,119 +0,0 @@
1
- [
2
- {
3
- "point_time": "2021-01-01T01:00:00.000Z",
4
- "value": 942,
5
- "frequency": 300,
6
- "market": "RTM",
7
- "ba": "CAISO_NORTH",
8
- "datatype": "MOER",
9
- "version": "3.2"
10
- },
11
- {
12
- "point_time": "2021-01-01T00:55:00.000Z",
13
- "value": 931,
14
- "frequency": 300,
15
- "market": "RTM",
16
- "ba": "CAISO_NORTH",
17
- "datatype": "MOER",
18
- "version": "3.2"
19
- },
20
- {
21
- "point_time": "2021-01-01T00:50:00.000Z",
22
- "value": 930,
23
- "frequency": 300,
24
- "market": "RTM",
25
- "ba": "CAISO_NORTH",
26
- "datatype": "MOER",
27
- "version": "3.2"
28
- },
29
- {
30
- "point_time": "2021-01-01T00:45:00.000Z",
31
- "value": 930,
32
- "frequency": 300,
33
- "market": "RTM",
34
- "ba": "CAISO_NORTH",
35
- "datatype": "MOER",
36
- "version": "3.2"
37
- },
38
- {
39
- "point_time": "2021-01-01T00:40:00.000Z",
40
- "value": 927,
41
- "frequency": 300,
42
- "market": "RTM",
43
- "ba": "CAISO_NORTH",
44
- "datatype": "MOER",
45
- "version": "3.2"
46
- },
47
- {
48
- "point_time": "2021-01-01T00:35:00.000Z",
49
- "value": 934,
50
- "frequency": 300,
51
- "market": "RTM",
52
- "ba": "CAISO_NORTH",
53
- "datatype": "MOER",
54
- "version": "3.2"
55
- },
56
- {
57
- "point_time": "2021-01-01T00:30:00.000Z",
58
- "value": 933,
59
- "frequency": 300,
60
- "market": "RTM",
61
- "ba": "CAISO_NORTH",
62
- "datatype": "MOER",
63
- "version": "3.2"
64
- },
65
- {
66
- "point_time": "2021-01-01T00:25:00.000Z",
67
- "value": 934,
68
- "frequency": 300,
69
- "market": "RTM",
70
- "ba": "CAISO_NORTH",
71
- "datatype": "MOER",
72
- "version": "3.2"
73
- },
74
- {
75
- "point_time": "2021-01-01T00:20:00.000Z",
76
- "value": 935,
77
- "frequency": 300,
78
- "market": "RTM",
79
- "ba": "CAISO_NORTH",
80
- "datatype": "MOER",
81
- "version": "3.2"
82
- },
83
- {
84
- "point_time": "2021-01-01T00:15:00.000Z",
85
- "value": 986,
86
- "frequency": 300,
87
- "market": "RTM",
88
- "ba": "CAISO_NORTH",
89
- "datatype": "MOER",
90
- "version": "3.2"
91
- },
92
- {
93
- "point_time": "2021-01-01T00:10:00.000Z",
94
- "value": 989,
95
- "frequency": 300,
96
- "market": "RTM",
97
- "ba": "CAISO_NORTH",
98
- "datatype": "MOER",
99
- "version": "3.2"
100
- },
101
- {
102
- "point_time": "2021-01-01T00:05:00.000Z",
103
- "value": 993,
104
- "frequency": 300,
105
- "market": "RTM",
106
- "ba": "CAISO_NORTH",
107
- "datatype": "MOER",
108
- "version": "3.2"
109
- },
110
- {
111
- "point_time": "2021-01-01T00:00:00.000Z",
112
- "value": 997,
113
- "frequency": 300,
114
- "market": "RTM",
115
- "ba": "CAISO_NORTH",
116
- "datatype": "MOER",
117
- "version": "3.2"
118
- }
119
- ]
@@ -1 +0,0 @@
1
- export {};
@@ -1,61 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const fs = require("fs");
4
- const globals_1 = require("@jest/globals");
5
- const yaml_1 = require("../../../util/yaml");
6
- const node_test_1 = require("node:test");
7
- globals_1.jest.setTimeout(30000);
8
- (0, node_test_1.describe)('ompls: ', () => {
9
- const path = 'examples/ompls';
10
- const files = fs.readdirSync(path);
11
- /*
12
- * If there are no files in examples/ompls, prompt user to run ompl-test bash script
13
- */
14
- if (files.length === 0) {
15
- throw 'no ompl files available. Please run scripts/impact-test.sh before running these tests.';
16
- }
17
- (0, node_test_1.describe)('computing(): ', () => {
18
- /*
19
- * For each file in examples/ompls, load it and run test
20
- */
21
- files.forEach(file => {
22
- if (file.includes('nesting')) {
23
- (0, globals_1.it)('check nested ompls have outputs field', async () => {
24
- globals_1.expect.assertions(2);
25
- const ompl = await (0, yaml_1.openYamlFileAsObject)(path + '/' + file);
26
- const expectedProperty = 'outputs';
27
- (0, globals_1.expect)(ompl['graph']['children']['child']['children']['child-1']).toHaveProperty(expectedProperty);
28
- (0, globals_1.expect)(ompl['graph']['children']['child']['children']['child-2']).toHaveProperty(expectedProperty);
29
- });
30
- }
31
- else {
32
- (0, globals_1.it)('check ompls have outputs field', async () => {
33
- globals_1.expect.assertions(1);
34
- const ompl = await (0, yaml_1.openYamlFileAsObject)(path + '/' + file);
35
- const expectedProperty = 'outputs';
36
- (0, globals_1.expect)(ompl['graph']['children']['child']).toHaveProperty(expectedProperty);
37
- });
38
- }
39
- if (file.includes('sci-m')) {
40
- (0, globals_1.it)('checks `sci-m` ompl to have outputs property.', async () => {
41
- const ompl = await (0, yaml_1.openYamlFileAsObject)(`${path}/${file}`);
42
- const outputData = JSON.stringify(ompl['graph']['children']['child']['outputs']);
43
- const response = outputData.includes('m');
44
- (0, globals_1.expect)(response).toBeTruthy();
45
- });
46
- }
47
- if (file.includes('complex-pipeline')) {
48
- (0, globals_1.it)('checks `complex-pipeline` to have `energy-memory`, `energy-cpu`, etc. properties in output.', async () => {
49
- const ompl = await (0, yaml_1.openYamlFileAsObject)(`${path}/${file}`);
50
- const res = JSON.stringify(ompl['graph']['children']['child']['outputs'][0]);
51
- (0, globals_1.expect)(res.includes('energy-memory') &&
52
- res.includes('energy-cpu') &&
53
- res.includes('energy-network') &&
54
- res.includes('energy') &&
55
- res.includes('operational-carbon')).toBeTruthy();
56
- });
57
- }
58
- });
59
- });
60
- });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9fX3Rlc3RzX18vaW50ZWdyYXRpb24vb21wbC9pbmRleC50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEseUJBQXlCO0FBQ3pCLDJDQUErQztBQUUvQyw2Q0FBd0Q7QUFDeEQseUNBQW1DO0FBRW5DLGNBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7QUFFdkIsSUFBQSxvQkFBUSxFQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUU7SUFDdkIsTUFBTSxJQUFJLEdBQUcsZ0JBQWdCLENBQUM7SUFDOUIsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQzs7T0FFRztJQUNILElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDdEIsTUFBTSx3RkFBd0YsQ0FBQztLQUNoRztJQUVELElBQUEsb0JBQVEsRUFBQyxlQUFlLEVBQUUsR0FBRyxFQUFFO1FBQzdCOztXQUVHO1FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQzVCLElBQUEsWUFBRSxFQUFDLHVDQUF1QyxFQUFFLEtBQUssSUFBSSxFQUFFO29CQUNyRCxnQkFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDckIsTUFBTSxJQUFJLEdBQVEsTUFBTSxJQUFBLDJCQUFvQixFQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUM7b0JBQ2hFLE1BQU0sZ0JBQWdCLEdBQUcsU0FBUyxDQUFDO29CQUVuQyxJQUFBLGdCQUFNLEVBQ0osSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUMxRCxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO29CQUNuQyxJQUFBLGdCQUFNLEVBQ0osSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUMxRCxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUNyQyxDQUFDLENBQUMsQ0FBQzthQUNKO2lCQUFNO2dCQUNMLElBQUEsWUFBRSxFQUFDLGdDQUFnQyxFQUFFLEtBQUssSUFBSSxFQUFFO29CQUM5QyxnQkFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDckIsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFBLDJCQUFvQixFQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUM7b0JBQzNELE1BQU0sZ0JBQWdCLEdBQUcsU0FBUyxDQUFDO29CQUVuQyxJQUFBLGdCQUFNLEVBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUN2RCxnQkFBZ0IsQ0FDakIsQ0FBQztnQkFDSixDQUFDLENBQUMsQ0FBQzthQUNKO1lBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUMxQixJQUFBLFlBQUUsRUFBQywrQ0FBK0MsRUFBRSxLQUFLLElBQUksRUFBRTtvQkFDN0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFBLDJCQUFvQixFQUFDLEdBQUcsSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7b0JBRTNELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FDOUMsQ0FBQztvQkFDRixNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUUxQyxJQUFBLGdCQUFNLEVBQUMsUUFBUSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ2hDLENBQUMsQ0FBQyxDQUFDO2FBQ0o7WUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsRUFBRTtnQkFDckMsSUFBQSxZQUFFLEVBQUMsNkZBQTZGLEVBQUUsS0FBSyxJQUFJLEVBQUU7b0JBQzNHLE1BQU0sSUFBSSxHQUFRLE1BQU0sSUFBQSwyQkFBb0IsRUFBQyxHQUFHLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO29CQUNoRSxNQUFNLEdBQUcsR0FBVyxJQUFJLENBQUMsU0FBUyxDQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ2pELENBQUM7b0JBRUYsSUFBQSxnQkFBTSxFQUNKLEdBQUcsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDO3dCQUMzQixHQUFHLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQzt3QkFDMUIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQzt3QkFDOUIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7d0JBQ3RCLEdBQUcsQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsQ0FDckMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDakIsQ0FBQyxDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCB7ZXhwZWN0LCBqZXN0LCBpdH0gZnJvbSAnQGplc3QvZ2xvYmFscyc7XG5cbmltcG9ydCB7b3BlbllhbWxGaWxlQXNPYmplY3R9IGZyb20gJy4uLy4uLy4uL3V0aWwveWFtbCc7XG5pbXBvcnQge2Rlc2NyaWJlfSBmcm9tICdub2RlOnRlc3QnO1xuXG5qZXN0LnNldFRpbWVvdXQoMzAwMDApO1xuXG5kZXNjcmliZSgnb21wbHM6ICcsICgpID0+IHtcbiAgY29uc3QgcGF0aCA9ICdleGFtcGxlcy9vbXBscyc7XG4gIGNvbnN0IGZpbGVzID0gZnMucmVhZGRpclN5bmMocGF0aCk7XG4gIC8qXG4gICAqIElmIHRoZXJlIGFyZSBubyBmaWxlcyBpbiBleGFtcGxlcy9vbXBscywgcHJvbXB0IHVzZXIgdG8gcnVuIG9tcGwtdGVzdCBiYXNoIHNjcmlwdFxuICAgKi9cbiAgaWYgKGZpbGVzLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93ICdubyBvbXBsIGZpbGVzIGF2YWlsYWJsZS4gUGxlYXNlIHJ1biBzY3JpcHRzL2ltcGFjdC10ZXN0LnNoIGJlZm9yZSBydW5uaW5nIHRoZXNlIHRlc3RzLic7XG4gIH1cblxuICBkZXNjcmliZSgnY29tcHV0aW5nKCk6ICcsICgpID0+IHtcbiAgICAvKlxuICAgICAqIEZvciBlYWNoIGZpbGUgaW4gZXhhbXBsZXMvb21wbHMsIGxvYWQgaXQgYW5kIHJ1biB0ZXN0XG4gICAgICovXG4gICAgZmlsZXMuZm9yRWFjaChmaWxlID0+IHtcbiAgICAgIGlmIChmaWxlLmluY2x1ZGVzKCduZXN0aW5nJykpIHtcbiAgICAgICAgaXQoJ2NoZWNrIG5lc3RlZCBvbXBscyBoYXZlIG91dHB1dHMgZmllbGQnLCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgZXhwZWN0LmFzc2VydGlvbnMoMik7XG4gICAgICAgICAgY29uc3Qgb21wbDogYW55ID0gYXdhaXQgb3BlbllhbWxGaWxlQXNPYmplY3QocGF0aCArICcvJyArIGZpbGUpO1xuICAgICAgICAgIGNvbnN0IGV4cGVjdGVkUHJvcGVydHkgPSAnb3V0cHV0cyc7XG5cbiAgICAgICAgICBleHBlY3QoXG4gICAgICAgICAgICBvbXBsWydncmFwaCddWydjaGlsZHJlbiddWydjaGlsZCddWydjaGlsZHJlbiddWydjaGlsZC0xJ11cbiAgICAgICAgICApLnRvSGF2ZVByb3BlcnR5KGV4cGVjdGVkUHJvcGVydHkpO1xuICAgICAgICAgIGV4cGVjdChcbiAgICAgICAgICAgIG9tcGxbJ2dyYXBoJ11bJ2NoaWxkcmVuJ11bJ2NoaWxkJ11bJ2NoaWxkcmVuJ11bJ2NoaWxkLTInXVxuICAgICAgICAgICkudG9IYXZlUHJvcGVydHkoZXhwZWN0ZWRQcm9wZXJ0eSk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaXQoJ2NoZWNrIG9tcGxzIGhhdmUgb3V0cHV0cyBmaWVsZCcsIGFzeW5jICgpID0+IHtcbiAgICAgICAgICBleHBlY3QuYXNzZXJ0aW9ucygxKTtcbiAgICAgICAgICBjb25zdCBvbXBsID0gYXdhaXQgb3BlbllhbWxGaWxlQXNPYmplY3QocGF0aCArICcvJyArIGZpbGUpO1xuICAgICAgICAgIGNvbnN0IGV4cGVjdGVkUHJvcGVydHkgPSAnb3V0cHV0cyc7XG5cbiAgICAgICAgICBleHBlY3Qob21wbFsnZ3JhcGgnXVsnY2hpbGRyZW4nXVsnY2hpbGQnXSkudG9IYXZlUHJvcGVydHkoXG4gICAgICAgICAgICBleHBlY3RlZFByb3BlcnR5XG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChmaWxlLmluY2x1ZGVzKCdzY2ktbScpKSB7XG4gICAgICAgIGl0KCdjaGVja3MgYHNjaS1tYCBvbXBsIHRvIGhhdmUgb3V0cHV0cyBwcm9wZXJ0eS4nLCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgY29uc3Qgb21wbCA9IGF3YWl0IG9wZW5ZYW1sRmlsZUFzT2JqZWN0KGAke3BhdGh9LyR7ZmlsZX1gKTtcblxuICAgICAgICAgIGNvbnN0IG91dHB1dERhdGEgPSBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIG9tcGxbJ2dyYXBoJ11bJ2NoaWxkcmVuJ11bJ2NoaWxkJ11bJ291dHB1dHMnXVxuICAgICAgICAgICk7XG4gICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBvdXRwdXREYXRhLmluY2x1ZGVzKCdtJyk7XG5cbiAgICAgICAgICBleHBlY3QocmVzcG9uc2UpLnRvQmVUcnV0aHkoKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChmaWxlLmluY2x1ZGVzKCdjb21wbGV4LXBpcGVsaW5lJykpIHtcbiAgICAgICAgaXQoJ2NoZWNrcyBgY29tcGxleC1waXBlbGluZWAgdG8gaGF2ZSBgZW5lcmd5LW1lbW9yeWAsIGBlbmVyZ3ktY3B1YCwgZXRjLiBwcm9wZXJ0aWVzIGluIG91dHB1dC4nLCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgY29uc3Qgb21wbDogYW55ID0gYXdhaXQgb3BlbllhbWxGaWxlQXNPYmplY3QoYCR7cGF0aH0vJHtmaWxlfWApO1xuICAgICAgICAgIGNvbnN0IHJlczogc3RyaW5nID0gSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICBvbXBsWydncmFwaCddWydjaGlsZHJlbiddWydjaGlsZCddWydvdXRwdXRzJ11bMF1cbiAgICAgICAgICApO1xuXG4gICAgICAgICAgZXhwZWN0KFxuICAgICAgICAgICAgcmVzLmluY2x1ZGVzKCdlbmVyZ3ktbWVtb3J5JykgJiZcbiAgICAgICAgICAgICAgcmVzLmluY2x1ZGVzKCdlbmVyZ3ktY3B1JykgJiZcbiAgICAgICAgICAgICAgcmVzLmluY2x1ZGVzKCdlbmVyZ3ktbmV0d29yaycpICYmXG4gICAgICAgICAgICAgIHJlcy5pbmNsdWRlcygnZW5lcmd5JykgJiZcbiAgICAgICAgICAgICAgcmVzLmluY2x1ZGVzKCdvcGVyYXRpb25hbC1jYXJib24nKVxuICAgICAgICAgICkudG9CZVRydXRoeSgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -1,152 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const azure_1 = require("../../../../__mocks__/azure");
4
- jest.mock('@azure/identity', () => ({
5
- __esModule: true,
6
- DefaultAzureCredential: azure_1.MockAzureCredentials,
7
- }));
8
- jest.mock('@azure/arm-monitor', () => ({
9
- __esModule: true,
10
- MonitorClient: azure_1.MockMonitorClient,
11
- }));
12
- jest.mock('@azure/arm-compute', () => ({
13
- __esModule: true,
14
- ComputeManagementClient: azure_1.MockComputeManagementClient,
15
- }));
16
- const azure_importer_1 = require("../../../../lib/azure-importer");
17
- jest.setTimeout(30000);
18
- describe('lib/azure-importer: ', () => {
19
- describe('init AzureImporterModel: ', () => {
20
- it('initalizes object with properties.', async () => {
21
- const azureModel = await new azure_importer_1.AzureImporterModel();
22
- expect(azureModel).toHaveProperty('authenticate');
23
- expect(azureModel).toHaveProperty('configure');
24
- expect(azureModel).toHaveProperty('execute');
25
- });
26
- });
27
- describe('configure(): ', () => {
28
- it('configures model instance with given params.', async () => {
29
- const name = 'mock-name';
30
- const params = {};
31
- const model = await new azure_importer_1.AzureImporterModel().configure(name, params);
32
- expect(model).toBeInstanceOf(azure_importer_1.AzureImporterModel);
33
- });
34
- });
35
- describe('authenticate(): ', () => {
36
- it('authenticate is undefined', async () => {
37
- const azureModel = await new azure_importer_1.AzureImporterModel().configure('name', {});
38
- expect(azureModel).toBeInstanceOf(azure_importer_1.AzureImporterModel);
39
- await expect(azureModel.authenticate({})).toBe(undefined);
40
- });
41
- });
42
- describe('configure(): ', () => {
43
- it('configure returns name and empty config', async () => {
44
- const azureModel = new azure_importer_1.AzureImporterModel();
45
- await expect(azureModel.configure('azure', {})).resolves.toBeInstanceOf(azure_importer_1.AzureImporterModel);
46
- expect(azureModel.name).toBe('azure');
47
- expect(azureModel.staticParams).toStrictEqual({});
48
- });
49
- });
50
- describe('modelIdentifier(): ', () => {
51
- it('modelIdendifier() returns expected name', async () => {
52
- const azureModel = new azure_importer_1.AzureImporterModel();
53
- expect(azureModel.modelIdentifier()).toBe('azure');
54
- });
55
- });
56
- describe('execute(): ', () => {
57
- it('throws error for missing input field.', async () => {
58
- const azureModel = new azure_importer_1.AzureImporterModel();
59
- expect.assertions(2);
60
- expect(await azureModel.configure('azure', {})).toBeInstanceOf(azure_importer_1.AzureImporterModel);
61
- try {
62
- await azureModel.execute([
63
- {
64
- timestamp: '2023-11-02T10:35:31.820Z',
65
- duration: 3600,
66
- 'azure-observation-aggregation': 'average',
67
- 'azure-subscription-id': '9de7e19f-8a18-4e73-9451-45fc74e7d0d3',
68
- 'azure-resource-group': 'vm1_group',
69
- 'azure-vm-name': 'vm1',
70
- },
71
- ]);
72
- }
73
- catch (error) {
74
- if (error instanceof Error) {
75
- expect(error).toBeInstanceOf(Error);
76
- }
77
- }
78
- });
79
- it('throws error if time is provided in seconds.', async () => {
80
- const azureModel = new azure_importer_1.AzureImporterModel();
81
- expect.assertions(2);
82
- try {
83
- await azureModel.execute([
84
- {
85
- timestamp: '2023-11-02T10:35:31.820Z',
86
- duration: 3600,
87
- 'azure-observation-window': '5 sec',
88
- 'azure-observation-aggregation': 'average',
89
- 'azure-subscription-id': '9de7e19f-8a18-4e73-9451-45fc74e7d0d3',
90
- 'azure-resource-group': 'vm1_group',
91
- 'azure-vm-name': 'vm1',
92
- },
93
- ]);
94
- }
95
- catch (error) {
96
- if (error instanceof Error) {
97
- expect(error).toBeInstanceOf(Error);
98
- expect(error.message).toEqual('The minimum unit of time for azure importer is minutes');
99
- }
100
- }
101
- });
102
- it('throws error for time unit of seconds ', async () => {
103
- const azureModel = new azure_importer_1.AzureImporterModel();
104
- await expect(azureModel.execute([
105
- {
106
- timestamp: '2023-11-02T10:35:31.820Z',
107
- duration: 3600,
108
- 'azure-observation-window': '5 sec',
109
- 'azure-observation-aggregation': 'average',
110
- 'azure-subscription-id': '9de7e19f-8a18-4e73-9451-45fc74e7d0d3',
111
- 'azure-resource-group': 'vm1_group',
112
- 'azure-vm-name': 'vm1',
113
- },
114
- ])).rejects.toStrictEqual(Error('The minimum unit of time for azure importer is minutes'));
115
- });
116
- it('returns valid data.', async () => {
117
- const azureModel = new azure_importer_1.AzureImporterModel();
118
- await expect(azureModel.execute([
119
- {
120
- timestamp: '2023-11-02T10:35:00.000Z',
121
- duration: 300,
122
- 'azure-observation-window': '5 mins',
123
- 'azure-observation-aggregation': 'average',
124
- 'azure-subscription-id': '9de7e19f-8a18-4e73-9451-45fc74e7d0d3',
125
- 'azure-resource-group': 'vm1_group',
126
- 'azure-vm-name': 'vm1',
127
- 'grid-carbon-intensity': 951,
128
- },
129
- ])).resolves.toEqual([
130
- {
131
- timestamp: '2023-11-02T10:35:00.000Z',
132
- duration: 300,
133
- 'grid-carbon-intensity': 951,
134
- 'azure-observation-aggregation': 'average',
135
- 'azure-observation-window': '5 mins',
136
- 'azure-resource-group': 'vm1_group',
137
- 'azure-subscription-id': '9de7e19f-8a18-4e73-9451-45fc74e7d0d3',
138
- 'azure-vm-name': 'vm1',
139
- 'cpu-util': '3.14',
140
- 'mem-availableGB': 0.5,
141
- 'mem-usedGB': 0.5,
142
- 'total-memoryGB': 1,
143
- 'mem-util': 50,
144
- location: 'uksouth',
145
- 'cloud-instance-type': 'Standard_B1s',
146
- 'cloud-vendor': 'azure',
147
- },
148
- ]);
149
- });
150
- });
151
- });
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9fX3Rlc3RzX18vdW5pdC9saWIvYXp1cmUtaW1wb3J0ZXIvaW5kZXgudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHVEQUlxQztBQUVyQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDbEMsVUFBVSxFQUFFLElBQUk7SUFDaEIsc0JBQXNCLEVBQUUsNEJBQW9CO0NBQzdDLENBQUMsQ0FBQyxDQUFDO0FBRUosSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLGFBQWEsRUFBRSx5QkFBaUI7Q0FDakMsQ0FBQyxDQUFDLENBQUM7QUFFSixJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDckMsVUFBVSxFQUFFLElBQUk7SUFDaEIsdUJBQXVCLEVBQUUsbUNBQTJCO0NBQ3JELENBQUMsQ0FBQyxDQUFDO0FBRUosbUVBQWtFO0FBRWxFLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7QUFFdkIsUUFBUSxDQUFDLHNCQUFzQixFQUFFLEdBQUcsRUFBRTtJQUNwQyxRQUFRLENBQUMsMkJBQTJCLEVBQUUsR0FBRyxFQUFFO1FBQ3pDLEVBQUUsQ0FBQyxvQ0FBb0MsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNsRCxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksbUNBQWtCLEVBQUUsQ0FBQztZQUNsRCxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ2xELE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDL0MsTUFBTSxDQUFDLFVBQVUsQ0FBQyxD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RztvQkFDakIsZ0JBQWdCLEVBQUUsQ0FBQztvQkFDbkIsVUFBVSxFQUFFLEVBQUU7b0JBQ2QsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLHFCQUFxQixFQUFFLGNBQWM7b0JBQ3JDLGNBQWMsRUFBRSxPQUFPO2lCQUN4QjthQUNGLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE1vY2tBenVyZUNyZWRlbnRpYWxzLFxuICBNb2NrTW9uaXRvckNsaWVudCxcbiAgTW9ja0NvbXB1dGVNYW5hZ2VtZW50Q2xpZW50LFxufSBmcm9tICcuLi8uLi8uLi8uLi9fX21vY2tzX18vYXp1cmUnO1xuXG5qZXN0Lm1vY2soJ0BhenVyZS9pZGVudGl0eScsICgpID0+ICh7XG4gIF9fZXNNb2R1bGU6IHRydWUsXG4gIERlZmF1bHRBenVyZUNyZWRlbnRpYWw6IE1vY2tBenVyZUNyZWRlbnRpYWxzLFxufSkpO1xuXG5qZXN0Lm1vY2soJ0BhenVyZS9hcm0tbW9uaXRvcicsICgpID0+ICh7XG4gIF9fZXNNb2R1bGU6IHRydWUsXG4gIE1vbml0b3JDbGllbnQ6IE1vY2tNb25pdG9yQ2xpZW50LFxufSkpO1xuXG5qZXN0Lm1vY2soJ0BhenVyZS9hcm0tY29tcHV0ZScsICgpID0+ICh7XG4gIF9fZXNNb2R1bGU6IHRydWUsXG4gIENvbXB1dGVNYW5hZ2VtZW50Q2xpZW50OiBNb2NrQ29tcHV0ZU1hbmFnZW1lbnRDbGllbnQsXG59KSk7XG5cbmltcG9ydCB7QXp1cmVJbXBvcnRlck1vZGVsfSBmcm9tICcuLi8uLi8uLi8uLi9saWIvYXp1cmUtaW1wb3J0ZXInO1xuXG5qZXN0LnNldFRpbWVvdXQoMzAwMDApO1xuXG5kZXNjcmliZSgnbGliL2F6dXJlLWltcG9ydGVyOiAnLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCdpbml0IEF6dXJlSW1wb3J0ZXJNb2RlbDogJywgKCkgPT4ge1xuICAgIGl0KCdpbml0YWxpemVzIG9iamVjdCB3aXRoIHByb3BlcnRpZXMuJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgYXp1cmVNb2RlbCA9IGF3YWl0IG5ldyBBenVyZUltcG9ydGVyTW9kZWwoKTtcbiAgICAgIGV4cGVjdChhenVyZU1vZGVsKS50b0hhdmVQcm9wZXJ0eSgnYXV0aGVudGljYXRlJyk7XG4gICAgICBleHBlY3QoYXp1cmVNb2RlbCkudG9IYXZlUHJvcGVydHkoJ2NvbmZpZ3VyZScpO1xuICAgICAgZXhwZWN0KGF6dXJlTW9kZWwpLnRvSGF2ZVByb3BlcnR5KCdleGVjdXRlJyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdjb25maWd1cmUoKTogJywgKCkgPT4ge1xuICAgIGl0KCdjb25maWd1cmVzIG1vZGVsIGluc3RhbmNlIHdpdGggZ2l2ZW4gcGFyYW1zLicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG5hbWUgPSAnbW9jay1uYW1lJztcbiAgICAgIGNvbnN0IHBhcmFtcyA9IHt9O1xuICAgICAgY29uc3QgbW9kZWwgPSBhd2FpdCBuZXcgQXp1cmVJbXBvcnRlck1vZGVsKCkuY29uZmlndXJlKG5hbWUsIHBhcmFtcyk7XG5cbiAgICAgIGV4cGVjdChtb2RlbCkudG9CZUluc3RhbmNlT2YoQXp1cmVJbXBvcnRlck1vZGVsKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2F1dGhlbnRpY2F0ZSgpOiAnLCAoKSA9PiB7XG4gICAgaXQoJ2F1dGhlbnRpY2F0ZSBpcyB1bmRlZmluZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBhenVyZU1vZGVsID0gYXdhaXQgbmV3IEF6dXJlSW1wb3J0ZXJNb2RlbCgpLmNvbmZpZ3VyZSgnbmFtZScsIHt9KTtcbiAgICAgIGV4cGVjdChhenVyZU1vZGVsKS50b0JlSW5zdGFuY2VPZihBenVyZUltcG9ydGVyTW9kZWwpO1xuICAgICAgYXdhaXQgZXhwZWN0KGF6dXJlTW9kZWwuYXV0aGVudGljYXRlKHt9KSkudG9CZSh1bmRlZmluZWQpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnY29uZmlndXJlKCk6ICcsICgpID0+IHtcbiAgICBpdCgnY29uZmlndXJlIHJldHVybnMgbmFtZSBhbmQgZW1wdHkgY29uZmlnJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgYXp1cmVNb2RlbCA9IG5ldyBBenVyZUltcG9ydGVyTW9kZWwoKTtcbiAgICAgIGF3YWl0IGV4cGVjdChhenVyZU1vZGVsLmNvbmZpZ3VyZSgnYXp1cmUnLCB7fSkpLnJlc29sdmVzLnRvQmVJbnN0YW5jZU9mKFxuICAgICAgICBBenVyZUltcG9ydGVyTW9kZWxcbiAgICAgICk7XG4gICAgICBleHBlY3QoYXp1cmVNb2RlbC5uYW1lKS50b0JlKCdhenVyZScpO1xuICAgICAgZXhwZWN0KGF6dXJlTW9kZWwuc3RhdGljUGFyYW1zKS50b1N0cmljdEVxdWFsKHt9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ21vZGVsSWRlbnRpZmllcigpOiAnLCAoKSA9PiB7XG4gICAgaXQoJ21vZGVsSWRlbmRpZmllcigpIHJldHVybnMgZXhwZWN0ZWQgbmFtZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGF6dXJlTW9kZWwgPSBuZXcgQXp1cmVJbXBvcnRlck1vZGVsKCk7XG4gICAgICBleHBlY3QoYXp1cmVNb2RlbC5tb2RlbElkZW50aWZpZXIoKSkudG9CZSgnYXp1cmUnKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2V4ZWN1dGUoKTogJywgKCkgPT4ge1xuICAgIGl0KCd0aHJvd3MgZXJyb3IgZm9yIG1pc3NpbmcgaW5wdXQgZmllbGQuJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgYXp1cmVNb2RlbCA9IG5ldyBBenVyZUltcG9ydGVyTW9kZWwoKTtcbiAgICAgIGV4cGVjdC5hc3NlcnRpb25zKDIpO1xuICAgICAgZXhwZWN0KGF3YWl0IGF6dXJlTW9kZWwuY29uZmlndXJlKCdhenVyZScsIHt9KSkudG9CZUluc3RhbmNlT2YoXG4gICAgICAgIEF6dXJlSW1wb3J0ZXJNb2RlbFxuICAgICAgKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGF6dXJlTW9kZWwuZXhlY3V0ZShbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGltZXN0YW1wOiAnMjAyMy0xMS0wMlQxMDozNTozMS44MjBaJyxcbiAgICAgICAgICAgIGR1cmF0aW9uOiAzNjAwLFxuICAgICAgICAgICAgJ2F6dXJlLW9ic2VydmF0aW9uLWFnZ3JlZ2F0aW9uJzogJ2F2ZXJhZ2UnLFxuICAgICAgICAgICAgJ2F6dXJlLXN1YnNjcmlwdGlvbi1pZCc6ICc5ZGU3ZTE5Zi04YTE4LTRlNzMtOTQ1MS00NWZjNzRlN2QwZDMnLFxuICAgICAgICAgICAgJ2F6dXJlLXJlc291cmNlLWdyb3VwJzogJ3ZtMV9ncm91cCcsXG4gICAgICAgICAgICAnYXp1cmUtdm0tbmFtZSc6ICd2bTEnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0pO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICBleHBlY3QoZXJyb3IpLnRvQmVJbnN0YW5jZU9mKEVycm9yKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaXQoJ3Rocm93cyBlcnJvciBpZiB0aW1lIGlzIHByb3ZpZGVkIGluIHNlY29uZHMuJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgYXp1cmVNb2RlbCA9IG5ldyBBenVyZUltcG9ydGVyTW9kZWwoKTtcblxuICAgICAgZXhwZWN0LmFzc2VydGlvbnMoMik7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGF6dXJlTW9kZWwuZXhlY3V0ZShbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGltZXN0YW1wOiAnMjAyMy0xMS0wMlQxMDozNTozMS44MjBaJyxcbiAgICAgICAgICAgIGR1cmF0aW9uOiAzNjAwLFxuICAgICAgICAgICAgJ2F6dXJlLW9ic2VydmF0aW9uLXdpbmRvdyc6ICc1IHNlYycsXG4gICAgICAgICAgICAnYXp1cmUtb2JzZXJ2YXRpb24tYWdncmVnYXRpb24nOiAnYXZlcmFnZScsXG4gICAgICAgICAgICAnYXp1cmUtc3Vic2NyaXB0aW9uLWlkJzogJzlkZTdlMTlmLThhMTgtNGU3My05NDUxLTQ1ZmM3NGU3ZDBkMycsXG4gICAgICAgICAgICAnYXp1cmUtcmVzb3VyY2UtZ3JvdXAnOiAndm0xX2dyb3VwJyxcbiAgICAgICAgICAgICdhenVyZS12bS1uYW1lJzogJ3ZtMScsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgIGV4cGVjdChlcnJvcikudG9CZUluc3RhbmNlT2YoRXJyb3IpO1xuICAgICAgICAgIGV4cGVjdChlcnJvci5tZXNzYWdlKS50b0VxdWFsKFxuICAgICAgICAgICAgJ1RoZSBtaW5pbXVtIHVuaXQgb2YgdGltZSBmb3IgYXp1cmUgaW1wb3J0ZXIgaXMgbWludXRlcydcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpdCgndGhyb3dzIGVycm9yIGZvciB0aW1lIHVuaXQgb2Ygc2Vjb25kcyAnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBhenVyZU1vZGVsID0gbmV3IEF6dXJlSW1wb3J0ZXJNb2RlbCgpO1xuICAgICAgYXdhaXQgZXhwZWN0KFxuICAgICAgICBhenVyZU1vZGVsLmV4ZWN1dGUoW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRpbWVzdGFtcDogJzIwMjMtMTEtMDJUMTA6MzU6MzEuODIwWicsXG4gICAgICAgICAgICBkdXJhdGlvbjogMzYwMCxcbiAgICAgICAgICAgICdhenVyZS1vYnNlcnZhdGlvbi13aW5kb3cnOiAnNSBzZWMnLFxuICAgICAgICAgICAgJ2F6dXJlLW9ic2VydmF0aW9uLWFnZ3JlZ2F0aW9uJzogJ2F2ZXJhZ2UnLFxuICAgICAgICAgICAgJ2F6dXJlLXN1YnNjcmlwdGlvbi1pZCc6ICc5ZGU3ZTE5Zi04YTE4LTRlNzMtOTQ1MS00NWZjNzRlN2QwZDMnLFxuICAgICAgICAgICAgJ2F6dXJlLXJlc291cmNlLWdyb3VwJzogJ3ZtMV9ncm91cCcsXG4gICAgICAgICAgICAnYXp1cmUtdm0tbmFtZSc6ICd2bTEnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0pXG4gICAgICApLnJlamVjdHMudG9TdHJpY3RFcXVhbChcbiAgICAgICAgRXJyb3IoJ1RoZSBtaW5pbXVtIHVuaXQgb2YgdGltZSBmb3IgYXp1cmUgaW1wb3J0ZXIgaXMgbWludXRlcycpXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JldHVybnMgdmFsaWQgZGF0YS4nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBhenVyZU1vZGVsID0gbmV3IEF6dXJlSW1wb3J0ZXJNb2RlbCgpO1xuICAgICAgYXdhaXQgZXhwZWN0KFxuICAgICAgICBhenVyZU1vZGVsLmV4ZWN1dGUoW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRpbWVzdGFtcDogJzIwMjMtMTEtMDJUMTA6MzU6MDAuMDAwWicsXG4gICAgICAgICAgICBkdXJhdGlvbjogMzAwLFxuICAgICAgICAgICAgJ2F6dXJlLW9ic2VydmF0aW9uLXdpbmRvdyc6ICc1IG1pbnMnLFxuICAgICAgICAgICAgJ2F6dXJlLW9ic2VydmF0aW9uLWFnZ3JlZ2F0aW9uJzogJ2F2ZXJhZ2UnLFxuICAgICAgICAgICAgJ2F6dXJlLXN1YnNjcmlwdGlvbi1pZCc6ICc5ZGU3ZTE5Zi04YTE4LTRlNzMtOTQ1MS00NWZjNzRlN2QwZDMnLFxuICAgICAgICAgICAgJ2F6dXJlLXJlc291cmNlLWdyb3VwJzogJ3ZtMV9ncm91cCcsXG4gICAgICAgICAgICAnYXp1cmUtdm0tbmFtZSc6ICd2bTEnLFxuICAgICAgICAgICAgJ2dyaWQtY2FyYm9uLWludGVuc2l0eSc6IDk1MSxcbiAgICAgICAgICB9LFxuICAgICAgICBdKVxuICAgICAgKS5yZXNvbHZlcy50b0VxdWFsKFtcbiAgICAgICAge1xuICAgICAgICAgIHRpbWVzdGFtcDogJzIwMjMtMTEtMDJUMTA6MzU6MDAuMDAwWicsXG4gICAgICAgICAgZHVyYXRpb246IDMwMCxcbiAgICAgICAgICAnZ3JpZC1jYXJib24taW50ZW5zaXR5JzogOTUxLFxuICAgICAgICAgICdhenVyZS1vYnNlcnZhdGlvbi1hZ2dyZWdhdGlvbic6ICdhdmVyYWdlJyxcbiAgICAgICAgICAnYXp1cmUtb2JzZXJ2YXRpb24td2luZG93JzogJzUgbWlucycsXG4gICAgICAgICAgJ2F6dXJlLXJlc291cmNlLWdyb3VwJzogJ3ZtMV9ncm91cCcsXG4gICAgICAgICAgJ2F6dXJlLXN1YnNjcmlwdGlvbi1pZCc6ICc5ZGU3ZTE5Zi04YTE4LTRlNzMtOTQ1MS00NWZjNzRlN2QwZDMnLFxuICAgICAgICAgICdhenVyZS12bS1uYW1lJzogJ3ZtMScsXG4gICAgICAgICAgJ2NwdS11dGlsJzogJzMuMTQnLFxuICAgICAgICAgICdtZW0tYXZhaWxhYmxlR0InOiAwLjUsXG4gICAgICAgICAgJ21lbS11c2VkR0InOiAwLjUsXG4gICAgICAgICAgJ3RvdGFsLW1lbW9yeUdCJzogMSxcbiAgICAgICAgICAnbWVtLXV0aWwnOiA1MCxcbiAgICAgICAgICBsb2NhdGlvbjogJ3Vrc291dGgnLFxuICAgICAgICAgICdjbG91ZC1pbnN0YW5jZS10eXBlJzogJ1N0YW5kYXJkX0IxcycsXG4gICAgICAgICAgJ2Nsb3VkLXZlbmRvcic6ICdhenVyZScsXG4gICAgICAgIH0sXG4gICAgICBdKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -1 +0,0 @@
1
- export {};