@grnsft/if 0.0.2
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.
- package/.devcontainer/devcontainer.json +38 -0
- package/.editorconfig +8 -0
- package/.env.example +9 -0
- package/.eslintignore +4 -0
- package/.eslintrc.json +8 -0
- package/.github/ISSUE_TEMPLATE/agenda.md +36 -0
- package/.github/ISSUE_TEMPLATE/blank-issue.md +10 -0
- package/.github/ISSUE_TEMPLATE/feedback.md +42 -0
- package/.github/ISSUE_TEMPLATE/model-plugin.md +63 -0
- package/.github/ISSUE_TEMPLATE/user-story.md +10 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +21 -0
- package/.github/workflows/nodejs-ci.yml +34 -0
- package/.gitmodules +3 -0
- package/.prettierrc.js +3 -0
- package/CONTRIBUTING.md +194 -0
- package/LICENSE +21 -0
- package/Makefile +16 -0
- package/README.md +67 -0
- package/build/__mocks__/azure/index.d.ts +11 -0
- package/build/__mocks__/azure/index.js +132 -0
- package/build/__mocks__/boavizta/countries.json +138 -0
- package/build/__mocks__/boavizta/instance_types.json +625 -0
- package/build/__mocks__/boavizta/providers.json +1 -0
- package/build/__mocks__/fs/index.d.ts +3 -0
- package/build/__mocks__/fs/index.js +56 -0
- package/build/__mocks__/model-universe/index.d.ts +33 -0
- package/build/__mocks__/model-universe/index.js +68 -0
- package/build/__mocks__/watt-time/data.json +119 -0
- package/build/__tests__/integration/ompl/index.test.d.ts +1 -0
- package/build/__tests__/integration/ompl/index.test.js +61 -0
- package/build/__tests__/unit/lib/azure-importer/index.test.d.ts +1 -0
- package/build/__tests__/unit/lib/azure-importer/index.test.js +152 -0
- package/build/__tests__/unit/lib/boavizta/index.test.d.ts +1 -0
- package/build/__tests__/unit/lib/boavizta/index.test.js +579 -0
- package/build/__tests__/unit/lib/case-studies/aveva.test.d.ts +1 -0
- package/build/__tests__/unit/lib/case-studies/aveva.test.js +36 -0
- package/build/__tests__/unit/lib/case-studies/emem.test.d.ts +1 -0
- package/build/__tests__/unit/lib/case-studies/emem.test.js +108 -0
- package/build/__tests__/unit/lib/case-studies/eshoppen.test.d.ts +1 -0
- package/build/__tests__/unit/lib/case-studies/eshoppen.test.js +53 -0
- package/build/__tests__/unit/lib/case-studies/sci-accenture.test.d.ts +1 -0
- package/build/__tests__/unit/lib/case-studies/sci-accenture.test.js +23 -0
- package/build/__tests__/unit/lib/ccf/index.test.d.ts +1 -0
- package/build/__tests__/unit/lib/ccf/index.test.js +223 -0
- package/build/__tests__/unit/lib/cloud-instance-metadata/index.test.d.ts +1 -0
- package/build/__tests__/unit/lib/cloud-instance-metadata/index.test.js +73 -0
- package/build/__tests__/unit/lib/sci/index.test.d.ts +1 -0
- package/build/__tests__/unit/lib/sci/index.test.js +106 -0
- package/build/__tests__/unit/lib/sci-e/index.test.d.ts +1 -0
- package/build/__tests__/unit/lib/sci-e/index.test.js +30 -0
- package/build/__tests__/unit/lib/sci-m/index.test.d.ts +1 -0
- package/build/__tests__/unit/lib/sci-m/index.test.js +58 -0
- package/build/__tests__/unit/lib/sci-o/index.test.d.ts +1 -0
- package/build/__tests__/unit/lib/sci-o/index.test.js +42 -0
- package/build/__tests__/unit/lib/shell-imp/index.test.d.ts +1 -0
- package/build/__tests__/unit/lib/shell-imp/index.test.js +21 -0
- package/build/__tests__/unit/lib/tdp-finder/index.test.d.ts +1 -0
- package/build/__tests__/unit/lib/tdp-finder/index.test.js +62 -0
- package/build/__tests__/unit/lib/teads-aws/index.test.d.ts +1 -0
- package/build/__tests__/unit/lib/teads-aws/index.test.js +170 -0
- package/build/__tests__/unit/lib/teads-curve/index.test.d.ts +1 -0
- package/build/__tests__/unit/lib/teads-curve/index.test.js +146 -0
- package/build/__tests__/unit/lib/watt-time/index.test.d.ts +1 -0
- package/build/__tests__/unit/lib/watt-time/index.test.js +106 -0
- package/build/__tests__/unit/util/args.test.d.ts +1 -0
- package/build/__tests__/unit/util/args.test.js +92 -0
- package/build/__tests__/unit/util/models-universe.test.d.ts +1 -0
- package/build/__tests__/unit/util/models-universe.test.js +211 -0
- package/build/__tests__/unit/util/observatory.test.d.ts +1 -0
- package/build/__tests__/unit/util/observatory.test.js +91 -0
- package/build/__tests__/unit/util/supercomputer.test.d.ts +1 -0
- package/build/__tests__/unit/util/supercomputer.test.js +231 -0
- package/build/__tests__/unit/util/yaml.test.d.ts +1 -0
- package/build/__tests__/unit/util/yaml.test.js +59 -0
- package/build/config/config.d.ts +32 -0
- package/build/config/config.js +74 -0
- package/build/config/index.d.ts +2 -0
- package/build/config/index.js +8 -0
- package/build/config/strings.d.ts +14 -0
- package/build/config/strings.js +30 -0
- package/build/index.d.ts +1 -0
- package/build/index.js +46 -0
- package/build/lib/azure-importer/index.d.ts +55 -0
- package/build/lib/azure-importer/index.js +314 -0
- package/build/lib/boavizta/index.d.ts +53 -0
- package/build/lib/boavizta/index.js +254 -0
- package/build/lib/case-studies/aveva-model.d.ts +29 -0
- package/build/lib/case-studies/aveva-model.js +53 -0
- package/build/lib/case-studies/emem-model.d.ts +42 -0
- package/build/lib/case-studies/emem-model.js +93 -0
- package/build/lib/case-studies/eshoppen-model.d.ts +24 -0
- package/build/lib/case-studies/eshoppen-model.js +123 -0
- package/build/lib/case-studies/index.d.ts +4 -0
- package/build/lib/case-studies/index.js +21 -0
- package/build/lib/case-studies/sci-accenture-model.d.ts +10 -0
- package/build/lib/case-studies/sci-accenture-model.js +37 -0
- package/build/lib/ccf/aws-embodied.json +5591 -0
- package/build/lib/ccf/aws-instances.json +21116 -0
- package/build/lib/ccf/aws-use.json +79 -0
- package/build/lib/ccf/azure-embodied.json +6547 -0
- package/build/lib/ccf/azure-instances.json +8332 -0
- package/build/lib/ccf/azure-use.json +58 -0
- package/build/lib/ccf/gcp-embodied.json +3049 -0
- package/build/lib/ccf/gcp-instances.json +3880 -0
- package/build/lib/ccf/gcp-use.json +58 -0
- package/build/lib/ccf/index.d.ts +63 -0
- package/build/lib/ccf/index.js +338 -0
- package/build/lib/cloud-instance-metadata/aws-instances.json +1 -0
- package/build/lib/cloud-instance-metadata/azure-instances.json +1 -0
- package/build/lib/cloud-instance-metadata/index.d.ts +15 -0
- package/build/lib/cloud-instance-metadata/index.js +104 -0
- package/build/lib/index.d.ts +15 -0
- package/build/lib/index.js +32 -0
- package/build/lib/interfaces/ccf.d.ts +19 -0
- package/build/lib/interfaces/ccf.js +3 -0
- package/build/lib/interfaces/index.d.ts +7 -0
- package/build/lib/interfaces/index.js +18 -0
- package/build/lib/sci/index.d.ts +13 -0
- package/build/lib/sci/index.js +131 -0
- package/build/lib/sci-e/index.d.ts +38 -0
- package/build/lib/sci-e/index.js +85 -0
- package/build/lib/sci-m/index.d.ts +10 -0
- package/build/lib/sci-m/index.js +124 -0
- package/build/lib/sci-o/index.d.ts +17 -0
- package/build/lib/sci-o/index.js +52 -0
- package/build/lib/shell-imp/index.d.ts +32 -0
- package/build/lib/shell-imp/index.js +82 -0
- package/build/lib/tdp-finder/index.d.ts +19 -0
- package/build/lib/tdp-finder/index.js +98 -0
- package/build/lib/teads-aws/aws-embodied.json +1 -0
- package/build/lib/teads-aws/aws-instances.json +1 -0
- package/build/lib/teads-aws/index.d.ts +58 -0
- package/build/lib/teads-aws/index.js +208 -0
- package/build/lib/teads-curve/index.d.ts +52 -0
- package/build/lib/teads-curve/index.js +158 -0
- package/build/lib/watt-time/index.d.ts +18 -0
- package/build/lib/watt-time/index.js +204 -0
- package/build/types/azure-importer.d.ts +29 -0
- package/build/types/azure-importer.js +3 -0
- package/build/types/boavizta.d.ts +7 -0
- package/build/types/boavizta.js +3 -0
- package/build/types/common.d.ts +7 -0
- package/build/types/common.js +9 -0
- package/build/types/impl.d.ts +40 -0
- package/build/types/impl.js +3 -0
- package/build/types/models-universe.d.ts +24 -0
- package/build/types/models-universe.js +3 -0
- package/build/types/process-args.d.ts +7 -0
- package/build/types/process-args.js +3 -0
- package/build/types/supercomputer.d.ts +4 -0
- package/build/types/supercomputer.js +3 -0
- package/build/util/args.d.ts +8 -0
- package/build/util/args.js +48 -0
- package/build/util/errors.d.ts +6 -0
- package/build/util/errors.js +22 -0
- package/build/util/helpers.d.ts +4 -0
- package/build/util/helpers.js +18 -0
- package/build/util/models-universe.d.ts +28 -0
- package/build/util/models-universe.js +95 -0
- package/build/util/observatory.d.ts +20 -0
- package/build/util/observatory.js +31 -0
- package/build/util/supercomputer.d.ts +30 -0
- package/build/util/supercomputer.js +109 -0
- package/build/util/validations.d.ts +25 -0
- package/build/util/validations.js +52 -0
- package/build/util/yaml.d.ts +13 -0
- package/build/util/yaml.js +36 -0
- package/coverage/clover.xml +1172 -0
- package/coverage/coverage-final.json +27 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/config/config.ts.html +310 -0
- package/coverage/lcov-report/config/index.html +146 -0
- package/coverage/lcov-report/config/index.ts.html +91 -0
- package/coverage/lcov-report/config/strings.ts.html +118 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +341 -0
- package/coverage/lcov-report/lib/boavizta/index.html +116 -0
- package/coverage/lcov-report/lib/boavizta/index.ts.html +1171 -0
- package/coverage/lcov-report/lib/case-studies/aveva-model.ts.html +277 -0
- package/coverage/lcov-report/lib/case-studies/emem-model.ts.html +439 -0
- package/coverage/lcov-report/lib/case-studies/eshoppen-model.ts.html +550 -0
- package/coverage/lcov-report/lib/case-studies/index.html +176 -0
- package/coverage/lcov-report/lib/case-studies/index.ts.html +97 -0
- package/coverage/lcov-report/lib/case-studies/sci-accenture-model.ts.html +232 -0
- package/coverage/lcov-report/lib/ccf/index.html +116 -0
- package/coverage/lcov-report/lib/ccf/index.ts.html +1339 -0
- package/coverage/lcov-report/lib/cloud-instance-metadata/index.html +116 -0
- package/coverage/lcov-report/lib/cloud-instance-metadata/index.ts.html +370 -0
- package/coverage/lcov-report/lib/index.html +116 -0
- package/coverage/lcov-report/lib/index.ts.html +121 -0
- package/coverage/lcov-report/lib/sci/index.html +116 -0
- package/coverage/lcov-report/lib/sci/index.ts.html +571 -0
- package/coverage/lcov-report/lib/sci-e/index.html +116 -0
- package/coverage/lcov-report/lib/sci-e/index.ts.html +403 -0
- package/coverage/lcov-report/lib/sci-m/index.html +116 -0
- package/coverage/lcov-report/lib/sci-m/index.ts.html +487 -0
- package/coverage/lcov-report/lib/sci-o/index.html +116 -0
- package/coverage/lcov-report/lib/sci-o/index.ts.html +265 -0
- package/coverage/lcov-report/lib/shell-imp/index.html +116 -0
- package/coverage/lcov-report/lib/shell-imp/index.ts.html +376 -0
- package/coverage/lcov-report/lib/teads-aws/index.html +116 -0
- package/coverage/lcov-report/lib/teads-aws/index.ts.html +823 -0
- package/coverage/lcov-report/lib/teads-curve/index.html +116 -0
- package/coverage/lcov-report/lib/teads-curve/index.ts.html +625 -0
- package/coverage/lcov-report/lib/watt-time/index.html +116 -0
- package/coverage/lcov-report/lib/watt-time/index.ts.html +829 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +196 -0
- package/coverage/lcov-report/types/common.ts.html +109 -0
- package/coverage/lcov-report/types/index.html +116 -0
- package/coverage/lcov-report/util/args.ts.html +244 -0
- package/coverage/lcov-report/util/index.html +176 -0
- package/coverage/lcov-report/util/models-universe.ts.html +679 -0
- package/coverage/lcov-report/util/observatory.ts.html +229 -0
- package/coverage/lcov-report/util/supercomputer.ts.html +466 -0
- package/coverage/lcov-report/util/yaml.ts.html +193 -0
- package/coverage/lcov.info +2094 -0
- package/docs/implementations/tdp-finder.md +36 -0
- package/examples/impls/case-studies/accenture.yml +155 -0
- package/examples/impls/case-studies/aveva.yaml +48 -0
- package/examples/impls/case-studies/azure-yassine.yaml +67 -0
- package/examples/impls/case-studies/boavizta.yml +26 -0
- package/examples/impls/case-studies/dow_msft.yml +173 -0
- package/examples/impls/case-studies/farm-insights.yaml +35 -0
- package/examples/impls/case-studies/gsf-website.yaml +93 -0
- package/examples/impls/case-studies/msft-eshoppen.yaml +162 -0
- package/examples/impls/case-studies/msft-green-ai.yaml +58 -0
- package/examples/impls/case-studies/ntt-data-on-premise.yaml +201 -0
- package/examples/impls/tdp-finder-test.yml +19 -0
- package/examples/impls/test/azure.yml +26 -0
- package/examples/impls/test/ccf.yml +19 -0
- package/examples/impls/test/complex-pipeline.yml +67 -0
- package/examples/impls/test/if-demo.yml +51 -0
- package/examples/impls/test/metadata.yml +20 -0
- package/examples/impls/test/nesting.yml +65 -0
- package/examples/impls/test/sci-e.yml +21 -0
- package/examples/impls/test/sci-m.yml +24 -0
- package/examples/impls/test/sci-o.yml +28 -0
- package/examples/impls/test/sci.yml +27 -0
- package/examples/impls/test/shell.yml +18 -0
- package/examples/impls/test/toto.yaml +22 -0
- package/examples/ompls/azure.yml +145 -0
- package/examples/ompls/ccf.yml +27 -0
- package/examples/ompls/complex-pipeline.yml +105 -0
- package/examples/ompls/full-sci.yml +64 -0
- package/examples/ompls/if-demo.yml +493 -0
- package/examples/ompls/metadata.yml +29 -0
- package/examples/ompls/nesting.yml +107 -0
- package/examples/ompls/sci-e.yml +23 -0
- package/examples/ompls/sci-m.yml +33 -0
- package/examples/ompls/sci-o.yml +29 -0
- package/examples/ompls/sci.yml +36 -0
- package/examples/ompls/shell.yml +23 -0
- package/jest.config.js +14 -0
- package/package.json +71 -0
- package/scripts/impact-test.sh +12 -0
- package/src/__mocks__/boavizta/countries.json +138 -0
- package/src/__mocks__/boavizta/instance_types.json +625 -0
- package/src/__mocks__/boavizta/providers.json +1 -0
- package/src/__mocks__/watt-time/data.json +119 -0
- package/src/config/units.yaml +125 -0
- package/src/lib/ccf/aws-embodied.json +5591 -0
- package/src/lib/ccf/aws-instances.json +21116 -0
- package/src/lib/ccf/aws-use.json +79 -0
- package/src/lib/ccf/azure-embodied.json +6547 -0
- package/src/lib/ccf/azure-instances.json +8332 -0
- package/src/lib/ccf/azure-use.json +58 -0
- package/src/lib/ccf/gcp-embodied.json +3049 -0
- package/src/lib/ccf/gcp-instances.json +3880 -0
- package/src/lib/ccf/gcp-use.json +58 -0
- package/src/lib/cloud-instance-metadata/aws-instances.json +1 -0
- package/src/lib/cloud-instance-metadata/azure-instances.json +1 -0
- package/src/lib/shell-imp/sampler +30 -0
- package/src/lib/tdp-finder/README.md +7 -0
- package/src/lib/tdp-finder/boavizta_data.csv +1768 -0
- package/src/lib/tdp-finder/data.csv +4460 -0
- package/src/lib/tdp-finder/data2.csv +2162 -0
- package/src/lib/teads-aws/aws-embodied.json +1 -0
- package/src/lib/teads-aws/aws-instances.json +1 -0
- package/tsconfig.test.json +39 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/yarn-error.log +5854 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const globals_1 = require("@jest/globals");
|
|
4
|
+
const aveva_model_1 = require("../../../../lib/case-studies/aveva-model");
|
|
5
|
+
globals_1.jest.setTimeout(30000);
|
|
6
|
+
(0, globals_1.describe)('aveva:configure test', () => {
|
|
7
|
+
(0, globals_1.test)('initialize with params', async () => {
|
|
8
|
+
const outputModel = new aveva_model_1.EAvevaModel();
|
|
9
|
+
(0, globals_1.expect)(outputModel.name).toBeUndefined();
|
|
10
|
+
await outputModel.configure('test', {});
|
|
11
|
+
(0, globals_1.expect)(outputModel.name).toBe('test');
|
|
12
|
+
outputModel.authenticate({});
|
|
13
|
+
(0, globals_1.expect)(outputModel.authParams).toStrictEqual({});
|
|
14
|
+
(0, globals_1.expect)(outputModel.modelIdentifier()).toBe('aveva');
|
|
15
|
+
await (0, globals_1.expect)(outputModel.execute([])).resolves.toStrictEqual([]);
|
|
16
|
+
await (0, globals_1.expect)(outputModel.execute(undefined)).rejects.toThrowError();
|
|
17
|
+
await (0, globals_1.expect)(outputModel.execute({})).rejects.toThrowError();
|
|
18
|
+
await (0, globals_1.expect)(outputModel.execute([
|
|
19
|
+
{
|
|
20
|
+
pl: 16.009,
|
|
21
|
+
pb: 11.335,
|
|
22
|
+
time: 8322,
|
|
23
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
24
|
+
},
|
|
25
|
+
])).resolves.toStrictEqual([
|
|
26
|
+
{
|
|
27
|
+
'energy-cpu': 38.897028,
|
|
28
|
+
pl: 16.009,
|
|
29
|
+
pb: 11.335,
|
|
30
|
+
time: 8322,
|
|
31
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
32
|
+
},
|
|
33
|
+
]);
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZldmEudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9fX3Rlc3RzX18vdW5pdC9saWIvY2FzZS1zdHVkaWVzL2F2ZXZhLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwyQ0FBMkQ7QUFDM0QsMEVBQXFFO0FBRXJFLGNBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7QUFFdkIsSUFBQSxrQkFBUSxFQUFDLHNCQUFzQixFQUFFLEdBQUcsRUFBRTtJQUNwQyxJQUFBLGNBQUksRUFBQyx3QkFBd0IsRUFBRSxLQUFLLElBQUksRUFBRTtRQUN4QyxNQUFNLFdBQVcsR0FBRyxJQUFJLHlCQUFXLEVBQUUsQ0FBQztRQUN0QyxJQUFBLGdCQUFNLEVBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEMsSUFBQSxnQkFBTSxFQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEMsV0FBVyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3QixJQUFBLGdCQUFNLEVBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNqRCxJQUFBLGdCQUFNLEVBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BELE1BQU0sSUFBQSxnQkFBTSxFQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sSUFBQSxnQkFBTSxFQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEUsTUFBTSxJQUFBLGdCQUFNLEVBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM3RCxNQUFNLElBQUEsZ0JBQU0sRUFDVixXQUFXLENBQUMsT0FBTyxDQUFDO1lBQ2xCO2dCQUNFLEVBQUUsRUFBRSxNQUFNO2dCQUNWLEVBQUUsRUFBRSxNQUFNO2dCQUNWLElBQUksRUFBRSxJQUFJO2dCQUNWLFNBQVMsRUFBRSxzQkFBc0I7YUFDbEM7U0FDRixDQUFDLENBQ0gsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO1lBQ3ZCO2dCQUNFLFlBQVksRUFBRSxTQUFTO2dCQUN2QixFQUFFLEVBQUUsTUFBTTtnQkFDVixFQUFFLEVBQUUsTUFBTTtnQkFDVixJQUFJLEVBQUUsSUFBSTtnQkFDVixTQUFTLEVBQUUsc0JBQXNCO2FBQ2xDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZGVzY3JpYmUsIGV4cGVjdCwgamVzdCwgdGVzdH0gZnJvbSAnQGplc3QvZ2xvYmFscyc7XG5pbXBvcnQge0VBdmV2YU1vZGVsfSBmcm9tICcuLi8uLi8uLi8uLi9saWIvY2FzZS1zdHVkaWVzL2F2ZXZhLW1vZGVsJztcblxuamVzdC5zZXRUaW1lb3V0KDMwMDAwKTtcblxuZGVzY3JpYmUoJ2F2ZXZhOmNvbmZpZ3VyZSB0ZXN0JywgKCkgPT4ge1xuICB0ZXN0KCdpbml0aWFsaXplIHdpdGggcGFyYW1zJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IG91dHB1dE1vZGVsID0gbmV3IEVBdmV2YU1vZGVsKCk7XG4gICAgZXhwZWN0KG91dHB1dE1vZGVsLm5hbWUpLnRvQmVVbmRlZmluZWQoKTtcbiAgICBhd2FpdCBvdXRwdXRNb2RlbC5jb25maWd1cmUoJ3Rlc3QnLCB7fSk7XG4gICAgZXhwZWN0KG91dHB1dE1vZGVsLm5hbWUpLnRvQmUoJ3Rlc3QnKTtcbiAgICBvdXRwdXRNb2RlbC5hdXRoZW50aWNhdGUoe30pO1xuICAgIGV4cGVjdChvdXRwdXRNb2RlbC5hdXRoUGFyYW1zKS50b1N0cmljdEVxdWFsKHt9KTtcbiAgICBleHBlY3Qob3V0cHV0TW9kZWwubW9kZWxJZGVudGlmaWVyKCkpLnRvQmUoJ2F2ZXZhJyk7XG4gICAgYXdhaXQgZXhwZWN0KG91dHB1dE1vZGVsLmV4ZWN1dGUoW10pKS5yZXNvbHZlcy50b1N0cmljdEVxdWFsKFtdKTtcbiAgICBhd2FpdCBleHBlY3Qob3V0cHV0TW9kZWwuZXhlY3V0ZSh1bmRlZmluZWQpKS5yZWplY3RzLnRvVGhyb3dFcnJvcigpO1xuICAgIGF3YWl0IGV4cGVjdChvdXRwdXRNb2RlbC5leGVjdXRlKHt9KSkucmVqZWN0cy50b1Rocm93RXJyb3IoKTtcbiAgICBhd2FpdCBleHBlY3QoXG4gICAgICBvdXRwdXRNb2RlbC5leGVjdXRlKFtcbiAgICAgICAge1xuICAgICAgICAgIHBsOiAxNi4wMDksXG4gICAgICAgICAgcGI6IDExLjMzNSxcbiAgICAgICAgICB0aW1lOiA4MzIyLFxuICAgICAgICAgIHRpbWVzdGFtcDogJzIwMjEtMDEtMDFUMDA6MDA6MDBaJyxcbiAgICAgICAgfSxcbiAgICAgIF0pXG4gICAgKS5yZXNvbHZlcy50b1N0cmljdEVxdWFsKFtcbiAgICAgIHtcbiAgICAgICAgJ2VuZXJneS1jcHUnOiAzOC44OTcwMjgsXG4gICAgICAgIHBsOiAxNi4wMDksXG4gICAgICAgIHBiOiAxMS4zMzUsXG4gICAgICAgIHRpbWU6IDgzMjIsXG4gICAgICAgIHRpbWVzdGFtcDogJzIwMjEtMDEtMDFUMDA6MDA6MDBaJyxcbiAgICAgIH0sXG4gICAgXSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const globals_1 = require("@jest/globals");
|
|
4
|
+
const emem_model_1 = require("../../../../lib/case-studies/emem-model");
|
|
5
|
+
globals_1.jest.setTimeout(30000);
|
|
6
|
+
(0, globals_1.describe)('emem:configure test', () => {
|
|
7
|
+
(0, globals_1.test)('initialize with params', async () => {
|
|
8
|
+
const outputModel = new emem_model_1.EMemModel();
|
|
9
|
+
await (0, globals_1.expect)(outputModel.execute([
|
|
10
|
+
{
|
|
11
|
+
duration: 3600,
|
|
12
|
+
'mem-util': 50.0,
|
|
13
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
14
|
+
},
|
|
15
|
+
])).rejects.toThrowError();
|
|
16
|
+
await outputModel.configure('test', {
|
|
17
|
+
'mem-alloc': 32,
|
|
18
|
+
});
|
|
19
|
+
await (0, globals_1.expect)(outputModel.execute([
|
|
20
|
+
{
|
|
21
|
+
duration: 3600,
|
|
22
|
+
'mem-util': 50.0,
|
|
23
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
24
|
+
},
|
|
25
|
+
])).rejects.toThrowError();
|
|
26
|
+
await outputModel.configure('test', {
|
|
27
|
+
'mem-alloc': 32,
|
|
28
|
+
'mem-energy': 0.38,
|
|
29
|
+
});
|
|
30
|
+
await (0, globals_1.expect)(outputModel.execute([
|
|
31
|
+
{
|
|
32
|
+
duration: 3600,
|
|
33
|
+
'mem-util': 150.0,
|
|
34
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
35
|
+
},
|
|
36
|
+
])).rejects.toThrowError();
|
|
37
|
+
outputModel.authenticate({});
|
|
38
|
+
await (0, globals_1.expect)(outputModel.authParams).toStrictEqual({});
|
|
39
|
+
await outputModel.configure('test', {
|
|
40
|
+
'mem-alloc': 32,
|
|
41
|
+
'mem-energy': 0.38,
|
|
42
|
+
});
|
|
43
|
+
await (0, globals_1.expect)(outputModel.name).toBe('test');
|
|
44
|
+
await (0, globals_1.expect)(outputModel.configure('test')).rejects.toThrow();
|
|
45
|
+
await (0, globals_1.expect)(outputModel.execute(undefined)).rejects.toThrow();
|
|
46
|
+
await (0, globals_1.expect)(outputModel.execute({})).rejects.toThrow();
|
|
47
|
+
(0, globals_1.expect)(outputModel.modelIdentifier()).toBe('energy-memory');
|
|
48
|
+
await (0, globals_1.expect)(outputModel.execute([{ timestamp: 'test' }])).rejects.toThrow();
|
|
49
|
+
await (0, globals_1.expect)(outputModel.execute([
|
|
50
|
+
{
|
|
51
|
+
duration: 3600,
|
|
52
|
+
'mem-util': 50.0,
|
|
53
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
54
|
+
},
|
|
55
|
+
])).resolves.toStrictEqual([
|
|
56
|
+
{
|
|
57
|
+
'energy-memory': 0.00608,
|
|
58
|
+
duration: 3600,
|
|
59
|
+
'mem-util': 50.0,
|
|
60
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
61
|
+
},
|
|
62
|
+
]);
|
|
63
|
+
});
|
|
64
|
+
(0, globals_1.test)('initialize with params', async () => {
|
|
65
|
+
const outputModel = new emem_model_1.EMemModel();
|
|
66
|
+
await outputModel.configure('test', {
|
|
67
|
+
'mem-alloc': 32,
|
|
68
|
+
'mem-energy': 0.38,
|
|
69
|
+
});
|
|
70
|
+
await (0, globals_1.expect)(outputModel.execute([
|
|
71
|
+
{
|
|
72
|
+
duration: 3600,
|
|
73
|
+
'mem-util': 10.0,
|
|
74
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
duration: 3600,
|
|
78
|
+
'mem-util': 50.0,
|
|
79
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
duration: 3600,
|
|
83
|
+
'mem-util': 90.0,
|
|
84
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
85
|
+
},
|
|
86
|
+
])).resolves.toStrictEqual([
|
|
87
|
+
{
|
|
88
|
+
'energy-memory': 0.0012160000000000003,
|
|
89
|
+
duration: 3600,
|
|
90
|
+
'mem-util': 10.0,
|
|
91
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
'energy-memory': 0.00608,
|
|
95
|
+
duration: 3600,
|
|
96
|
+
'mem-util': 50.0,
|
|
97
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
'energy-memory': 0.010944,
|
|
101
|
+
duration: 3600,
|
|
102
|
+
'mem-util': 90.0,
|
|
103
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
104
|
+
},
|
|
105
|
+
]);
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1lbS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL19fdGVzdHNfXy91bml0L2xpYi9jYXNlLXN0dWRpZXMvZW1lbS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMkNBQTJEO0FBQzNELHdFQUFrRTtBQUVsRSxjQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBRXZCLElBQUEsa0JBQVEsRUFBQyxxQkFBcUIsRUFBRSxHQUFHLEVBQUU7SUFDbkMsSUFBQSxjQUFJLEVBQUMsd0JBQXdCLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDeEMsTUFBTSxXQUFXLEdBQUcsSUFBSSxzQkFBUyxFQUFFLENBQUM7UUFDcEMsTUFBTSxJQUFBLGdCQUFNLEVBQ1YsV0FBVyxDQUFDLE9BQU8sQ0FBQztZQUNsQjtnQkFDRSxRQUFRLEVBQUUsSUFBSTtnQkFDZCxVQUFVLEVBQUUsSUFBSTtnQkFDaEIsU0FBUyxFQUFFLHNCQUFzQjthQUNsQztTQUNGLENBQUMsQ0FDSCxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN6QixNQUFNLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQ2xDLFdBQVcsRUFBRSxFQUFFO1NBQ2hCLENBQUMsQ0FBQztRQUNILE1BQU0sSUFBQSxnQkFBTSxFQUNWLFdBQVcsQ0FBQyxPQUFPLENBQUM7WUFDbEI7Z0JBQ0UsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLFNBQVMsRUFBRSxzQkFBc0I7YUFDbEM7U0FDRixDQUFDLENBQ0gsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDekIsTUFBTSxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRTtZQUNsQyxXQUFXLEVBQUUsRUFBRTtZQUNmLFlBQVksRUFBRSxJQUFJO1NBQ25CLENBQUMsQ0FBQztRQUNILE1BQU0sSUFBQSxnQkFBTSxFQUNWLFdBQVcs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QkFBc0I7YUFDbEM7WUFDRDtnQkFDRSxlQUFlLEVBQUUsT0FBTztnQkFDeEIsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLFNBQVMsRUFBRSxzQkFBc0I7YUFDbEM7WUFDRDtnQkFDRSxlQUFlLEVBQUUsUUFBUTtnQkFDekIsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLFNBQVMsRUFBRSxzQkFBc0I7YUFDbEM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkZXNjcmliZSwgZXhwZWN0LCBqZXN0LCB0ZXN0fSBmcm9tICdAamVzdC9nbG9iYWxzJztcbmltcG9ydCB7RU1lbU1vZGVsfSBmcm9tICcuLi8uLi8uLi8uLi9saWIvY2FzZS1zdHVkaWVzL2VtZW0tbW9kZWwnO1xuXG5qZXN0LnNldFRpbWVvdXQoMzAwMDApO1xuXG5kZXNjcmliZSgnZW1lbTpjb25maWd1cmUgdGVzdCcsICgpID0+IHtcbiAgdGVzdCgnaW5pdGlhbGl6ZSB3aXRoIHBhcmFtcycsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBvdXRwdXRNb2RlbCA9IG5ldyBFTWVtTW9kZWwoKTtcbiAgICBhd2FpdCBleHBlY3QoXG4gICAgICBvdXRwdXRNb2RlbC5leGVjdXRlKFtcbiAgICAgICAge1xuICAgICAgICAgIGR1cmF0aW9uOiAzNjAwLFxuICAgICAgICAgICdtZW0tdXRpbCc6IDUwLjAsXG4gICAgICAgICAgdGltZXN0YW1wOiAnMjAyMS0wMS0wMVQwMDowMDowMFonLFxuICAgICAgICB9LFxuICAgICAgXSlcbiAgICApLnJlamVjdHMudG9UaHJvd0Vycm9yKCk7XG4gICAgYXdhaXQgb3V0cHV0TW9kZWwuY29uZmlndXJlKCd0ZXN0Jywge1xuICAgICAgJ21lbS1hbGxvYyc6IDMyLFxuICAgIH0pO1xuICAgIGF3YWl0IGV4cGVjdChcbiAgICAgIG91dHB1dE1vZGVsLmV4ZWN1dGUoW1xuICAgICAgICB7XG4gICAgICAgICAgZHVyYXRpb246IDM2MDAsXG4gICAgICAgICAgJ21lbS11dGlsJzogNTAuMCxcbiAgICAgICAgICB0aW1lc3RhbXA6ICcyMDIxLTAxLTAxVDAwOjAwOjAwWicsXG4gICAgICAgIH0sXG4gICAgICBdKVxuICAgICkucmVqZWN0cy50b1Rocm93RXJyb3IoKTtcbiAgICBhd2FpdCBvdXRwdXRNb2RlbC5jb25maWd1cmUoJ3Rlc3QnLCB7XG4gICAgICAnbWVtLWFsbG9jJzogMzIsXG4gICAgICAnbWVtLWVuZXJneSc6IDAuMzgsXG4gICAgfSk7XG4gICAgYXdhaXQgZXhwZWN0KFxuICAgICAgb3V0cHV0TW9kZWwuZXhlY3V0ZShbXG4gICAgICAgIHtcbiAgICAgICAgICBkdXJhdGlvbjogMzYwMCxcbiAgICAgICAgICAnbWVtLXV0aWwnOiAxNTAuMCxcbiAgICAgICAgICB0aW1lc3RhbXA6ICcyMDIxLTAxLTAxVDAwOjAwOjAwWicsXG4gICAgICAgIH0sXG4gICAgICBdKVxuICAgICkucmVqZWN0cy50b1Rocm93RXJyb3IoKTtcbiAgICBvdXRwdXRNb2RlbC5hdXRoZW50aWNhdGUoe30pO1xuICAgIGF3YWl0IGV4cGVjdChvdXRwdXRNb2RlbC5hdXRoUGFyYW1zKS50b1N0cmljdEVxdWFsKHt9KTtcbiAgICBhd2FpdCBvdXRwdXRNb2RlbC5jb25maWd1cmUoJ3Rlc3QnLCB7XG4gICAgICAnbWVtLWFsbG9jJzogMzIsXG4gICAgICAnbWVtLWVuZXJneSc6IDAuMzgsXG4gICAgfSk7XG4gICAgYXdhaXQgZXhwZWN0KG91dHB1dE1vZGVsLm5hbWUpLnRvQmUoJ3Rlc3QnKTtcbiAgICBhd2FpdCBleHBlY3Qob3V0cHV0TW9kZWwuY29uZmlndXJlKCd0ZXN0JykpLnJlamVjdHMudG9UaHJvdygpO1xuICAgIGF3YWl0IGV4cGVjdChvdXRwdXRNb2RlbC5leGVjdXRlKHVuZGVmaW5lZCkpLnJlamVjdHMudG9UaHJvdygpO1xuICAgIGF3YWl0IGV4cGVjdChvdXRwdXRNb2RlbC5leGVjdXRlKHt9KSkucmVqZWN0cy50b1Rocm93KCk7XG4gICAgZXhwZWN0KG91dHB1dE1vZGVsLm1vZGVsSWRlbnRpZmllcigpKS50b0JlKCdlbmVyZ3ktbWVtb3J5Jyk7XG4gICAgYXdhaXQgZXhwZWN0KG91dHB1dE1vZGVsLmV4ZWN1dGUoW3t0aW1lc3RhbXA6ICd0ZXN0J31dKSkucmVqZWN0cy50b1Rocm93KCk7XG4gICAgYXdhaXQgZXhwZWN0KFxuICAgICAgb3V0cHV0TW9kZWwuZXhlY3V0ZShbXG4gICAgICAgIHtcbiAgICAgICAgICBkdXJhdGlvbjogMzYwMCxcbiAgICAgICAgICAnbWVtLXV0aWwnOiA1MC4wLFxuICAgICAgICAgIHRpbWVzdGFtcDogJzIwMjEtMDEtMDFUMDA6MDA6MDBaJyxcbiAgICAgICAgfSxcbiAgICAgIF0pXG4gICAgKS5yZXNvbHZlcy50b1N0cmljdEVxdWFsKFtcbiAgICAgIHtcbiAgICAgICAgJ2VuZXJneS1tZW1vcnknOiAwLjAwNjA4LFxuICAgICAgICBkdXJhdGlvbjogMzYwMCxcbiAgICAgICAgJ21lbS11dGlsJzogNTAuMCxcbiAgICAgICAgdGltZXN0YW1wOiAnMjAyMS0wMS0wMVQwMDowMDowMFonLFxuICAgICAgfSxcbiAgICBdKTtcbiAgfSk7XG4gIHRlc3QoJ2luaXRpYWxpemUgd2l0aCBwYXJhbXMnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3Qgb3V0cHV0TW9kZWwgPSBuZXcgRU1lbU1vZGVsKCk7XG4gICAgYXdhaXQgb3V0cHV0TW9kZWwuY29uZmlndXJlKCd0ZXN0Jywge1xuICAgICAgJ21lbS1hbGxvYyc6IDMyLFxuICAgICAgJ21lbS1lbmVyZ3knOiAwLjM4LFxuICAgIH0pO1xuICAgIGF3YWl0IGV4cGVjdChcbiAgICAgIG91dHB1dE1vZGVsLmV4ZWN1dGUoW1xuICAgICAgICB7XG4gICAgICAgICAgZHVyYXRpb246IDM2MDAsXG4gICAgICAgICAgJ21lbS11dGlsJzogMTAuMCxcbiAgICAgICAgICB0aW1lc3RhbXA6ICcyMDIxLTAxLTAxVDAwOjAwOjAwWicsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBkdXJhdGlvbjogMzYwMCxcbiAgICAgICAgICAnbWVtLXV0aWwnOiA1MC4wLFxuICAgICAgICAgIHRpbWVzdGFtcDogJzIwMjEtMDEtMDFUMDA6MDA6MDBaJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGR1cmF0aW9uOiAzNjAwLFxuICAgICAgICAgICdtZW0tdXRpbCc6IDkwLjAsXG4gICAgICAgICAgdGltZXN0YW1wOiAnMjAyMS0wMS0wMVQwMDowMDowMFonLFxuICAgICAgICB9LFxuICAgICAgXSlcbiAgICApLnJlc29sdmVzLnRvU3RyaWN0RXF1YWwoW1xuICAgICAge1xuICAgICAgICAnZW5lcmd5LW1lbW9yeSc6IDAuMDAxMjE2MDAwMDAwMDAwMDAwMyxcbiAgICAgICAgZHVyYXRpb246IDM2MDAsXG4gICAgICAgICdtZW0tdXRpbCc6IDEwLjAsXG4gICAgICAgIHRpbWVzdGFtcDogJzIwMjEtMDEtMDFUMDA6MDA6MDBaJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgICdlbmVyZ3ktbWVtb3J5JzogMC4wMDYwOCxcbiAgICAgICAgZHVyYXRpb246IDM2MDAsXG4gICAgICAgICdtZW0tdXRpbCc6IDUwLjAsXG4gICAgICAgIHRpbWVzdGFtcDogJzIwMjEtMDEtMDFUMDA6MDA6MDBaJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgICdlbmVyZ3ktbWVtb3J5JzogMC4wMTA5NDQsXG4gICAgICAgIGR1cmF0aW9uOiAzNjAwLFxuICAgICAgICAnbWVtLXV0aWwnOiA5MC4wLFxuICAgICAgICB0aW1lc3RhbXA6ICcyMDIxLTAxLTAxVDAwOjAwOjAwWicsXG4gICAgICB9LFxuICAgIF0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const globals_1 = require("@jest/globals");
|
|
4
|
+
const eshoppen_model_1 = require("../../../../lib/case-studies/eshoppen-model");
|
|
5
|
+
globals_1.jest.setTimeout(30000);
|
|
6
|
+
(0, globals_1.describe)('eshoppen:configure test', () => {
|
|
7
|
+
(0, globals_1.test)('initialize and test', async () => {
|
|
8
|
+
const model = await new eshoppen_model_1.EshoppenModel().configure('eshoppen', {
|
|
9
|
+
type: 'energy-cpu',
|
|
10
|
+
});
|
|
11
|
+
(0, globals_1.expect)(model).toBeInstanceOf(eshoppen_model_1.EshoppenModel);
|
|
12
|
+
await (0, globals_1.expect)(model.execute([
|
|
13
|
+
{
|
|
14
|
+
'n-hours': 1,
|
|
15
|
+
'n-chips': 1,
|
|
16
|
+
'thermal-design-power': 120,
|
|
17
|
+
'tdp-coeff': 1.02,
|
|
18
|
+
},
|
|
19
|
+
])).resolves.toStrictEqual([
|
|
20
|
+
{
|
|
21
|
+
'energy-cpu': 0.12240000000000001,
|
|
22
|
+
'n-hours': 1,
|
|
23
|
+
'n-chips': 1,
|
|
24
|
+
'thermal-design-power': 120,
|
|
25
|
+
'tdp-coeff': 1.02,
|
|
26
|
+
},
|
|
27
|
+
]);
|
|
28
|
+
await (0, globals_1.expect)(model.execute([{}])).rejects.toThrowError();
|
|
29
|
+
await (0, globals_1.expect)(model.execute({})).rejects.toThrowError();
|
|
30
|
+
(0, globals_1.expect)(model.authenticate({ test: 'test' })).toBe(undefined);
|
|
31
|
+
const model2 = await new eshoppen_model_1.EshoppenMemModel().configure('eshoppen', {
|
|
32
|
+
type: 'energy-memory',
|
|
33
|
+
});
|
|
34
|
+
(0, globals_1.expect)(model2).toBeInstanceOf(eshoppen_model_1.EshoppenMemModel);
|
|
35
|
+
await (0, globals_1.expect)(model2.execute([
|
|
36
|
+
{
|
|
37
|
+
'n-hours': 1,
|
|
38
|
+
'n-chips': 1,
|
|
39
|
+
'tdp-mem': 1,
|
|
40
|
+
'tdp-coeff': 1,
|
|
41
|
+
},
|
|
42
|
+
])).resolves.toStrictEqual([
|
|
43
|
+
{
|
|
44
|
+
'energy-memory': 0.001,
|
|
45
|
+
'n-chips': 1,
|
|
46
|
+
'n-hours': 1,
|
|
47
|
+
'tdp-coeff': 1,
|
|
48
|
+
'tdp-mem': 1,
|
|
49
|
+
},
|
|
50
|
+
]);
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNob3BwZW4udGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9fX3Rlc3RzX18vdW5pdC9saWIvY2FzZS1zdHVkaWVzL2VzaG9wcGVuLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwyQ0FBMkQ7QUFDM0QsZ0ZBR3FEO0FBRXJELGNBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7QUFFdkIsSUFBQSxrQkFBUSxFQUFDLHlCQUF5QixFQUFFLEdBQUcsRUFBRTtJQUN2QyxJQUFBLGNBQUksRUFBQyxxQkFBcUIsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNyQyxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksOEJBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUU7WUFDNUQsSUFBSSxFQUFFLFlBQVk7U0FDbkIsQ0FBQyxDQUFDO1FBQ0gsSUFBQSxnQkFBTSxFQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyw4QkFBYSxDQUFDLENBQUM7UUFDNUMsTUFBTSxJQUFBLGdCQUFNLEVBQ1YsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUNaO2dCQUNFLFNBQVMsRUFBRSxDQUFDO2dCQUNaLFNBQVMsRUFBRSxDQUFDO2dCQUNaLHNCQUFzQixFQUFFLEdBQUc7Z0JBQzNCLFdBQVcsRUFBRSxJQUFJO2FBQ2xCO1NBQ0YsQ0FBQyxDQUNILENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQztZQUN2QjtnQkFDRSxZQUFZLEVBQUUsbUJBQW1CO2dCQUNqQyxTQUFTLEVBQUUsQ0FBQztnQkFDWixTQUFTLEVBQUUsQ0FBQztnQkFDWixzQkFBc0IsRUFBRSxHQUFHO2dCQUMzQixXQUFXLEVBQUUsSUFBSTthQUNsQjtTQUNGLENBQUMsQ0FBQztRQUNILE1BQU0sSUFBQSxnQkFBTSxFQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pELE1BQU0sSUFBQSxnQkFBTSxFQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdkQsSUFBQSxnQkFBTSxFQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBQyxJQUFJLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUUzRCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksaUNBQWdCLEVBQUUsQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFO1lBQ2hFLElBQUksRUFBRSxlQUFlO1NBQ3RCLENBQUMsQ0FBQztRQUNILElBQUEsZ0JBQU0sRUFBQyxNQUFNLENBQUMsQ0FBQyxjQUFjLENBQUMsaUNBQWdCLENBQUMsQ0FBQztRQUNoRCxNQUFNLElBQUEsZ0JBQU0sRUFDVixNQUFNLENBQUMsT0FBTyxDQUFDO1lBQ2I7Z0JBQ0UsU0FBUyxFQUFFLENBQUM7Z0JBQ1osU0FBUyxFQUFFLENBQUM7Z0JBQ1osU0FBUyxFQUFFLENBQUM7Z0JBQ1osV0FBVyxFQUFFLENBQUM7YUFDZjtTQUNGLENBQUMsQ0FDSCxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7WUFDdkI7Z0JBQ0UsZUFBZSxFQUFFLEtBQUs7Z0JBQ3RCLFNBQVMsRUFBRSxDQUFDO2dCQUNaLFNBQVMsRUFBRSxDQUFDO2dCQUNaLFdBQVcsRUFBRSxDQUFDO2dCQUNkLFNBQVMsRUFBRSxDQUFDO2FBQ2I7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkZXNjcmliZSwgZXhwZWN0LCBqZXN0LCB0ZXN0fSBmcm9tICdAamVzdC9nbG9iYWxzJztcbmltcG9ydCB7XG4gIEVzaG9wcGVuTWVtTW9kZWwsXG4gIEVzaG9wcGVuTW9kZWwsXG59IGZyb20gJy4uLy4uLy4uLy4uL2xpYi9jYXNlLXN0dWRpZXMvZXNob3BwZW4tbW9kZWwnO1xuXG5qZXN0LnNldFRpbWVvdXQoMzAwMDApO1xuXG5kZXNjcmliZSgnZXNob3BwZW46Y29uZmlndXJlIHRlc3QnLCAoKSA9PiB7XG4gIHRlc3QoJ2luaXRpYWxpemUgYW5kIHRlc3QnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgbW9kZWwgPSBhd2FpdCBuZXcgRXNob3BwZW5Nb2RlbCgpLmNvbmZpZ3VyZSgnZXNob3BwZW4nLCB7XG4gICAgICB0eXBlOiAnZW5lcmd5LWNwdScsXG4gICAgfSk7XG4gICAgZXhwZWN0KG1vZGVsKS50b0JlSW5zdGFuY2VPZihFc2hvcHBlbk1vZGVsKTtcbiAgICBhd2FpdCBleHBlY3QoXG4gICAgICBtb2RlbC5leGVjdXRlKFtcbiAgICAgICAge1xuICAgICAgICAgICduLWhvdXJzJzogMSxcbiAgICAgICAgICAnbi1jaGlwcyc6IDEsXG4gICAgICAgICAgJ3RoZXJtYWwtZGVzaWduLXBvd2VyJzogMTIwLFxuICAgICAgICAgICd0ZHAtY29lZmYnOiAxLjAyLFxuICAgICAgICB9LFxuICAgICAgXSlcbiAgICApLnJlc29sdmVzLnRvU3RyaWN0RXF1YWwoW1xuICAgICAge1xuICAgICAgICAnZW5lcmd5LWNwdSc6IDAuMTIyNDAwMDAwMDAwMDAwMDEsXG4gICAgICAgICduLWhvdXJzJzogMSxcbiAgICAgICAgJ24tY2hpcHMnOiAxLFxuICAgICAgICAndGhlcm1hbC1kZXNpZ24tcG93ZXInOiAxMjAsXG4gICAgICAgICd0ZHAtY29lZmYnOiAxLjAyLFxuICAgICAgfSxcbiAgICBdKTtcbiAgICBhd2FpdCBleHBlY3QobW9kZWwuZXhlY3V0ZShbe31dKSkucmVqZWN0cy50b1Rocm93RXJyb3IoKTtcbiAgICBhd2FpdCBleHBlY3QobW9kZWwuZXhlY3V0ZSh7fSkpLnJlamVjdHMudG9UaHJvd0Vycm9yKCk7XG4gICAgZXhwZWN0KG1vZGVsLmF1dGhlbnRpY2F0ZSh7dGVzdDogJ3Rlc3QnfSkpLnRvQmUodW5kZWZpbmVkKTtcblxuICAgIGNvbnN0IG1vZGVsMiA9IGF3YWl0IG5ldyBFc2hvcHBlbk1lbU1vZGVsKCkuY29uZmlndXJlKCdlc2hvcHBlbicsIHtcbiAgICAgIHR5cGU6ICdlbmVyZ3ktbWVtb3J5JyxcbiAgICB9KTtcbiAgICBleHBlY3QobW9kZWwyKS50b0JlSW5zdGFuY2VPZihFc2hvcHBlbk1lbU1vZGVsKTtcbiAgICBhd2FpdCBleHBlY3QoXG4gICAgICBtb2RlbDIuZXhlY3V0ZShbXG4gICAgICAgIHtcbiAgICAgICAgICAnbi1ob3Vycyc6IDEsXG4gICAgICAgICAgJ24tY2hpcHMnOiAxLFxuICAgICAgICAgICd0ZHAtbWVtJzogMSxcbiAgICAgICAgICAndGRwLWNvZWZmJzogMSxcbiAgICAgICAgfSxcbiAgICAgIF0pXG4gICAgKS5yZXNvbHZlcy50b1N0cmljdEVxdWFsKFtcbiAgICAgIHtcbiAgICAgICAgJ2VuZXJneS1tZW1vcnknOiAwLjAwMSxcbiAgICAgICAgJ24tY2hpcHMnOiAxLFxuICAgICAgICAnbi1ob3Vycyc6IDEsXG4gICAgICAgICd0ZHAtY29lZmYnOiAxLFxuICAgICAgICAndGRwLW1lbSc6IDEsXG4gICAgICB9LFxuICAgIF0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const globals_1 = require("@jest/globals");
|
|
4
|
+
const sci_accenture_model_1 = require("../../../../lib/case-studies/sci-accenture-model");
|
|
5
|
+
globals_1.jest.setTimeout(30000);
|
|
6
|
+
(0, globals_1.describe)('accenture:configure test', () => {
|
|
7
|
+
(0, globals_1.test)('initialize and test', async () => {
|
|
8
|
+
const model = await new sci_accenture_model_1.SciAccentureModel().configure('sci-accenture', {});
|
|
9
|
+
(0, globals_1.expect)(model).toBeInstanceOf(sci_accenture_model_1.SciAccentureModel);
|
|
10
|
+
await (0, globals_1.expect)(model.execute([
|
|
11
|
+
{
|
|
12
|
+
sci: 1,
|
|
13
|
+
},
|
|
14
|
+
])).resolves.toStrictEqual([
|
|
15
|
+
{
|
|
16
|
+
sci: 1,
|
|
17
|
+
sci_total: 1.05,
|
|
18
|
+
},
|
|
19
|
+
]);
|
|
20
|
+
await (0, globals_1.expect)(model.execute([{}])).rejects.toThrowError();
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NpLWFjY2VudHVyZS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL19fdGVzdHNfXy91bml0L2xpYi9jYXNlLXN0dWRpZXMvc2NpLWFjY2VudHVyZS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMkNBQTJEO0FBQzNELDBGQUFtRjtBQUVuRixjQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBRXZCLElBQUEsa0JBQVEsRUFBQywwQkFBMEIsRUFBRSxHQUFHLEVBQUU7SUFDeEMsSUFBQSxjQUFJLEVBQUMscUJBQXFCLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDckMsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLHVDQUFpQixFQUFFLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMzRSxJQUFBLGdCQUFNLEVBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLHVDQUFpQixDQUFDLENBQUM7UUFDaEQsTUFBTSxJQUFBLGdCQUFNLEVBQ1YsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUNaO2dCQUNFLEdBQUcsRUFBRSxDQUFDO2FBQ1A7U0FDRixDQUFDLENBQ0gsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO1lBQ3ZCO2dCQUNFLEdBQUcsRUFBRSxDQUFDO2dCQUNOLFNBQVMsRUFBRSxJQUFJO2FBQ2hCO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxJQUFBLGdCQUFNLEVBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0QsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZGVzY3JpYmUsIGV4cGVjdCwgamVzdCwgdGVzdH0gZnJvbSAnQGplc3QvZ2xvYmFscyc7XG5pbXBvcnQge1NjaUFjY2VudHVyZU1vZGVsfSBmcm9tICcuLi8uLi8uLi8uLi9saWIvY2FzZS1zdHVkaWVzL3NjaS1hY2NlbnR1cmUtbW9kZWwnO1xuXG5qZXN0LnNldFRpbWVvdXQoMzAwMDApO1xuXG5kZXNjcmliZSgnYWNjZW50dXJlOmNvbmZpZ3VyZSB0ZXN0JywgKCkgPT4ge1xuICB0ZXN0KCdpbml0aWFsaXplIGFuZCB0ZXN0JywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IG1vZGVsID0gYXdhaXQgbmV3IFNjaUFjY2VudHVyZU1vZGVsKCkuY29uZmlndXJlKCdzY2ktYWNjZW50dXJlJywge30pO1xuICAgIGV4cGVjdChtb2RlbCkudG9CZUluc3RhbmNlT2YoU2NpQWNjZW50dXJlTW9kZWwpO1xuICAgIGF3YWl0IGV4cGVjdChcbiAgICAgIG1vZGVsLmV4ZWN1dGUoW1xuICAgICAgICB7XG4gICAgICAgICAgc2NpOiAxLFxuICAgICAgICB9LFxuICAgICAgXSlcbiAgICApLnJlc29sdmVzLnRvU3RyaWN0RXF1YWwoW1xuICAgICAge1xuICAgICAgICBzY2k6IDEsXG4gICAgICAgIHNjaV90b3RhbDogMS4wNSxcbiAgICAgIH0sXG4gICAgXSk7XG4gICAgYXdhaXQgZXhwZWN0KG1vZGVsLmV4ZWN1dGUoW3t9XSkpLnJlamVjdHMudG9UaHJvd0Vycm9yKCk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const globals_1 = require("@jest/globals");
|
|
4
|
+
const index_1 = require("../../../../lib/ccf/index");
|
|
5
|
+
globals_1.jest.setTimeout(30000);
|
|
6
|
+
(0, globals_1.describe)('ccf:configure test', () => {
|
|
7
|
+
(0, globals_1.test)('initialize with params', async () => {
|
|
8
|
+
const outputModel = new index_1.CloudCarbonFootprint();
|
|
9
|
+
await (0, globals_1.expect)(outputModel.configure('test', {
|
|
10
|
+
vendor: 'aws2',
|
|
11
|
+
'instance-type': 't2.micro',
|
|
12
|
+
})).rejects.toThrowError();
|
|
13
|
+
(0, globals_1.expect)(outputModel.resolveAwsArchitecture('Graviton')).toStrictEqual('Graviton');
|
|
14
|
+
try {
|
|
15
|
+
outputModel.resolveAwsArchitecture('Gra2');
|
|
16
|
+
}
|
|
17
|
+
catch (e) {
|
|
18
|
+
(0, globals_1.expect)(e.message).toBe('Gra2 not supported');
|
|
19
|
+
}
|
|
20
|
+
await outputModel.configure('test', {
|
|
21
|
+
vendor: 'aws',
|
|
22
|
+
'instance-type': 't2.micro',
|
|
23
|
+
});
|
|
24
|
+
await (0, globals_1.expect)(outputModel.execute([
|
|
25
|
+
{ duration: 3600, 'cpu-util': 50, timestamp: '2021-01-01T00:00:00Z' },
|
|
26
|
+
])).resolves.toStrictEqual([
|
|
27
|
+
{
|
|
28
|
+
duration: 3600,
|
|
29
|
+
'cpu-util': 50,
|
|
30
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
31
|
+
energy: 0.0023031270462730543,
|
|
32
|
+
'embodied-carbon': 0.04216723744292237 * 1000,
|
|
33
|
+
},
|
|
34
|
+
]);
|
|
35
|
+
await outputModel.configure('test', {
|
|
36
|
+
vendor: 'aws',
|
|
37
|
+
interpolation: 'spline',
|
|
38
|
+
'instance-type': 't2.micro',
|
|
39
|
+
});
|
|
40
|
+
await (0, globals_1.expect)(outputModel.execute([
|
|
41
|
+
{ duration: 3600, 'cpu-util': 50, timestamp: '2021-01-01T00:00:00Z' },
|
|
42
|
+
])).resolves.toStrictEqual([
|
|
43
|
+
{
|
|
44
|
+
'cpu-util': 50,
|
|
45
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
46
|
+
duration: 3600,
|
|
47
|
+
'embodied-carbon': 42.16723744292237,
|
|
48
|
+
energy: 0.004900000000000001,
|
|
49
|
+
},
|
|
50
|
+
]);
|
|
51
|
+
await (0, globals_1.expect)(outputModel.execute(undefined)).rejects.toThrowError();
|
|
52
|
+
await (0, globals_1.expect)(outputModel.execute({})).rejects.toThrowError();
|
|
53
|
+
});
|
|
54
|
+
(0, globals_1.test)('initialize with params:aws', async () => {
|
|
55
|
+
const outputModel = new index_1.CloudCarbonFootprint();
|
|
56
|
+
await outputModel.configure('test', {
|
|
57
|
+
vendor: 'aws',
|
|
58
|
+
'instance-type': 'm5n.large',
|
|
59
|
+
});
|
|
60
|
+
await (0, globals_1.expect)(outputModel.execute([
|
|
61
|
+
{
|
|
62
|
+
duration: 3600,
|
|
63
|
+
'cpu-util': 10,
|
|
64
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
duration: 3600,
|
|
68
|
+
'cpu-util': 50,
|
|
69
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
duration: 3600,
|
|
73
|
+
'cpu-util': 100,
|
|
74
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
75
|
+
},
|
|
76
|
+
])).resolves.toStrictEqual([
|
|
77
|
+
{
|
|
78
|
+
duration: 3600,
|
|
79
|
+
'cpu-util': 10,
|
|
80
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
81
|
+
energy: 0.0019435697915529846,
|
|
82
|
+
'embodied-carbon': 91.94006849315068,
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
duration: 3600,
|
|
86
|
+
'cpu-util': 50,
|
|
87
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
88
|
+
energy: 0.0046062540925461085,
|
|
89
|
+
'embodied-carbon': 91.94006849315068,
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
duration: 3600,
|
|
93
|
+
'cpu-util': 100,
|
|
94
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
95
|
+
energy: 0.007934609468787513,
|
|
96
|
+
'embodied-carbon': 91.94006849315068,
|
|
97
|
+
},
|
|
98
|
+
]);
|
|
99
|
+
});
|
|
100
|
+
(0, globals_1.test)('initialize with params:azure', async () => {
|
|
101
|
+
const outputModel = new index_1.CloudCarbonFootprint();
|
|
102
|
+
await outputModel.configure('test', {
|
|
103
|
+
vendor: 'azure',
|
|
104
|
+
'instance-type': 'D2 v4',
|
|
105
|
+
});
|
|
106
|
+
await (0, globals_1.expect)(outputModel.execute([
|
|
107
|
+
{
|
|
108
|
+
duration: 3600,
|
|
109
|
+
'cpu-util': 10,
|
|
110
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
duration: 3600,
|
|
114
|
+
'cpu-util': 50,
|
|
115
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
duration: 3600,
|
|
119
|
+
'cpu-util': 100,
|
|
120
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
121
|
+
},
|
|
122
|
+
])).resolves.toStrictEqual([
|
|
123
|
+
{
|
|
124
|
+
duration: 3600,
|
|
125
|
+
'cpu-util': 10,
|
|
126
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
127
|
+
energy: 0.0019435697915529846,
|
|
128
|
+
'embodied-carbon': 0.08179908675799086 * 1000,
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
duration: 3600,
|
|
132
|
+
'cpu-util': 50,
|
|
133
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
134
|
+
energy: 0.0046062540925461085,
|
|
135
|
+
'embodied-carbon': 0.08179908675799086 * 1000,
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
duration: 3600,
|
|
139
|
+
'cpu-util': 100,
|
|
140
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
141
|
+
energy: 0.007934609468787513,
|
|
142
|
+
'embodied-carbon': 0.08179908675799086 * 1000,
|
|
143
|
+
},
|
|
144
|
+
]);
|
|
145
|
+
});
|
|
146
|
+
(0, globals_1.test)('initialize with params:gcp', async () => {
|
|
147
|
+
const outputModel = new index_1.CloudCarbonFootprint();
|
|
148
|
+
await outputModel.configure('test', {
|
|
149
|
+
vendor: 'gcp',
|
|
150
|
+
'instance-type': 'n2-standard-2',
|
|
151
|
+
});
|
|
152
|
+
await (0, globals_1.expect)(outputModel.execute([
|
|
153
|
+
{
|
|
154
|
+
duration: 3600,
|
|
155
|
+
'cpu-util': 10,
|
|
156
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
duration: 3600,
|
|
160
|
+
'cpu-util': 50,
|
|
161
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
duration: 3600,
|
|
165
|
+
'cpu-util': 100,
|
|
166
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
167
|
+
},
|
|
168
|
+
])).resolves.toStrictEqual([
|
|
169
|
+
{
|
|
170
|
+
duration: 3600,
|
|
171
|
+
'cpu-util': 10,
|
|
172
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
173
|
+
energy: 0.0018785992503765141,
|
|
174
|
+
'embodied-carbon': 0.10778881278538813 * 1000,
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
duration: 3600,
|
|
178
|
+
'cpu-util': 50,
|
|
179
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
180
|
+
energy: 0.004281401386663755,
|
|
181
|
+
'embodied-carbon': 0.10778881278538813 * 1000,
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
duration: 3600,
|
|
185
|
+
'cpu-util': 100,
|
|
186
|
+
timestamp: '2021-01-01T00:00:00Z',
|
|
187
|
+
energy: 0.0072849040570228075,
|
|
188
|
+
'embodied-carbon': 0.10778881278538813 * 1000,
|
|
189
|
+
},
|
|
190
|
+
]);
|
|
191
|
+
});
|
|
192
|
+
(0, globals_1.test)('initialize with wrong params', async () => {
|
|
193
|
+
const outputModel = new index_1.CloudCarbonFootprint();
|
|
194
|
+
await (0, globals_1.expect)(outputModel.configure('test', {
|
|
195
|
+
vendor: 'aws',
|
|
196
|
+
'instance-type': 't5.micro',
|
|
197
|
+
})).rejects.toThrowError();
|
|
198
|
+
await (0, globals_1.expect)(outputModel.execute([
|
|
199
|
+
{ duration: 3600, 'cpu-util': 50, timestamp: '2021-01-01T00:00:00Z' },
|
|
200
|
+
])).rejects.toThrowError();
|
|
201
|
+
});
|
|
202
|
+
(0, globals_1.test)('initialize with wrong params', async () => {
|
|
203
|
+
const outputModel = new index_1.CloudCarbonFootprint();
|
|
204
|
+
await (0, globals_1.expect)(outputModel.configure('test', {
|
|
205
|
+
vendor: 'aws2',
|
|
206
|
+
'instance-type': 't2.micro',
|
|
207
|
+
})).rejects.toThrowError();
|
|
208
|
+
await (0, globals_1.expect)(outputModel.execute([
|
|
209
|
+
{ duration: 3600, 'cpu-util': 50, timestamp: '2021-01-01T00:00:00Z' },
|
|
210
|
+
])).rejects.toThrowError();
|
|
211
|
+
});
|
|
212
|
+
(0, globals_1.test)('initialize with correct params but wrong input', async () => {
|
|
213
|
+
const outputModel = new index_1.CloudCarbonFootprint();
|
|
214
|
+
await (0, globals_1.expect)(outputModel.configure('test', {
|
|
215
|
+
vendor: 'aws',
|
|
216
|
+
'instance-type': 't2.micro',
|
|
217
|
+
})).resolves.toBeInstanceOf(index_1.CloudCarbonFootprint);
|
|
218
|
+
await (0, globals_1.expect)(outputModel.execute([
|
|
219
|
+
{ duration: 3600, cpus: 1, timestamp: '2021-01-01T00:00:00Z' },
|
|
220
|
+
])).rejects.toThrowError();
|
|
221
|
+
});
|
|
222
|
+
});
|
|
223
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9fX3Rlc3RzX18vdW5pdC9saWIvY2NmL2luZGV4LnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwyQ0FBMkQ7QUFDM0QscURBQStEO0FBRS9ELGNBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7QUFFdkIsSUFBQSxrQkFBUSxFQUFDLG9CQUFvQixFQUFFLEdBQUcsRUFBRTtJQUNsQyxJQUFBLGNBQUksRUFBQyx3QkFBd0IsRUFBRSxLQUFLLElBQUksRUFBRTtRQUN4QyxNQUFNLFdBQVcsR0FBRyxJQUFJLDRCQUFvQixFQUFFLENBQUM7UUFFL0MsTUFBTSxJQUFBLGdCQUFNLEVBQ1YsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7WUFDNUIsTUFBTSxFQUFFLE1BQU07WUFDZCxlQUFlLEVBQUUsVUFBVTtTQUM1QixDQUFDLENBQ0gsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDekIsSUFBQSxnQkFBTSxFQUFDLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FDbEUsVUFBVSxDQUNYLENBQUM7UUFDRixJQUFJO1lBQ0YsV0FBVyxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzVDO1FBQUMsT0FBTyxDQUFNLEVBQUU7WUFDZixJQUFBLGdCQUFNLEVBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1NBQzlDO1FBQ0QsTUFBTSxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRTtZQUNsQyxNQUFNLEVBQUUsS0FBSztZQUNiLGVBQWUsRUFBRSxVQUFVO1NBQzVCLENBQUMsQ0FBQztRQUNILE1BQU0sSUFBQSxnQkFBTSxFQUNWLFdBQVcsQ0FBQyxPQUFPLENBQUM7WUFDbEIsRUFBQyxRQUFRLEVB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QUFDO0lBQzNCLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBQSxjQUFJLEVBQUMsZ0RBQWdELEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDaEUsTUFBTSxXQUFXLEdBQUcsSUFBSSw0QkFBb0IsRUFBRSxDQUFDO1FBQy9DLE1BQU0sSUFBQSxnQkFBTSxFQUNWLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQzVCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsZUFBZSxFQUFFLFVBQVU7U0FDNUIsQ0FBQyxDQUNILENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyw0QkFBb0IsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sSUFBQSxnQkFBTSxFQUNWLFdBQVcsQ0FBQyxPQUFPLENBQUM7WUFDbEIsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFDO1NBQzdELENBQUMsQ0FDSCxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMzQixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkZXNjcmliZSwgZXhwZWN0LCBqZXN0LCB0ZXN0fSBmcm9tICdAamVzdC9nbG9iYWxzJztcbmltcG9ydCB7Q2xvdWRDYXJib25Gb290cHJpbnR9IGZyb20gJy4uLy4uLy4uLy4uL2xpYi9jY2YvaW5kZXgnO1xuXG5qZXN0LnNldFRpbWVvdXQoMzAwMDApO1xuXG5kZXNjcmliZSgnY2NmOmNvbmZpZ3VyZSB0ZXN0JywgKCkgPT4ge1xuICB0ZXN0KCdpbml0aWFsaXplIHdpdGggcGFyYW1zJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IG91dHB1dE1vZGVsID0gbmV3IENsb3VkQ2FyYm9uRm9vdHByaW50KCk7XG5cbiAgICBhd2FpdCBleHBlY3QoXG4gICAgICBvdXRwdXRNb2RlbC5jb25maWd1cmUoJ3Rlc3QnLCB7XG4gICAgICAgIHZlbmRvcjogJ2F3czInLFxuICAgICAgICAnaW5zdGFuY2UtdHlwZSc6ICd0Mi5taWNybycsXG4gICAgICB9KVxuICAgICkucmVqZWN0cy50b1Rocm93RXJyb3IoKTtcbiAgICBleHBlY3Qob3V0cHV0TW9kZWwucmVzb2x2ZUF3c0FyY2hpdGVjdHVyZSgnR3Jhdml0b24nKSkudG9TdHJpY3RFcXVhbChcbiAgICAgICdHcmF2aXRvbidcbiAgICApO1xuICAgIHRyeSB7XG4gICAgICBvdXRwdXRNb2RlbC5yZXNvbHZlQXdzQXJjaGl0ZWN0dXJlKCdHcmEyJyk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBleHBlY3QoZS5tZXNzYWdlKS50b0JlKCdHcmEyIG5vdCBzdXBwb3J0ZWQnKTtcbiAgICB9XG4gICAgYXdhaXQgb3V0cHV0TW9kZWwuY29uZmlndXJlKCd0ZXN0Jywge1xuICAgICAgdmVuZG9yOiAnYXdzJyxcbiAgICAgICdpbnN0YW5jZS10eXBlJzogJ3QyLm1pY3JvJyxcbiAgICB9KTtcbiAgICBhd2FpdCBleHBlY3QoXG4gICAgICBvdXRwdXRNb2RlbC5leGVjdXRlKFtcbiAgICAgICAge2R1cmF0aW9uOiAzNjAwLCAnY3B1LXV0aWwnOiA1MCwgdGltZXN0YW1wOiAnMjAyMS0wMS0wMVQwMDowMDowMFonfSxcbiAgICAgIF0pXG4gICAgKS5yZXNvbHZlcy50b1N0cmljdEVxdWFsKFtcbiAgICAgIHtcbiAgICAgICAgZHVyYXRpb246IDM2MDAsXG4gICAgICAgICdjcHUtdXRpbCc6IDUwLFxuICAgICAgICB0aW1lc3RhbXA6ICcyMDIxLTAxLTAxVDAwOjAwOjAwWicsXG4gICAgICAgIGVuZXJneTogMC4wMDIzMDMxMjcwNDYyNzMwNTQzLFxuICAgICAgICAnZW1ib2RpZWQtY2FyYm9uJzogMC4wNDIxNjcyMzc0NDI5MjIzNyAqIDEwMDAsXG4gICAgICB9LFxuICAgIF0pO1xuICAgIGF3YWl0IG91dHB1dE1vZGVsLmNvbmZpZ3VyZSgndGVzdCcsIHtcbiAgICAgIHZlbmRvcjogJ2F3cycsXG4gICAgICBpbnRlcnBvbGF0aW9uOiAnc3BsaW5lJyxcbiAgICAgICdpbnN0YW5jZS10eXBlJzogJ3QyLm1pY3JvJyxcbiAgICB9KTtcbiAgICBhd2FpdCBleHBlY3QoXG4gICAgICBvdXRwdXRNb2RlbC5leGVjdXRlKFtcbiAgICAgICAge2R1cmF0aW9uOiAzNjAwLCAnY3B1LXV0aWwnOiA1MCwgdGltZXN0YW1wOiAnMjAyMS0wMS0wMVQwMDowMDowMFonfSxcbiAgICAgIF0pXG4gICAgKS5yZXNvbHZlcy50b1N0cmljdEVxdWFsKFtcbiAgICAgIHtcbiAgICAgICAgJ2NwdS11dGlsJzogNTAsXG4gICAgICAgIHRpbWVzdGFtcDogJzIwMjEtMDEtMDFUMDA6MDA6MDBaJyxcbiAgICAgICAgZHVyYXRpb246IDM2MDAsXG4gICAgICAgICdlbWJvZGllZC1jYXJib24nOiA0Mi4xNjcyMzc0NDI5MjIzNyxcbiAgICAgICAgZW5lcmd5OiAwLjAwNDkwMDAwMDAwMDAwMDAwMSxcbiAgICAgIH0sXG4gICAgXSk7XG4gICAgYXdhaXQgZXhwZWN0KG91dHB1dE1vZGVsLmV4ZWN1dGUodW5kZWZpbmVkKSkucmVqZWN0cy50b1Rocm93RXJyb3IoKTtcbiAgICBhd2FpdCBleHBlY3Qob3V0cHV0TW9kZWwuZXhlY3V0ZSh7fSkpLnJlamVjdHMudG9UaHJvd0Vycm9yKCk7XG4gIH0pO1xuICB0ZXN0KCdpbml0aWFsaXplIHdpdGggcGFyYW1zOmF3cycsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBvdXRwdXRNb2RlbCA9IG5ldyBDbG91ZENhcmJvbkZvb3RwcmludCgpO1xuICAgIGF3YWl0IG91dHB1dE1vZGVsLmNvbmZpZ3VyZSgndGVzdCcsIHtcbiAgICAgIHZlbmRvcjogJ2F3cycsXG4gICAgICAnaW5zdGFuY2UtdHlwZSc6ICdtNW4ubGFyZ2UnLFxuICAgIH0pO1xuICAgIGF3YWl0IGV4cGVjdChcbiAgICAgIG91dHB1dE1vZGVsLmV4ZWN1dGUoW1xuICAgICAgICB7XG4gICAgICAgICAgZHVyYXRpb246IDM2MDAsXG4gICAgICAgICAgJ2NwdS11dGlsJzogMTAsXG4gICAgICAgICAgdGltZXN0YW1wOiAnMjAyMS0wMS0wMVQwMDowMDowMFonLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgZHVyYXRpb246IDM2MDAsXG4gICAgICAgICAgJ2NwdS11dGlsJzogNTAsXG4gICAgICAgICAgdGltZXN0YW1wOiAnMjAyMS0wMS0wMVQwMDowMDowMFonLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgZHVyYXRpb246IDM2MDAsXG4gICAgICAgICAgJ2NwdS11dGlsJzogMTAwLFxuICAgICAgICAgIHRpbWVzdGFtcDogJzIwMjEtMDEtMDFUMDA6MDA6MDBaJyxcbiAgICAgICAgfSxcbiAgICAgIF0pXG4gICAgKS5yZXNvbHZlcy50b1N0cmljdEVxdWFsKFtcbiAgICAgIHtcbiAgICAgICAgZHVyYXRpb246IDM2MDAsXG4gICAgICAgICdjcHUtdXRpbCc6IDEwLFxuICAgICAgICB0aW1lc3RhbXA6ICcyMDIxLTAxLTAxVDAwOjAwOjAwWicsXG4gICAgICAgIGVuZXJneTogMC4wMDE5NDM1Njk3OTE1NTI5ODQ2LFxuICAgICAgICAnZW1ib2RpZWQtY2FyYm9uJzogOTEuOTQwMDY4NDkzMTUwNjgsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBkdXJhdGlvbjogMzYwMCxcbiAgICAgICAgJ2NwdS11dGlsJzogNTAsXG4gICAgICAgIHRpbWVzdGFtcDogJzIwMjEtMDEtMDFUMDA6MDA6MDBaJyxcbiAgICAgICAgZW5lcmd5OiAwLjAwNDYwNjI1NDA5MjU0NjEwODUsXG4gICAgICAgICdlbWJvZGllZC1jYXJib24nOiA5MS45NDAwNjg0OTMxNTA2OCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGR1cmF0aW9uOiAzNjAwLFxuICAgICAgICAnY3B1LXV0aWwnOiAxMDAsXG4gICAgICAgIHRpbWVzdGFtcDogJzIwMjEtMDEtMDFUMDA6MDA6MDBaJyxcbiAgICAgICAgZW5lcmd5OiAwLjAwNzkzNDYwOTQ2ODc4NzUxMyxcbiAgICAgICAgJ2VtYm9kaWVkLWNhcmJvbic6IDkxLjk0MDA2ODQ5MzE1MDY4LFxuICAgICAgfSxcbiAgICBdKTtcbiAgfSk7XG4gIHRlc3QoJ2luaXRpYWxpemUgd2l0aCBwYXJhbXM6YXp1cmUnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3Qgb3V0cHV0TW9kZWwgPSBuZXcgQ2xvdWRDYXJib25Gb290cHJpbnQoKTtcbiAgICBhd2FpdCBvdXRwdXRNb2RlbC5jb25maWd1cmUoJ3Rlc3QnLCB7XG4gICAgICB2ZW5kb3I6ICdhenVyZScsXG4gICAgICAnaW5zdGFuY2UtdHlwZSc6ICdEMiB2NCcsXG4gICAgfSk7XG4gICAgYXdhaXQgZXhwZWN0KFxuICAgICAgb3V0cHV0TW9kZWwuZXhlY3V0ZShbXG4gICAgICAgIHtcbiAgICAgICAgICBkdXJhdGlvbjogMzYwMCxcbiAgICAgICAgICAnY3B1LXV0aWwnOiAxMCxcbiAgICAgICAgICB0aW1lc3RhbXA6ICcyMDIxLTAxLTAxVDAwOjAwOjAwWicsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBkdXJhdGlvbjogMzYwMCxcbiAgICAgICAgICAnY3B1LXV0aWwnOiA1MCxcbiAgICAgICAgICB0aW1lc3RhbXA6ICcyMDIxLTAxLTAxVDAwOjAwOjAwWicsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBkdXJhdGlvbjogMzYwMCxcbiAgICAgICAgICAnY3B1LXV0aWwnOiAxMDAsXG4gICAgICAgICAgdGltZXN0YW1wOiAnMjAyMS0wMS0wMVQwMDowMDowMFonLFxuICAgICAgICB9LFxuICAgICAgXSlcbiAgICApLnJlc29sdmVzLnRvU3RyaWN0RXF1YWwoW1xuICAgICAge1xuICAgICAgICBkdXJhdGlvbjogMzYwMCxcbiAgICAgICAgJ2NwdS11dGlsJzogMTAsXG4gICAgICAgIHRpbWVzdGFtcDogJzIwMjEtMDEtMDFUMDA6MDA6MDBaJyxcbiAgICAgICAgZW5lcmd5OiAwLjAwMTk0MzU2OTc5MTU1Mjk4NDYsXG4gICAgICAgICdlbWJvZGllZC1jYXJib24nOiAwLjA4MTc5OTA4Njc1Nzk5MDg2ICogMTAwMCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGR1cmF0aW9uOiAzNjAwLFxuICAgICAgICAnY3B1LXV0aWwnOiA1MCxcbiAgICAgICAgdGltZXN0YW1wOiAnMjAyMS0wMS0wMVQwMDowMDowMFonLFxuICAgICAgICBlbmVyZ3k6IDAuMDA0NjA2MjU0MDkyNTQ2MTA4NSxcbiAgICAgICAgJ2VtYm9kaWVkLWNhcmJvbic6IDAuMDgxNzk5MDg2NzU3OTkwODYgKiAxMDAwLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgZHVyYXRpb246IDM2MDAsXG4gICAgICAgICdjcHUtdXRpbCc6IDEwMCxcbiAgICAgICAgdGltZXN0YW1wOiAnMjAyMS0wMS0wMVQwMDowMDowMFonLFxuICAgICAgICBlbmVyZ3k6IDAuMDA3OTM0NjA5NDY4Nzg3NTEzLFxuICAgICAgICAnZW1ib2RpZWQtY2FyYm9uJzogMC4wODE3OTkwODY3NTc5OTA4NiAqIDEwMDAsXG4gICAgICB9LFxuICAgIF0pO1xuICB9KTtcbiAgdGVzdCgnaW5pdGlhbGl6ZSB3aXRoIHBhcmFtczpnY3AnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3Qgb3V0cHV0TW9kZWwgPSBuZXcgQ2xvdWRDYXJib25Gb290cHJpbnQoKTtcbiAgICBhd2FpdCBvdXRwdXRNb2RlbC5jb25maWd1cmUoJ3Rlc3QnLCB7XG4gICAgICB2ZW5kb3I6ICdnY3AnLFxuICAgICAgJ2luc3RhbmNlLXR5cGUnOiAnbjItc3RhbmRhcmQtMicsXG4gICAgfSk7XG4gICAgYXdhaXQgZXhwZWN0KFxuICAgICAgb3V0cHV0TW9kZWwuZXhlY3V0ZShbXG4gICAgICAgIHtcbiAgICAgICAgICBkdXJhdGlvbjogMzYwMCxcbiAgICAgICAgICAnY3B1LXV0aWwnOiAxMCxcbiAgICAgICAgICB0aW1lc3RhbXA6ICcyMDIxLTAxLTAxVDAwOjAwOjAwWicsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBkdXJhdGlvbjogMzYwMCxcbiAgICAgICAgICAnY3B1LXV0aWwnOiA1MCxcbiAgICAgICAgICB0aW1lc3RhbXA6ICcyMDIxLTAxLTAxVDAwOjAwOjAwWicsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBkdXJhdGlvbjogMzYwMCxcbiAgICAgICAgICAnY3B1LXV0aWwnOiAxMDAsXG4gICAgICAgICAgdGltZXN0YW1wOiAnMjAyMS0wMS0wMVQwMDowMDowMFonLFxuICAgICAgICB9LFxuICAgICAgXSlcbiAgICApLnJlc29sdmVzLnRvU3RyaWN0RXF1YWwoW1xuICAgICAge1xuICAgICAgICBkdXJhdGlvbjogMzYwMCxcbiAgICAgICAgJ2NwdS11dGlsJzogMTAsXG4gICAgICAgIHRpbWVzdGFtcDogJzIwMjEtMDEtMDFUMDA6MDA6MDBaJyxcbiAgICAgICAgZW5lcmd5OiAwLjAwMTg3ODU5OTI1MDM3NjUxNDEsXG4gICAgICAgICdlbWJvZGllZC1jYXJib24nOiAwLjEwNzc4ODgxMjc4NTM4ODEzICogMTAwMCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGR1cmF0aW9uOiAzNjAwLFxuICAgICAgICAnY3B1LXV0aWwnOiA1MCxcbiAgICAgICAgdGltZXN0YW1wOiAnMjAyMS0wMS0wMVQwMDowMDowMFonLFxuICAgICAgICBlbmVyZ3k6IDAuMDA0MjgxNDAxMzg2NjYzNzU1LFxuICAgICAgICAnZW1ib2RpZWQtY2FyYm9uJzogMC4xMDc3ODg4MTI3ODUzODgxMyAqIDEwMDAsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBkdXJhdGlvbjogMzYwMCxcbiAgICAgICAgJ2NwdS11dGlsJzogMTAwLFxuICAgICAgICB0aW1lc3RhbXA6ICcyMDIxLTAxLTAxVDAwOjAwOjAwWicsXG4gICAgICAgIGVuZXJneTogMC4wMDcyODQ5MDQwNTcwMjI4MDc1LFxuICAgICAgICAnZW1ib2RpZWQtY2FyYm9uJzogMC4xMDc3ODg4MTI3ODUzODgxMyAqIDEwMDAsXG4gICAgICB9LFxuICAgIF0pO1xuICB9KTtcblxuICB0ZXN0KCdpbml0aWFsaXplIHdpdGggd3JvbmcgcGFyYW1zJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IG91dHB1dE1vZGVsID0gbmV3IENsb3VkQ2FyYm9uRm9vdHByaW50KCk7XG4gICAgYXdhaXQgZXhwZWN0KFxuICAgICAgb3V0cHV0TW9kZWwuY29uZmlndXJlKCd0ZXN0Jywge1xuICAgICAgICB2ZW5kb3I6ICdhd3MnLFxuICAgICAgICAnaW5zdGFuY2UtdHlwZSc6ICd0NS5taWNybycsXG4gICAgICB9KVxuICAgICkucmVqZWN0cy50b1Rocm93RXJyb3IoKTtcbiAgICBhd2FpdCBleHBlY3QoXG4gICAgICBvdXRwdXRNb2RlbC5leGVjdXRlKFtcbiAgICAgICAge2R1cmF0aW9uOiAzNjAwLCAnY3B1LXV0aWwnOiA1MCwgdGltZXN0YW1wOiAnMjAyMS0wMS0wMVQwMDowMDowMFonfSxcbiAgICAgIF0pXG4gICAgKS5yZWplY3RzLnRvVGhyb3dFcnJvcigpO1xuICB9KTtcbiAgdGVzdCgnaW5pdGlhbGl6ZSB3aXRoIHdyb25nIHBhcmFtcycsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBvdXRwdXRNb2RlbCA9IG5ldyBDbG91ZENhcmJvbkZvb3RwcmludCgpO1xuICAgIGF3YWl0IGV4cGVjdChcbiAgICAgIG91dHB1dE1vZGVsLmNvbmZpZ3VyZSgndGVzdCcsIHtcbiAgICAgICAgdmVuZG9yOiAnYXdzMicsXG4gICAgICAgICdpbnN0YW5jZS10eXBlJzogJ3QyLm1pY3JvJyxcbiAgICAgIH0pXG4gICAgKS5yZWplY3RzLnRvVGhyb3dFcnJvcigpO1xuICAgIGF3YWl0IGV4cGVjdChcbiAgICAgIG91dHB1dE1vZGVsLmV4ZWN1dGUoW1xuICAgICAgICB7ZHVyYXRpb246IDM2MDAsICdjcHUtdXRpbCc6IDUwLCB0aW1lc3RhbXA6ICcyMDIxLTAxLTAxVDAwOjAwOjAwWid9LFxuICAgICAgXSlcbiAgICApLnJlamVjdHMudG9UaHJvd0Vycm9yKCk7XG4gIH0pO1xuXG4gIHRlc3QoJ2luaXRpYWxpemUgd2l0aCBjb3JyZWN0IHBhcmFtcyBidXQgd3JvbmcgaW5wdXQnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3Qgb3V0cHV0TW9kZWwgPSBuZXcgQ2xvdWRDYXJib25Gb290cHJpbnQoKTtcbiAgICBhd2FpdCBleHBlY3QoXG4gICAgICBvdXRwdXRNb2RlbC5jb25maWd1cmUoJ3Rlc3QnLCB7XG4gICAgICAgIHZlbmRvcjogJ2F3cycsXG4gICAgICAgICdpbnN0YW5jZS10eXBlJzogJ3QyLm1pY3JvJyxcbiAgICAgIH0pXG4gICAgKS5yZXNvbHZlcy50b0JlSW5zdGFuY2VPZihDbG91ZENhcmJvbkZvb3RwcmludCk7XG4gICAgYXdhaXQgZXhwZWN0KFxuICAgICAgb3V0cHV0TW9kZWwuZXhlY3V0ZShbXG4gICAgICAgIHtkdXJhdGlvbjogMzYwMCwgY3B1czogMSwgdGltZXN0YW1wOiAnMjAyMS0wMS0wMVQwMDowMDowMFonfSxcbiAgICAgIF0pXG4gICAgKS5yZWplY3RzLnRvVGhyb3dFcnJvcigpO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const globals_1 = require("@jest/globals");
|
|
4
|
+
const index_1 = require("../../../../lib/cloud-instance-metadata/index");
|
|
5
|
+
globals_1.jest.setTimeout(30000);
|
|
6
|
+
(0, globals_1.describe)('cimd:configure test:aws', () => {
|
|
7
|
+
(0, globals_1.test)('initialize and test:aws', async () => {
|
|
8
|
+
const model = await new index_1.CloudInstanceMetadataModel().configure('cimd', {});
|
|
9
|
+
(0, globals_1.expect)(model).toBeInstanceOf(index_1.CloudInstanceMetadataModel);
|
|
10
|
+
await (0, globals_1.expect)(model.execute([
|
|
11
|
+
{
|
|
12
|
+
'cloud-instance-type': 'm5n.large',
|
|
13
|
+
'cloud-vendor': 'aws',
|
|
14
|
+
},
|
|
15
|
+
])).resolves.toStrictEqual(globals_1.expect.arrayContaining([
|
|
16
|
+
{
|
|
17
|
+
'cloud-instance-type': 'm5n.large',
|
|
18
|
+
'cloud-vendor': 'aws',
|
|
19
|
+
'physical-processor': 'Intel Xeon Platinum 8259CL',
|
|
20
|
+
'vcpus-allocated': '2',
|
|
21
|
+
'vcpus-total': '96',
|
|
22
|
+
'memory-available': '8',
|
|
23
|
+
},
|
|
24
|
+
]));
|
|
25
|
+
await (0, globals_1.expect)(model.execute([
|
|
26
|
+
{
|
|
27
|
+
'cloud-instance-type': 't2.micro',
|
|
28
|
+
'cloud-vendor': 'aws2',
|
|
29
|
+
},
|
|
30
|
+
])).rejects.toThrowError('cloud-vendor: Only `aws`/`azure` is currently supported');
|
|
31
|
+
await (0, globals_1.expect)(model.execute([
|
|
32
|
+
{
|
|
33
|
+
'cloud-instance-type': 't2.micro2',
|
|
34
|
+
'cloud-vendor': 'aws',
|
|
35
|
+
},
|
|
36
|
+
])).rejects.toThrowError('cloud-instance-type: t2.micro2 is not supported in vendor: aws');
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
(0, globals_1.describe)('cimd:configure test:azure', () => {
|
|
40
|
+
(0, globals_1.test)('initialize and test', async () => {
|
|
41
|
+
const model = await new index_1.CloudInstanceMetadataModel().configure('cimd', {});
|
|
42
|
+
(0, globals_1.expect)(model).toBeInstanceOf(index_1.CloudInstanceMetadataModel);
|
|
43
|
+
await (0, globals_1.expect)(model.execute([
|
|
44
|
+
{
|
|
45
|
+
'cloud-instance-type': 'Standard_NC24s_v3',
|
|
46
|
+
'cloud-vendor': 'azure',
|
|
47
|
+
},
|
|
48
|
+
])).resolves.toStrictEqual(globals_1.expect.arrayContaining([
|
|
49
|
+
{
|
|
50
|
+
'cloud-instance-type': 'Standard_NC24s_v3',
|
|
51
|
+
'cloud-vendor': 'azure',
|
|
52
|
+
'physical-processor': 'Intel Xeon E5-2690 v4',
|
|
53
|
+
'vcpus-allocated': '24',
|
|
54
|
+
'vcpus-total': '28',
|
|
55
|
+
'memory-available': '448',
|
|
56
|
+
'thermal-design-power': '135',
|
|
57
|
+
},
|
|
58
|
+
]));
|
|
59
|
+
await (0, globals_1.expect)(model.execute([
|
|
60
|
+
{
|
|
61
|
+
'cloud-instance-type': 't2.micro',
|
|
62
|
+
'cloud-vendor': 'aws2',
|
|
63
|
+
},
|
|
64
|
+
])).rejects.toThrowError('cloud-vendor: Only `aws`/`azure` is currently supported');
|
|
65
|
+
await (0, globals_1.expect)(model.execute([
|
|
66
|
+
{
|
|
67
|
+
'cloud-instance-type': 't2.micro2',
|
|
68
|
+
'cloud-vendor': 'azure',
|
|
69
|
+
},
|
|
70
|
+
])).rejects.toThrowError('cloud-instance-type: t2.micro2 is not supported in vendor: azure');
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9fX3Rlc3RzX18vdW5pdC9saWIvY2xvdWQtaW5zdGFuY2UtbWV0YWRhdGEvaW5kZXgudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDJDQUEyRDtBQUMzRCx5RUFBeUY7QUFFekYsY0FBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUV2QixJQUFBLGtCQUFRLEVBQUMseUJBQXlCLEVBQUUsR0FBRyxFQUFFO0lBQ3ZDLElBQUEsY0FBSSxFQUFDLHlCQUF5QixFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3pDLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxrQ0FBMEIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDM0UsSUFBQSxnQkFBTSxFQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxrQ0FBMEIsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sSUFBQSxnQkFBTSxFQUNWLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDWjtnQkFDRSxxQkFBcUIsRUFBRSxXQUFXO2dCQUNsQyxjQUFjLEVBQUUsS0FBSzthQUN0QjtTQUNGLENBQUMsQ0FDSCxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQ3RCLGdCQUFNLENBQUMsZUFBZSxDQUFDO1lBQ3JCO2dCQUNFLHFCQUFxQixFQUFFLFdBQVc7Z0JBQ2xDLGNBQWMsRUFBRSxLQUFLO2dCQUNyQixvQkFBb0IsRUFBRSw0QkFBNEI7Z0JBQ2xELGlCQUFpQixFQUFFLEdBQUc7Z0JBQ3RCLGFBQWEsRUFBRSxJQUFJO2dCQUNuQixrQkFBa0IsRUFBRSxHQUFHO2FBQ3hCO1NBQ0YsQ0FBQyxDQUNILENBQUM7UUFDRixNQUFNLElBQUEsZ0JBQU0sRUFDVixLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ1o7Z0JBQ0UscUJBQXFCLEVBQUUsVUFBVTtnQkFDakMsY0FBYyxFQUFFLE1BQU07YUFDdkI7U0FDRixDQUFDLENBQ0gsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUNwQix5REFBeUQsQ0FDMUQsQ0FBQztRQUNGLE1BQU0sSUFBQSxnQkFBTSxFQUNWLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDWjtnQkFDRSxxQkFBcUIsRUFBRSxXQUFXO2dCQUNsQyxjQUFjLEVBQUUsS0FBSzthQUN0QjtTQUNGLENBQUMsQ0FDSCxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQ3BCLGdFQUFnRSxDQUNqRSxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQztBQUVILElBQUEsa0JBQVEsRUFBQywyQkFBMkIsRUFBRSxHQUFHLEVBQUU7SUFDekMsSUFBQSxjQUFJLEVBQUMscUJBQXFCLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDckMsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLGtDQUEwQixFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMzRSxJQUFBLGdCQUFNLEVBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLGtDQUEwQixDQUFDLENBQUM7UUFDekQsTUFBTSxJQUFBLGdCQUFNLEVBQ1YsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUNaO2dCQUNFLHFCQUFxQixFQUFFLG1CQUFtQjtnQkFDMUMsY0FBYyxFQUFFLE9BQU87YUFDeEI7U0FDRixDQUFDLENBQ0gsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUN0QixnQkFBTSxDQUFDLGVBQWUsQ0FBQztZQUNyQjtnQkFDRSxxQkFBcUIsRUFBRSxtQkFBbUI7Z0JBQzFDLGNBQWMsRUFBRSxPQUFPO2dCQUN2QixvQkFBb0IsRUFBRSx1QkFBdUI7Z0JBQzdDLGlCQUFpQixFQUFFLElBQUk7Z0JBQ3ZCLGFBQWEsRUFBRSxJQUFJO2dCQUNuQixrQkFBa0IsRUFBRSxLQUFLO2dCQUN6QixzQkFBc0IsRUFBRSxLQUFLO2FBQzlCO1NBQ0YsQ0FBQyxDQUNILENBQUM7UUFDRixNQUFNLElBQUEsZ0JBQU0sRUFDVixLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ1o7Z0JBQ0UscUJBQXFCLEVBQUUsVUFBVTtnQkFDakMsY0FBYyxFQUFFLE1BQU07YUFDdkI7U0FDRixDQUFDLENBQ0gsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUNwQix5REFBeUQsQ0FDMUQsQ0FBQztRQUNGLE1BQU0sSUFBQSxnQkFBTSxFQUNWLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDWjtnQkFDRSxxQkFBcUIsRUFBRSxXQUFXO2dCQUNsQyxjQUFjLEVBQUUsT0FBTzthQUN4QjtTQUNGLENBQUMsQ0FDSCxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQ3BCLGtFQUFrRSxDQUNuRSxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZGVzY3JpYmUsIGV4cGVjdCwgamVzdCwgdGVzdH0gZnJvbSAnQGplc3QvZ2xvYmFscyc7XG5pbXBvcnQge0Nsb3VkSW5zdGFuY2VNZXRhZGF0YU1vZGVsfSBmcm9tICcuLi8uLi8uLi8uLi9saWIvY2xvdWQtaW5zdGFuY2UtbWV0YWRhdGEvaW5kZXgnO1xuXG5qZXN0LnNldFRpbWVvdXQoMzAwMDApO1xuXG5kZXNjcmliZSgnY2ltZDpjb25maWd1cmUgdGVzdDphd3MnLCAoKSA9PiB7XG4gIHRlc3QoJ2luaXRpYWxpemUgYW5kIHRlc3Q6YXdzJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IG1vZGVsID0gYXdhaXQgbmV3IENsb3VkSW5zdGFuY2VNZXRhZGF0YU1vZGVsKCkuY29uZmlndXJlKCdjaW1kJywge30pO1xuICAgIGV4cGVjdChtb2RlbCkudG9CZUluc3RhbmNlT2YoQ2xvdWRJbnN0YW5jZU1ldGFkYXRhTW9kZWwpO1xuICAgIGF3YWl0IGV4cGVjdChcbiAgICAgIG1vZGVsLmV4ZWN1dGUoW1xuICAgICAgICB7XG4gICAgICAgICAgJ2Nsb3VkLWluc3RhbmNlLXR5cGUnOiAnbTVuLmxhcmdlJyxcbiAgICAgICAgICAnY2xvdWQtdmVuZG9yJzogJ2F3cycsXG4gICAgICAgIH0sXG4gICAgICBdKVxuICAgICkucmVzb2x2ZXMudG9TdHJpY3RFcXVhbChcbiAgICAgIGV4cGVjdC5hcnJheUNvbnRhaW5pbmcoW1xuICAgICAgICB7XG4gICAgICAgICAgJ2Nsb3VkLWluc3RhbmNlLXR5cGUnOiAnbTVuLmxhcmdlJyxcbiAgICAgICAgICAnY2xvdWQtdmVuZG9yJzogJ2F3cycsXG4gICAgICAgICAgJ3BoeXNpY2FsLXByb2Nlc3Nvcic6ICdJbnRlbCBYZW9uIFBsYXRpbnVtIDgyNTlDTCcsXG4gICAgICAgICAgJ3ZjcHVzLWFsbG9jYXRlZCc6ICcyJyxcbiAgICAgICAgICAndmNwdXMtdG90YWwnOiAnOTYnLFxuICAgICAgICAgICdtZW1vcnktYXZhaWxhYmxlJzogJzgnLFxuICAgICAgICB9LFxuICAgICAgXSlcbiAgICApO1xuICAgIGF3YWl0IGV4cGVjdChcbiAgICAgIG1vZGVsLmV4ZWN1dGUoW1xuICAgICAgICB7XG4gICAgICAgICAgJ2Nsb3VkLWluc3RhbmNlLXR5cGUnOiAndDIubWljcm8nLFxuICAgICAgICAgICdjbG91ZC12ZW5kb3InOiAnYXdzMicsXG4gICAgICAgIH0sXG4gICAgICBdKVxuICAgICkucmVqZWN0cy50b1Rocm93RXJyb3IoXG4gICAgICAnY2xvdWQtdmVuZG9yOiBPbmx5IGBhd3NgL2BhenVyZWAgaXMgY3VycmVudGx5IHN1cHBvcnRlZCdcbiAgICApO1xuICAgIGF3YWl0IGV4cGVjdChcbiAgICAgIG1vZGVsLmV4ZWN1dGUoW1xuICAgICAgICB7XG4gICAgICAgICAgJ2Nsb3VkLWluc3RhbmNlLXR5cGUnOiAndDIubWljcm8yJyxcbiAgICAgICAgICAnY2xvdWQtdmVuZG9yJzogJ2F3cycsXG4gICAgICAgIH0sXG4gICAgICBdKVxuICAgICkucmVqZWN0cy50b1Rocm93RXJyb3IoXG4gICAgICAnY2xvdWQtaW5zdGFuY2UtdHlwZTogdDIubWljcm8yIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdmVuZG9yOiBhd3MnXG4gICAgKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ2NpbWQ6Y29uZmlndXJlIHRlc3Q6YXp1cmUnLCAoKSA9PiB7XG4gIHRlc3QoJ2luaXRpYWxpemUgYW5kIHRlc3QnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgbW9kZWwgPSBhd2FpdCBuZXcgQ2xvdWRJbnN0YW5jZU1ldGFkYXRhTW9kZWwoKS5jb25maWd1cmUoJ2NpbWQnLCB7fSk7XG4gICAgZXhwZWN0KG1vZGVsKS50b0JlSW5zdGFuY2VPZihDbG91ZEluc3RhbmNlTWV0YWRhdGFNb2RlbCk7XG4gICAgYXdhaXQgZXhwZWN0KFxuICAgICAgbW9kZWwuZXhlY3V0ZShbXG4gICAgICAgIHtcbiAgICAgICAgICAnY2xvdWQtaW5zdGFuY2UtdHlwZSc6ICdTdGFuZGFyZF9OQzI0c192MycsXG4gICAgICAgICAgJ2Nsb3VkLXZlbmRvcic6ICdhenVyZScsXG4gICAgICAgIH0sXG4gICAgICBdKVxuICAgICkucmVzb2x2ZXMudG9TdHJpY3RFcXVhbChcbiAgICAgIGV4cGVjdC5hcnJheUNvbnRhaW5pbmcoW1xuICAgICAgICB7XG4gICAgICAgICAgJ2Nsb3VkLWluc3RhbmNlLXR5cGUnOiAnU3RhbmRhcmRfTkMyNHNfdjMnLFxuICAgICAgICAgICdjbG91ZC12ZW5kb3InOiAnYXp1cmUnLFxuICAgICAgICAgICdwaHlzaWNhbC1wcm9jZXNzb3InOiAnSW50ZWwgWGVvbiBFNS0yNjkwIHY0JyxcbiAgICAgICAgICAndmNwdXMtYWxsb2NhdGVkJzogJzI0JyxcbiAgICAgICAgICAndmNwdXMtdG90YWwnOiAnMjgnLFxuICAgICAgICAgICdtZW1vcnktYXZhaWxhYmxlJzogJzQ0OCcsXG4gICAgICAgICAgJ3RoZXJtYWwtZGVzaWduLXBvd2VyJzogJzEzNScsXG4gICAgICAgIH0sXG4gICAgICBdKVxuICAgICk7XG4gICAgYXdhaXQgZXhwZWN0KFxuICAgICAgbW9kZWwuZXhlY3V0ZShbXG4gICAgICAgIHtcbiAgICAgICAgICAnY2xvdWQtaW5zdGFuY2UtdHlwZSc6ICd0Mi5taWNybycsXG4gICAgICAgICAgJ2Nsb3VkLXZlbmRvcic6ICdhd3MyJyxcbiAgICAgICAgfSxcbiAgICAgIF0pXG4gICAgKS5yZWplY3RzLnRvVGhyb3dFcnJvcihcbiAgICAgICdjbG91ZC12ZW5kb3I6IE9ubHkgYGF3c2AvYGF6dXJlYCBpcyBjdXJyZW50bHkgc3VwcG9ydGVkJ1xuICAgICk7XG4gICAgYXdhaXQgZXhwZWN0KFxuICAgICAgbW9kZWwuZXhlY3V0ZShbXG4gICAgICAgIHtcbiAgICAgICAgICAnY2xvdWQtaW5zdGFuY2UtdHlwZSc6ICd0Mi5taWNybzInLFxuICAgICAgICAgICdjbG91ZC12ZW5kb3InOiAnYXp1cmUnLFxuICAgICAgICB9LFxuICAgICAgXSlcbiAgICApLnJlamVjdHMudG9UaHJvd0Vycm9yKFxuICAgICAgJ2Nsb3VkLWluc3RhbmNlLXR5cGU6IHQyLm1pY3JvMiBpcyBub3Qgc3VwcG9ydGVkIGluIHZlbmRvcjogYXp1cmUnXG4gICAgKTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|