@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.
- package/.examples/ompls/azure.yml +205 -0
- package/.github/workflows/nodejs-ci.yml +0 -8
- package/README.md +48 -9
- package/build/index.js +1 -2
- package/examples/impls/test/azure.yml +8 -8
- package/examples/impls/test/ccf.yml +5 -3
- package/examples/impls/test/if-demo.yml +19 -9
- package/examples/impls/test/metadata.yml +3 -2
- package/examples/impls/test/nesting.yml +10 -13
- package/examples/impls/test/sci-e.yml +1 -1
- package/examples/impls/test/sci-m.yml +2 -2
- package/examples/impls/test/sci-o.yml +2 -4
- package/examples/impls/test/sci.yml +1 -2
- package/examples/impls/test/shell.yml +2 -1
- package/examples/impls/{tdp-finder-test.yml → test/tdp-finder.yml} +8 -8
- package/examples/ompls/ccf.yml +3 -1
- package/examples/ompls/if-demo.yml +46 -22
- package/package.json +12 -5
- package/tsconfig.build.json +7 -0
- package/tsconfig.build.tsbuildinfo +1 -0
- package/build/__mocks__/azure/index.d.ts +0 -11
- package/build/__mocks__/azure/index.js +0 -132
- package/build/__mocks__/boavizta/countries.json +0 -138
- package/build/__mocks__/boavizta/instance_types.json +0 -625
- package/build/__mocks__/boavizta/providers.json +0 -1
- package/build/__mocks__/fs/index.d.ts +0 -3
- package/build/__mocks__/fs/index.js +0 -56
- package/build/__mocks__/model-universe/index.d.ts +0 -31
- package/build/__mocks__/model-universe/index.js +0 -64
- package/build/__mocks__/watt-time/data.json +0 -119
- package/build/__tests__/integration/ompl/index.test.d.ts +0 -1
- package/build/__tests__/integration/ompl/index.test.js +0 -61
- package/build/__tests__/unit/lib/azure-importer/index.test.d.ts +0 -1
- package/build/__tests__/unit/lib/azure-importer/index.test.js +0 -152
- package/build/__tests__/unit/lib/boavizta/index.test.d.ts +0 -1
- package/build/__tests__/unit/lib/boavizta/index.test.js +0 -579
- package/build/__tests__/unit/lib/case-studies/aveva.test.d.ts +0 -1
- package/build/__tests__/unit/lib/case-studies/aveva.test.js +0 -36
- package/build/__tests__/unit/lib/case-studies/emem.test.d.ts +0 -1
- package/build/__tests__/unit/lib/case-studies/emem.test.js +0 -108
- package/build/__tests__/unit/lib/case-studies/eshoppen.test.d.ts +0 -1
- package/build/__tests__/unit/lib/case-studies/eshoppen.test.js +0 -53
- package/build/__tests__/unit/lib/case-studies/sci-accenture.test.d.ts +0 -1
- package/build/__tests__/unit/lib/case-studies/sci-accenture.test.js +0 -23
- package/build/__tests__/unit/lib/ccf/index.test.d.ts +0 -1
- package/build/__tests__/unit/lib/ccf/index.test.js +0 -223
- package/build/__tests__/unit/lib/cloud-instance-metadata/index.test.d.ts +0 -1
- package/build/__tests__/unit/lib/cloud-instance-metadata/index.test.js +0 -73
- package/build/__tests__/unit/lib/models-universe.test.d.ts +0 -1
- package/build/__tests__/unit/lib/models-universe.test.js +0 -193
- package/build/__tests__/unit/lib/observatory.test.d.ts +0 -1
- package/build/__tests__/unit/lib/observatory.test.js +0 -99
- package/build/__tests__/unit/lib/sci/index.test.d.ts +0 -1
- package/build/__tests__/unit/lib/sci/index.test.js +0 -106
- package/build/__tests__/unit/lib/sci-e/index.test.d.ts +0 -1
- package/build/__tests__/unit/lib/sci-e/index.test.js +0 -30
- package/build/__tests__/unit/lib/sci-m/index.test.d.ts +0 -1
- package/build/__tests__/unit/lib/sci-m/index.test.js +0 -58
- package/build/__tests__/unit/lib/sci-o/index.test.d.ts +0 -1
- package/build/__tests__/unit/lib/sci-o/index.test.js +0 -42
- package/build/__tests__/unit/lib/shell-imp/index.test.d.ts +0 -1
- package/build/__tests__/unit/lib/shell-imp/index.test.js +0 -21
- package/build/__tests__/unit/lib/supercomputer.test.d.ts +0 -1
- package/build/__tests__/unit/lib/supercomputer.test.js +0 -231
- package/build/__tests__/unit/lib/tdp-finder/index.test.d.ts +0 -1
- package/build/__tests__/unit/lib/tdp-finder/index.test.js +0 -62
- package/build/__tests__/unit/lib/teads-aws/index.test.d.ts +0 -1
- package/build/__tests__/unit/lib/teads-aws/index.test.js +0 -170
- package/build/__tests__/unit/lib/teads-curve/index.test.d.ts +0 -1
- package/build/__tests__/unit/lib/teads-curve/index.test.js +0 -146
- package/build/__tests__/unit/lib/watt-time/index.test.d.ts +0 -1
- package/build/__tests__/unit/lib/watt-time/index.test.js +0 -106
- package/build/__tests__/unit/util/args.test.d.ts +0 -1
- package/build/__tests__/unit/util/args.test.js +0 -92
- package/build/__tests__/unit/util/models-universe.test.d.ts +0 -1
- package/build/__tests__/unit/util/models-universe.test.js +0 -193
- package/build/__tests__/unit/util/observatory.test.d.ts +0 -1
- package/build/__tests__/unit/util/observatory.test.js +0 -99
- package/build/__tests__/unit/util/supercomputer.test.d.ts +0 -1
- package/build/__tests__/unit/util/supercomputer.test.js +0 -231
- package/build/__tests__/unit/util/yaml.test.d.ts +0 -1
- package/build/__tests__/unit/util/yaml.test.js +0 -59
- package/build/lib/azure-importer/index.d.ts +0 -55
- package/build/lib/azure-importer/index.js +0 -314
- package/build/lib/boavizta/index.d.ts +0 -53
- package/build/lib/boavizta/index.js +0 -254
- package/build/lib/case-studies/aveva-model.d.ts +0 -29
- package/build/lib/case-studies/aveva-model.js +0 -53
- package/build/lib/case-studies/emem-model.d.ts +0 -42
- package/build/lib/case-studies/emem-model.js +0 -93
- package/build/lib/case-studies/eshoppen-model.d.ts +0 -24
- package/build/lib/case-studies/eshoppen-model.js +0 -123
- package/build/lib/case-studies/index.d.ts +0 -4
- package/build/lib/case-studies/index.js +0 -21
- package/build/lib/case-studies/sci-accenture-model.d.ts +0 -10
- package/build/lib/case-studies/sci-accenture-model.js +0 -37
- package/build/lib/ccf/aws-embodied.json +0 -5591
- package/build/lib/ccf/aws-instances.json +0 -21116
- package/build/lib/ccf/aws-use.json +0 -79
- package/build/lib/ccf/azure-embodied.json +0 -6547
- package/build/lib/ccf/azure-instances.json +0 -8332
- package/build/lib/ccf/azure-use.json +0 -58
- package/build/lib/ccf/gcp-embodied.json +0 -3049
- package/build/lib/ccf/gcp-instances.json +0 -3880
- package/build/lib/ccf/gcp-use.json +0 -58
- package/build/lib/ccf/index.d.ts +0 -63
- package/build/lib/ccf/index.js +0 -338
- package/build/lib/cloud-instance-metadata/aws-instances.json +0 -1
- package/build/lib/cloud-instance-metadata/azure-instances.json +0 -1
- package/build/lib/cloud-instance-metadata/index.d.ts +0 -15
- package/build/lib/cloud-instance-metadata/index.js +0 -104
- package/build/lib/index.d.ts +0 -14
- package/build/lib/index.js +0 -32
- package/build/lib/interfaces/ccf.d.ts +0 -19
- package/build/lib/interfaces/ccf.js +0 -3
- package/build/lib/interfaces/index.d.ts +0 -7
- package/build/lib/interfaces/index.js +0 -18
- package/build/lib/sci/index.d.ts +0 -13
- package/build/lib/sci/index.js +0 -131
- package/build/lib/sci-e/index.d.ts +0 -38
- package/build/lib/sci-e/index.js +0 -85
- package/build/lib/sci-m/index.d.ts +0 -10
- package/build/lib/sci-m/index.js +0 -124
- package/build/lib/sci-o/index.d.ts +0 -17
- package/build/lib/sci-o/index.js +0 -52
- package/build/lib/shell-imp/index.d.ts +0 -32
- package/build/lib/shell-imp/index.js +0 -82
- package/build/lib/tdp-finder/index.d.ts +0 -19
- package/build/lib/tdp-finder/index.js +0 -98
- package/build/lib/teads-aws/aws-embodied.json +0 -1
- package/build/lib/teads-aws/aws-instances.json +0 -1
- package/build/lib/teads-aws/index.d.ts +0 -58
- package/build/lib/teads-aws/index.js +0 -208
- package/build/lib/teads-curve/index.d.ts +0 -52
- package/build/lib/teads-curve/index.js +0 -158
- package/build/lib/watt-time/index.d.ts +0 -18
- package/build/lib/watt-time/index.js +0 -204
- package/build/util/models-universe.d.ts +0 -28
- package/build/util/models-universe.js +0 -95
- package/build/util/observatory.d.ts +0 -20
- package/build/util/observatory.js +0 -31
- package/build/util/supercomputer.d.ts +0 -30
- package/build/util/supercomputer.js +0 -109
- package/docs/implementations/tdp-finder.md +0 -36
- package/examples/impls/test/complex-pipeline.yml +0 -67
- package/examples/impls/test/toto.yaml +0 -22
- package/tsconfig.tsbuildinfo +0 -1
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const model_universe_1 = require("../../../__mocks__/model-universe");
|
|
4
|
-
const models_universe_1 = require("../../../lib/models-universe");
|
|
5
|
-
const config_1 = require("../../../config");
|
|
6
|
-
const { MISSING_CLASSNAME, MISSING_PATH, NOT_OUTPUT_MODEL_EXTENSION, NOT_INITIALIZED_MODEL, } = config_1.STRINGS;
|
|
7
|
-
describe('util/models-universe: ', () => {
|
|
8
|
-
describe('init ModelsUniverse', () => {
|
|
9
|
-
it('initializes object with required properties.', () => {
|
|
10
|
-
const modelsHandbook = new models_universe_1.ModelsUniverse();
|
|
11
|
-
expect(typeof modelsHandbook.getInitializedModel).toBe('function');
|
|
12
|
-
expect(typeof modelsHandbook.initalizedModels).toBe('object');
|
|
13
|
-
expect(typeof modelsHandbook.writeDown).toBe('function');
|
|
14
|
-
expect(modelsHandbook.initalizedModels).toEqual({});
|
|
15
|
-
});
|
|
16
|
-
});
|
|
17
|
-
describe('writeDown(): ', () => {
|
|
18
|
-
beforeEach(() => {
|
|
19
|
-
jest.resetModules();
|
|
20
|
-
jest.restoreAllMocks();
|
|
21
|
-
});
|
|
22
|
-
it('throws error in case model is not supported.', () => {
|
|
23
|
-
const modelsHandbook = new models_universe_1.ModelsUniverse();
|
|
24
|
-
const modelInfo = {
|
|
25
|
-
config: {
|
|
26
|
-
allocation: 'mock-allocation',
|
|
27
|
-
verbose: true,
|
|
28
|
-
},
|
|
29
|
-
name: 'test',
|
|
30
|
-
};
|
|
31
|
-
const expectedMessage = `Missing or wrong model: ${modelInfo.name}.`;
|
|
32
|
-
try {
|
|
33
|
-
modelsHandbook.writeDown(modelInfo);
|
|
34
|
-
}
|
|
35
|
-
catch (error) {
|
|
36
|
-
if (error instanceof Error) {
|
|
37
|
-
expect(error.message).toEqual(expectedMessage);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
it('registers `shell` model in initalized models list.', () => {
|
|
42
|
-
const modelsHandbook = new models_universe_1.ModelsUniverse();
|
|
43
|
-
const modelInfo = {
|
|
44
|
-
config: {
|
|
45
|
-
allocation: 'mock-allocation',
|
|
46
|
-
verbose: true,
|
|
47
|
-
},
|
|
48
|
-
name: 'mock-name',
|
|
49
|
-
};
|
|
50
|
-
const modelsList = modelsHandbook.writeDown(modelInfo);
|
|
51
|
-
expect(modelsList).toHaveProperty(modelInfo.name);
|
|
52
|
-
expect(typeof modelsList[modelInfo.name]).toBe('function');
|
|
53
|
-
});
|
|
54
|
-
it('registers `plugin` model in initalized models list.', () => {
|
|
55
|
-
const modelsHandbook = new models_universe_1.ModelsUniverse();
|
|
56
|
-
const modelInfo = {
|
|
57
|
-
config: {
|
|
58
|
-
allocation: 'mock-allocation',
|
|
59
|
-
verbose: true,
|
|
60
|
-
},
|
|
61
|
-
name: 'mock-name',
|
|
62
|
-
};
|
|
63
|
-
const modelsList = modelsHandbook.writeDown(modelInfo);
|
|
64
|
-
expect(modelsList).toHaveProperty(modelInfo.name);
|
|
65
|
-
expect(typeof modelsList[modelInfo.name]).toBe('function');
|
|
66
|
-
});
|
|
67
|
-
it('throws `missing classname` error while registration of `plugin` model.', async () => {
|
|
68
|
-
const modelsHandbook = new models_universe_1.ModelsUniverse();
|
|
69
|
-
const modelInfo = {
|
|
70
|
-
config: {
|
|
71
|
-
allocation: 'mock-allocation',
|
|
72
|
-
verbose: true,
|
|
73
|
-
},
|
|
74
|
-
name: 'mock-name',
|
|
75
|
-
};
|
|
76
|
-
const modelsList = modelsHandbook.writeDown(modelInfo);
|
|
77
|
-
const model = modelsList[modelInfo.name];
|
|
78
|
-
expect.assertions(2);
|
|
79
|
-
try {
|
|
80
|
-
await model({
|
|
81
|
-
'core-units': 1,
|
|
82
|
-
'physical-processor': 'intel',
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
catch (error) {
|
|
86
|
-
if (error instanceof Error) {
|
|
87
|
-
expect(error).toBeInstanceOf(Error);
|
|
88
|
-
expect(error.message).toEqual(MISSING_CLASSNAME);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
it('throws `missing path parameter` error while registration of `plugin` model.', async () => {
|
|
93
|
-
const modelsHandbook = new models_universe_1.ModelsUniverse();
|
|
94
|
-
const modelInfo = {
|
|
95
|
-
config: {
|
|
96
|
-
allocation: 'mock-allocation',
|
|
97
|
-
verbose: true,
|
|
98
|
-
},
|
|
99
|
-
name: 'mock-name',
|
|
100
|
-
model: 'MockaviztaModel',
|
|
101
|
-
};
|
|
102
|
-
const modelsList = modelsHandbook.writeDown(modelInfo);
|
|
103
|
-
const model = modelsList[modelInfo.name];
|
|
104
|
-
expect.assertions(2);
|
|
105
|
-
try {
|
|
106
|
-
await model({
|
|
107
|
-
'core-units': 1,
|
|
108
|
-
'physical-processor': 'intel',
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
catch (error) {
|
|
112
|
-
if (error instanceof Error) {
|
|
113
|
-
expect(error).toBeInstanceOf(Error);
|
|
114
|
-
expect(error.message).toEqual(MISSING_PATH);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
});
|
|
118
|
-
it('should successfully initalize plugin model.', async () => {
|
|
119
|
-
jest.mock('mockavizta-model', () => ({
|
|
120
|
-
__esModule: true,
|
|
121
|
-
MockaviztaModel: model_universe_1.MockModel,
|
|
122
|
-
}), { virtual: true });
|
|
123
|
-
const modelsHandbook = new models_universe_1.ModelsUniverse();
|
|
124
|
-
const modelInfo = {
|
|
125
|
-
config: {
|
|
126
|
-
allocation: 'mock-allocation',
|
|
127
|
-
verbose: true,
|
|
128
|
-
},
|
|
129
|
-
name: 'mock-name',
|
|
130
|
-
model: 'MockaviztaModel',
|
|
131
|
-
path: 'https://github.com/mock/mockavizta-model',
|
|
132
|
-
};
|
|
133
|
-
const modelsList = modelsHandbook.writeDown(modelInfo);
|
|
134
|
-
const model = modelsList[modelInfo.name];
|
|
135
|
-
expect.assertions(1);
|
|
136
|
-
const response = await model({
|
|
137
|
-
'core-units': 1,
|
|
138
|
-
'physical-processor': 'intel',
|
|
139
|
-
});
|
|
140
|
-
expect(response).toBeInstanceOf(model_universe_1.MockModel);
|
|
141
|
-
});
|
|
142
|
-
it('should throw `input model does not extend base interface` error.', async () => {
|
|
143
|
-
jest.mock('mockavizta-model', () => ({
|
|
144
|
-
__esModule: true,
|
|
145
|
-
MockaviztaModel: class FakeModel {
|
|
146
|
-
},
|
|
147
|
-
}), { virtual: true });
|
|
148
|
-
const modelsHandbook = new models_universe_1.ModelsUniverse();
|
|
149
|
-
const modelInfo = {
|
|
150
|
-
config: {
|
|
151
|
-
allocation: 'mock-allocation',
|
|
152
|
-
verbose: true,
|
|
153
|
-
},
|
|
154
|
-
name: 'mock-name',
|
|
155
|
-
model: 'MockaviztaModel',
|
|
156
|
-
path: 'https://github.com/mock/mockavizta-model',
|
|
157
|
-
};
|
|
158
|
-
const modelsList = modelsHandbook.writeDown(modelInfo);
|
|
159
|
-
const model = modelsList[modelInfo.name];
|
|
160
|
-
expect.assertions(2);
|
|
161
|
-
try {
|
|
162
|
-
await model({
|
|
163
|
-
'core-units': 1,
|
|
164
|
-
'physical-processor': 'intel',
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
catch (error) {
|
|
168
|
-
if (error instanceof Error) {
|
|
169
|
-
expect(error).toBeInstanceOf(Error);
|
|
170
|
-
expect(error.message).toEqual(NOT_OUTPUT_MODEL_EXTENSION);
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
});
|
|
174
|
-
});
|
|
175
|
-
describe('getInitializedModel(): ', () => {
|
|
176
|
-
it('throws error in case if model is not initalized.', async () => {
|
|
177
|
-
const modelsHandbook = new models_universe_1.ModelsUniverse();
|
|
178
|
-
const modelName = 'mock-modelName';
|
|
179
|
-
const config = {};
|
|
180
|
-
const expectedMessage = NOT_INITIALIZED_MODEL(modelName);
|
|
181
|
-
try {
|
|
182
|
-
await modelsHandbook.getInitializedModel(modelName, config);
|
|
183
|
-
}
|
|
184
|
-
catch (error) {
|
|
185
|
-
if (error instanceof Error) {
|
|
186
|
-
expect(error).toBeInstanceOf(Error);
|
|
187
|
-
expect(error.message).toEqual(expectedMessage);
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
});
|
|
191
|
-
});
|
|
192
|
-
});
|
|
193
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLXVuaXZlcnNlLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvX190ZXN0c19fL3VuaXQvbGliL21vZGVscy11bml2ZXJzZS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsc0VBQTREO0FBRTVELGtFQUE0RDtBQUU1RCw0Q0FBd0M7QUFJeEMsTUFBTSxFQUNKLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osMEJBQTBCLEVBQzFCLHFCQUFxQixHQUN0QixHQUFHLGdCQUFPLENBQUM7QUFFWixRQUFRLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxFQUFFO0lBQ3RDLFFBQVEsQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLEVBQUU7UUFDbkMsRUFBRSxDQUFDLDhDQUE4QyxFQUFFLEdBQUcsRUFBRTtZQUN0RCxNQUFNLGNBQWMsR0FBRyxJQUFJLGdDQUFjLEVBQUUsQ0FBQztZQUU1QyxNQUFNLENBQUMsT0FBTyxjQUFjLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbkUsTUFBTSxDQUFDLE9BQU8sY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzlELE1BQU0sQ0FBQyxPQUFPLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDekQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUU7UUFDN0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsQ0FBQyxDQUFDLENB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LGVBQWUsR0FBRyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUV6RCxJQUFJO2dCQUNGLE1BQU0sY0FBYyxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQzthQUM3RDtZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNkLElBQUksS0FBSyxZQUFZLEtBQUssRUFBRTtvQkFDMUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDcEMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7aUJBQ2hEO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01vY2tNb2RlbH0gZnJvbSAnLi4vLi4vLi4vX19tb2Nrc19fL21vZGVsLXVuaXZlcnNlJztcblxuaW1wb3J0IHtNb2RlbHNVbml2ZXJzZX0gZnJvbSAnLi4vLi4vLi4vbGliL21vZGVscy11bml2ZXJzZSc7XG5cbmltcG9ydCB7U1RSSU5HU30gZnJvbSAnLi4vLi4vLi4vY29uZmlnJztcblxuaW1wb3J0IHtJbXBsSW5pdGlhbGl6ZU1vZGVsfSBmcm9tICcuLi8uLi8uLi90eXBlcy9tb2RlbHMtdW5pdmVyc2UnO1xuXG5jb25zdCB7XG4gIE1JU1NJTkdfQ0xBU1NOQU1FLFxuICBNSVNTSU5HX1BBVEgsXG4gIE5PVF9PVVRQVVRfTU9ERUxfRVhURU5TSU9OLFxuICBOT1RfSU5JVElBTElaRURfTU9ERUwsXG59ID0gU1RSSU5HUztcblxuZGVzY3JpYmUoJ3V0aWwvbW9kZWxzLXVuaXZlcnNlOiAnLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCdpbml0IE1vZGVsc1VuaXZlcnNlJywgKCkgPT4ge1xuICAgIGl0KCdpbml0aWFsaXplcyBvYmplY3Qgd2l0aCByZXF1aXJlZCBwcm9wZXJ0aWVzLicsICgpID0+IHtcbiAgICAgIGNvbnN0IG1vZGVsc0hhbmRib29rID0gbmV3IE1vZGVsc1VuaXZlcnNlKCk7XG5cbiAgICAgIGV4cGVjdCh0eXBlb2YgbW9kZWxzSGFuZGJvb2suZ2V0SW5pdGlhbGl6ZWRNb2RlbCkudG9CZSgnZnVuY3Rpb24nKTtcbiAgICAgIGV4cGVjdCh0eXBlb2YgbW9kZWxzSGFuZGJvb2suaW5pdGFsaXplZE1vZGVscykudG9CZSgnb2JqZWN0Jyk7XG4gICAgICBleHBlY3QodHlwZW9mIG1vZGVsc0hhbmRib29rLndyaXRlRG93bikudG9CZSgnZnVuY3Rpb24nKTtcbiAgICAgIGV4cGVjdChtb2RlbHNIYW5kYm9vay5pbml0YWxpemVkTW9kZWxzKS50b0VxdWFsKHt9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3dyaXRlRG93bigpOiAnLCAoKSA9PiB7XG4gICAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgICBqZXN0LnJlc2V0TW9kdWxlcygpO1xuICAgICAgamVzdC5yZXN0b3JlQWxsTW9ja3MoKTtcbiAgICB9KTtcblxuICAgIGl0KCd0aHJvd3MgZXJyb3IgaW4gY2FzZSBtb2RlbCBpcyBub3Qgc3VwcG9ydGVkLicsICgpID0+IHtcbiAgICAgIGNvbnN0IG1vZGVsc0hhbmRib29rID0gbmV3IE1vZGVsc1VuaXZlcnNlKCk7XG4gICAgICBjb25zdCBtb2RlbEluZm86IEltcGxJbml0aWFsaXplTW9kZWwgPSB7XG4gICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgIGFsbG9jYXRpb246ICdtb2NrLWFsbG9jYXRpb24nLFxuICAgICAgICAgIHZlcmJvc2U6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIG5hbWU6ICd0ZXN0JyxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGV4cGVjdGVkTWVzc2FnZSA9IGBNaXNzaW5nIG9yIHdyb25nIG1vZGVsOiAke21vZGVsSW5mby5uYW1lfS5gO1xuXG4gICAgICB0cnkge1xuICAgICAgICBtb2RlbHNIYW5kYm9vay53cml0ZURvd24obW9kZWxJbmZvKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgZXhwZWN0KGVycm9yLm1lc3NhZ2UpLnRvRXF1YWwoZXhwZWN0ZWRNZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaXQoJ3JlZ2lzdGVycyBgc2hlbGxgIG1vZGVsIGluIGluaXRhbGl6ZWQgbW9kZWxzIGxpc3QuJywgKCkgPT4ge1xuICAgICAgY29uc3QgbW9kZWxzSGFuZGJvb2sgPSBuZXcgTW9kZWxzVW5pdmVyc2UoKTtcbiAgICAgIGNvbnN0IG1vZGVsSW5mbzogSW1wbEluaXRpYWxpemVNb2RlbCA9IHtcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgYWxsb2NhdGlvbjogJ21vY2stYWxsb2NhdGlvbicsXG4gICAgICAgICAgdmVyYm9zZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgbmFtZTogJ21vY2stbmFtZScsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBtb2RlbHNMaXN0ID0gbW9kZWxzSGFuZGJvb2sud3JpdGVEb3duKG1vZGVsSW5mbyk7XG4gICAgICBleHBlY3QobW9kZWxzTGlzdCkudG9IYXZlUHJvcGVydHkobW9kZWxJbmZvLm5hbWUpO1xuICAgICAgZXhwZWN0KHR5cGVvZiBtb2RlbHNMaXN0W21vZGVsSW5mby5uYW1lXSkudG9CZSgnZnVuY3Rpb24nKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZWdpc3RlcnMgYHBsdWdpbmAgbW9kZWwgaW4gaW5pdGFsaXplZCBtb2RlbHMgbGlzdC4nLCAoKSA9PiB7XG4gICAgICBjb25zdCBtb2RlbHNIYW5kYm9vayA9IG5ldyBNb2RlbHNVbml2ZXJzZSgpO1xuICAgICAgY29uc3QgbW9kZWxJbmZvOiBJbXBsSW5pdGlhbGl6ZU1vZGVsID0ge1xuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICBhbGxvY2F0aW9uOiAnbW9jay1hbGxvY2F0aW9uJyxcbiAgICAgICAgICB2ZXJib3NlOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBuYW1lOiAnbW9jay1uYW1lJyxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG1vZGVsc0xpc3QgPSBtb2RlbHNIYW5kYm9vay53cml0ZURvd24obW9kZWxJbmZvKTtcbiAgICAgIGV4cGVjdChtb2RlbHNMaXN0KS50b0hhdmVQcm9wZXJ0eShtb2RlbEluZm8ubmFtZSk7XG4gICAgICBleHBlY3QodHlwZW9mIG1vZGVsc0xpc3RbbW9kZWxJbmZvLm5hbWVdKS50b0JlKCdmdW5jdGlvbicpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Rocm93cyBgbWlzc2luZyBjbGFzc25hbWVgIGVycm9yIHdoaWxlIHJlZ2lzdHJhdGlvbiBvZiBgcGx1Z2luYCBtb2RlbC4nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBtb2RlbHNIYW5kYm9vayA9IG5ldyBNb2RlbHNVbml2ZXJzZSgpO1xuICAgICAgY29uc3QgbW9kZWxJbmZvOiBJbXBsSW5pdGlhbGl6ZU1vZGVsID0ge1xuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICBhbGxvY2F0aW9uOiAnbW9jay1hbGxvY2F0aW9uJyxcbiAgICAgICAgICB2ZXJib3NlOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBuYW1lOiAnbW9jay1uYW1lJyxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG1vZGVsc0xpc3QgPSBtb2RlbHNIYW5kYm9vay53cml0ZURvd24obW9kZWxJbmZvKTtcbiAgICAgIGNvbnN0IG1vZGVsID0gbW9kZWxzTGlzdFttb2RlbEluZm8ubmFtZV07XG5cbiAgICAgIGV4cGVjdC5hc3NlcnRpb25zKDIpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBtb2RlbCh7XG4gICAgICAgICAgJ2NvcmUtdW5pdHMnOiAxLFxuICAgICAgICAgICdwaHlzaWNhbC1wcm9jZXNzb3InOiAnaW50ZWwnLFxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgZXhwZWN0KGVycm9yKS50b0JlSW5zdGFuY2VPZihFcnJvcik7XG4gICAgICAgICAgZXhwZWN0KGVycm9yLm1lc3NhZ2UpLnRvRXF1YWwoTUlTU0lOR19DTEFTU05BTUUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpdCgndGhyb3dzIGBtaXNzaW5nIHBhdGggcGFyYW1ldGVyYCBlcnJvciB3aGlsZSByZWdpc3RyYXRpb24gb2YgYHBsdWdpbmAgbW9kZWwuJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbW9kZWxzSGFuZGJvb2sgPSBuZXcgTW9kZWxzVW5pdmVyc2UoKTtcbiAgICAgIGNvbnN0IG1vZGVsSW5mbzogSW1wbEluaXRpYWxpemVNb2RlbCA9IHtcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgYWxsb2NhdGlvbjogJ21vY2stYWxsb2NhdGlvbicsXG4gICAgICAgICAgdmVyYm9zZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgbmFtZTogJ21vY2stbmFtZScsXG4gICAgICAgIG1vZGVsOiAnTW9ja2F2aXp0YU1vZGVsJyxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG1vZGVsc0xpc3QgPSBtb2RlbHNIYW5kYm9vay53cml0ZURvd24obW9kZWxJbmZvKTtcbiAgICAgIGNvbnN0IG1vZGVsID0gbW9kZWxzTGlzdFttb2RlbEluZm8ubmFtZV07XG5cbiAgICAgIGV4cGVjdC5hc3NlcnRpb25zKDIpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBtb2RlbCh7XG4gICAgICAgICAgJ2NvcmUtdW5pdHMnOiAxLFxuICAgICAgICAgICdwaHlzaWNhbC1wcm9jZXNzb3InOiAnaW50ZWwnLFxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgZXhwZWN0KGVycm9yKS50b0JlSW5zdGFuY2VPZihFcnJvcik7XG4gICAgICAgICAgZXhwZWN0KGVycm9yLm1lc3NhZ2UpLnRvRXF1YWwoTUlTU0lOR19QQVRIKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBzdWNjZXNzZnVsbHkgaW5pdGFsaXplIHBsdWdpbiBtb2RlbC4nLCBhc3luYyAoKSA9PiB7XG4gICAgICBqZXN0Lm1vY2soXG4gICAgICAgICdtb2NrYXZpenRhLW1vZGVsJyxcbiAgICAgICAgKCkgPT4gKHtcbiAgICAgICAgICBfX2VzTW9kdWxlOiB0cnVlLFxuICAgICAgICAgIE1vY2thdml6dGFNb2RlbDogTW9ja01vZGVsLFxuICAgICAgICB9KSxcbiAgICAgICAge3ZpcnR1YWw6IHRydWV9XG4gICAgICApO1xuXG4gICAgICBjb25zdCBtb2RlbHNIYW5kYm9vayA9IG5ldyBNb2RlbHNVbml2ZXJzZSgpO1xuICAgICAgY29uc3QgbW9kZWxJbmZvOiBJbXBsSW5pdGlhbGl6ZU1vZGVsID0ge1xuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICBhbGxvY2F0aW9uOiAnbW9jay1hbGxvY2F0aW9uJyxcbiAgICAgICAgICB2ZXJib3NlOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBuYW1lOiAnbW9jay1uYW1lJyxcbiAgICAgICAgbW9kZWw6ICdNb2NrYXZpenRhTW9kZWwnLFxuICAgICAgICBwYXRoOiAnaHR0cHM6Ly9naXRodWIuY29tL21vY2svbW9ja2F2aXp0YS1tb2RlbCcsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBtb2RlbHNMaXN0ID0gbW9kZWxzSGFuZGJvb2sud3JpdGVEb3duKG1vZGVsSW5mbyk7XG4gICAgICBjb25zdCBtb2RlbCA9IG1vZGVsc0xpc3RbbW9kZWxJbmZvLm5hbWVdO1xuXG4gICAgICBleHBlY3QuYXNzZXJ0aW9ucygxKTtcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBtb2RlbCh7XG4gICAgICAgICdjb3JlLXVuaXRzJzogMSxcbiAgICAgICAgJ3BoeXNpY2FsLXByb2Nlc3Nvcic6ICdpbnRlbCcsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHJlc3BvbnNlKS50b0JlSW5zdGFuY2VPZihNb2NrTW9kZWwpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBgaW5wdXQgbW9kZWwgZG9lcyBub3QgZXh0ZW5kIGJhc2UgaW50ZXJmYWNlYCBlcnJvci4nLCBhc3luYyAoKSA9PiB7XG4gICAgICBqZXN0Lm1vY2soXG4gICAgICAgICdtb2NrYXZpenRhLW1vZGVsJyxcbiAgICAgICAgKCkgPT4gKHtcbiAgICAgICAgICBfX2VzTW9kdWxlOiB0cnVlLFxuICAgICAgICAgIE1vY2thdml6dGFNb2RlbDogY2xhc3MgRmFrZU1vZGVsIHt9LFxuICAgICAgICB9KSxcbiAgICAgICAge3ZpcnR1YWw6IHRydWV9XG4gICAgICApO1xuXG4gICAgICBjb25zdCBtb2RlbHNIYW5kYm9vayA9IG5ldyBNb2RlbHNVbml2ZXJzZSgpO1xuICAgICAgY29uc3QgbW9kZWxJbmZvOiBJbXBsSW5pdGlhbGl6ZU1vZGVsID0ge1xuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICBhbGxvY2F0aW9uOiAnbW9jay1hbGxvY2F0aW9uJyxcbiAgICAgICAgICB2ZXJib3NlOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBuYW1lOiAnbW9jay1uYW1lJyxcbiAgICAgICAgbW9kZWw6ICdNb2NrYXZpenRhTW9kZWwnLFxuICAgICAgICBwYXRoOiAnaHR0cHM6Ly9naXRodWIuY29tL21vY2svbW9ja2F2aXp0YS1tb2RlbCcsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBtb2RlbHNMaXN0ID0gbW9kZWxzSGFuZGJvb2sud3JpdGVEb3duKG1vZGVsSW5mbyk7XG4gICAgICBjb25zdCBtb2RlbCA9IG1vZGVsc0xpc3RbbW9kZWxJbmZvLm5hbWVdO1xuXG4gICAgICBleHBlY3QuYXNzZXJ0aW9ucygyKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgbW9kZWwoe1xuICAgICAgICAgICdjb3JlLXVuaXRzJzogMSxcbiAgICAgICAgICAncGh5c2ljYWwtcHJvY2Vzc29yJzogJ2ludGVsJyxcbiAgICAgICAgfSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgIGV4cGVjdChlcnJvcikudG9CZUluc3RhbmNlT2YoRXJyb3IpO1xuICAgICAgICAgIGV4cGVjdChlcnJvci5tZXNzYWdlKS50b0VxdWFsKE5PVF9PVVRQVVRfTU9ERUxfRVhURU5TSU9OKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZ2V0SW5pdGlhbGl6ZWRNb2RlbCgpOiAnLCAoKSA9PiB7XG4gICAgaXQoJ3Rocm93cyBlcnJvciBpbiBjYXNlIGlmIG1vZGVsIGlzIG5vdCBpbml0YWxpemVkLicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG1vZGVsc0hhbmRib29rID0gbmV3IE1vZGVsc1VuaXZlcnNlKCk7XG5cbiAgICAgIGNvbnN0IG1vZGVsTmFtZSA9ICdtb2NrLW1vZGVsTmFtZSc7XG4gICAgICBjb25zdCBjb25maWcgPSB7fTtcblxuICAgICAgY29uc3QgZXhwZWN0ZWRNZXNzYWdlID0gTk9UX0lOSVRJQUxJWkVEX01PREVMKG1vZGVsTmFtZSk7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IG1vZGVsc0hhbmRib29rLmdldEluaXRpYWxpemVkTW9kZWwobW9kZWxOYW1lLCBjb25maWcpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICBleHBlY3QoZXJyb3IpLnRvQmVJbnN0YW5jZU9mKEVycm9yKTtcbiAgICAgICAgICBleHBlY3QoZXJyb3IubWVzc2FnZSkudG9FcXVhbChleHBlY3RlZE1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const observatory_1 = require("../../../lib/observatory");
|
|
4
|
-
describe('util/observatory: ', () => {
|
|
5
|
-
class MockaviztaModel {
|
|
6
|
-
configure(params) {
|
|
7
|
-
params;
|
|
8
|
-
return Promise.resolve(this);
|
|
9
|
-
}
|
|
10
|
-
execute() {
|
|
11
|
-
return Promise.resolve([{ data: 'mock-data' }]);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
const expectedValue = [
|
|
15
|
-
{
|
|
16
|
-
timestamp: '2023-07-06T00:00',
|
|
17
|
-
duration: 3600,
|
|
18
|
-
'cpu-util': 18.392,
|
|
19
|
-
'energy-cpu': 2.5,
|
|
20
|
-
'embodied-carbon': 0.619,
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
timestamp: '2023-08-06T00:00',
|
|
24
|
-
duration: 3600,
|
|
25
|
-
'cpu-util': 16,
|
|
26
|
-
'energy-cpu': 2.5,
|
|
27
|
-
'embodied-carbon': 0.619,
|
|
28
|
-
},
|
|
29
|
-
]; // model.execute method's result (output mock).
|
|
30
|
-
describe('init Observatory: ', () => {
|
|
31
|
-
it('initializes object with required properties.', () => {
|
|
32
|
-
const inputs = [];
|
|
33
|
-
const lab = new observatory_1.Observatory(inputs);
|
|
34
|
-
expect(lab).toHaveProperty('doInvestigationsWith');
|
|
35
|
-
expect(lab).toHaveProperty('getOutputs');
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
describe('doInvestgationsWith(): ', () => {
|
|
39
|
-
const inputs = [
|
|
40
|
-
{
|
|
41
|
-
timestamp: '2023-07-06T00:00',
|
|
42
|
-
duration: 3600,
|
|
43
|
-
'cpu-util': 18.392,
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
timestamp: '2023-08-06T00:00',
|
|
47
|
-
duration: 3600,
|
|
48
|
-
'cpu-util': 16,
|
|
49
|
-
},
|
|
50
|
-
];
|
|
51
|
-
const params = {
|
|
52
|
-
'core-units': 24,
|
|
53
|
-
'physical-processor': 'Intel® Core™ i7-1185G7',
|
|
54
|
-
allocation: 'LINEAR',
|
|
55
|
-
verbose: true,
|
|
56
|
-
};
|
|
57
|
-
it('returns Observatory class.', async () => {
|
|
58
|
-
const lab = new observatory_1.Observatory(inputs);
|
|
59
|
-
const boaviztaModel = await new MockaviztaModel().configure(params);
|
|
60
|
-
boaviztaModel.execute = jest.fn(() => Promise.resolve(expectedValue));
|
|
61
|
-
const result = await lab.doInvestigationsWith(boaviztaModel);
|
|
62
|
-
expect(result).toBeInstanceOf(observatory_1.Observatory);
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
describe('getOutputs(): ', () => {
|
|
66
|
-
const inputs = [
|
|
67
|
-
{
|
|
68
|
-
timestamp: '2023-07-06T00:00',
|
|
69
|
-
duration: 3600,
|
|
70
|
-
'cpu-util': 18.392,
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
timestamp: '2023-08-06T00:00',
|
|
74
|
-
duration: 3600,
|
|
75
|
-
'cpu-util': 16,
|
|
76
|
-
},
|
|
77
|
-
];
|
|
78
|
-
const params = {
|
|
79
|
-
'core-units': 24,
|
|
80
|
-
'physical-processor': 'Intel® Core™ i7-1185G7',
|
|
81
|
-
allocation: 'LINEAR',
|
|
82
|
-
verbose: true,
|
|
83
|
-
};
|
|
84
|
-
it('returns empty outputs data.', () => {
|
|
85
|
-
const lab = new observatory_1.Observatory(inputs);
|
|
86
|
-
const expectedValue = [];
|
|
87
|
-
expect(lab.getOutputs()).toEqual(expectedValue);
|
|
88
|
-
});
|
|
89
|
-
it('returns executed outputs data.', async () => {
|
|
90
|
-
const lab = new observatory_1.Observatory(inputs);
|
|
91
|
-
const boaviztaModel = await new MockaviztaModel().configure(params);
|
|
92
|
-
boaviztaModel.execute = jest.fn(() => Promise.resolve(expectedValue));
|
|
93
|
-
const result = await lab.doInvestigationsWith(boaviztaModel);
|
|
94
|
-
expect(result).toBeInstanceOf(observatory_1.Observatory);
|
|
95
|
-
expect(lab.getOutputs()).toEqual(expectedValue);
|
|
96
|
-
});
|
|
97
|
-
});
|
|
98
|
-
});
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YXRvcnkudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9fX3Rlc3RzX18vdW5pdC9saWIvb2JzZXJ2YXRvcnkudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLDBEQUFxRDtBQUVyRCxRQUFRLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFO0lBQ2xDLE1BQU0sZUFBZTtRQUNuQixTQUFTLENBQUMsTUFBVztZQUNuQixNQUFNLENBQUM7WUFDUCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUNELE9BQU87WUFDTCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEQsQ0FBQztLQUNGO0lBRUQsTUFBTSxhQUFhLEdBQUc7UUFDcEI7WUFDRSxTQUFTLEVBQUUsa0JBQWtCO1lBQzdCLFFBQVEsRUFBRSxJQUFJO1lBQ2QsVUFBVSxFQUFFLE1BQU07WUFDbEIsWUFBWSxFQUFFLEdBQUc7WUFDakIsaUJBQWlCLEVBQUUsS0FBSztTQUN6QjtRQUNEO1lBQ0UsU0FBUyxFQUFFLGtCQUFrQjtZQUM3QixRQUFRLEVBQUUsSUFBSTtZQUNkLFVBQVUsRUFBRSxFQUFFO1lBQ2QsWUFBWSxFQUFFLEdBQUc7WUFDakIsaUJBQWlCLEVBQUUsS0FBSztTQUN6QjtLQUNGLENBQUMsQ0FBQywrQ0FBK0M7SUFFbEQsUUFBUSxDQUFDLG9CQUFvQixFQUFFLEdBQUcsRUFBRTtRQUNsQyxFQUFFLENBQUMsOENBQThDLEVBQUUsR0FBRyxFQUFFO1lBQ3RELE1BQU0sTUFBTSxHQUFRLEVBQUUsQ0FBQztZQUN2QixNQUFNLEdBQUcsR0FBRyxJQUFJLHlCQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFcEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsQ0FB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QyxDQUFDO1lBQzNDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb2RlbFBsdWdpbkludGVyZmFjZX0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvbW9kZWwtaW50ZXJmYWNlJztcbmltcG9ydCB7T2JzZXJ2YXRvcnl9IGZyb20gJy4uLy4uLy4uL2xpYi9vYnNlcnZhdG9yeSc7XG5cbmRlc2NyaWJlKCd1dGlsL29ic2VydmF0b3J5OiAnLCAoKSA9PiB7XG4gIGNsYXNzIE1vY2thdml6dGFNb2RlbCBpbXBsZW1lbnRzIE1vZGVsUGx1Z2luSW50ZXJmYWNlIHtcbiAgICBjb25maWd1cmUocGFyYW1zOiBhbnkpOiBQcm9taXNlPE1vZGVsUGx1Z2luSW50ZXJmYWNlPiB7XG4gICAgICBwYXJhbXM7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMpO1xuICAgIH1cbiAgICBleGVjdXRlKCk6IFByb21pc2U8YW55W10+IHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoW3tkYXRhOiAnbW9jay1kYXRhJ31dKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBleHBlY3RlZFZhbHVlID0gW1xuICAgIHtcbiAgICAgIHRpbWVzdGFtcDogJzIwMjMtMDctMDZUMDA6MDAnLFxuICAgICAgZHVyYXRpb246IDM2MDAsXG4gICAgICAnY3B1LXV0aWwnOiAxOC4zOTIsXG4gICAgICAnZW5lcmd5LWNwdSc6IDIuNSxcbiAgICAgICdlbWJvZGllZC1jYXJib24nOiAwLjYxOSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHRpbWVzdGFtcDogJzIwMjMtMDgtMDZUMDA6MDAnLFxuICAgICAgZHVyYXRpb246IDM2MDAsXG4gICAgICAnY3B1LXV0aWwnOiAxNixcbiAgICAgICdlbmVyZ3ktY3B1JzogMi41LFxuICAgICAgJ2VtYm9kaWVkLWNhcmJvbic6IDAuNjE5LFxuICAgIH0sXG4gIF07IC8vIG1vZGVsLmV4ZWN1dGUgbWV0aG9kJ3MgcmVzdWx0IChvdXRwdXQgbW9jaykuXG5cbiAgZGVzY3JpYmUoJ2luaXQgT2JzZXJ2YXRvcnk6ICcsICgpID0+IHtcbiAgICBpdCgnaW5pdGlhbGl6ZXMgb2JqZWN0IHdpdGggcmVxdWlyZWQgcHJvcGVydGllcy4nLCAoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dHM6IGFueSA9IFtdO1xuICAgICAgY29uc3QgbGFiID0gbmV3IE9ic2VydmF0b3J5KGlucHV0cyk7XG5cbiAgICAgIGV4cGVjdChsYWIpLnRvSGF2ZVByb3BlcnR5KCdkb0ludmVzdGlnYXRpb25zV2l0aCcpO1xuICAgICAgZXhwZWN0KGxhYikudG9IYXZlUHJvcGVydHkoJ2dldE91dHB1dHMnKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2RvSW52ZXN0Z2F0aW9uc1dpdGgoKTogJywgKCkgPT4ge1xuICAgIGNvbnN0IGlucHV0czogYW55ID0gW1xuICAgICAge1xuICAgICAgICB0aW1lc3RhbXA6ICcyMDIzLTA3LTA2VDAwOjAwJyxcbiAgICAgICAgZHVyYXRpb246IDM2MDAsXG4gICAgICAgICdjcHUtdXRpbCc6IDE4LjM5MixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHRpbWVzdGFtcDogJzIwMjMtMDgtMDZUMDA6MDAnLFxuICAgICAgICBkdXJhdGlvbjogMzYwMCxcbiAgICAgICAgJ2NwdS11dGlsJzogMTYsXG4gICAgICB9LFxuICAgIF07XG5cbiAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAnY29yZS11bml0cyc6IDI0LFxuICAgICAgJ3BoeXNpY2FsLXByb2Nlc3Nvcic6ICdJbnRlbMKuIENvcmXihKIgaTctMTE4NUc3JyxcbiAgICAgIGFsbG9jYXRpb246ICdMSU5FQVInLFxuICAgICAgdmVyYm9zZTogdHJ1ZSxcbiAgICB9O1xuXG4gICAgaXQoJ3JldHVybnMgT2JzZXJ2YXRvcnkgY2xhc3MuJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbGFiID0gbmV3IE9ic2VydmF0b3J5KGlucHV0cyk7XG5cbiAgICAgIGNvbnN0IGJvYXZpenRhTW9kZWwgPSBhd2FpdCBuZXcgTW9ja2F2aXp0YU1vZGVsKCkuY29uZmlndXJlKHBhcmFtcyk7XG5cbiAgICAgIGJvYXZpenRhTW9kZWwuZXhlY3V0ZSA9IGplc3QuZm4oKCkgPT4gUHJvbWlzZS5yZXNvbHZlKGV4cGVjdGVkVmFsdWUpKTtcblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbGFiLmRvSW52ZXN0aWdhdGlvbnNXaXRoKGJvYXZpenRhTW9kZWwpO1xuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZUluc3RhbmNlT2YoT2JzZXJ2YXRvcnkpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZ2V0T3V0cHV0cygpOiAnLCAoKSA9PiB7XG4gICAgY29uc3QgaW5wdXRzOiBhbnkgPSBbXG4gICAgICB7XG4gICAgICAgIHRpbWVzdGFtcDogJzIwMjMtMDctMDZUMDA6MDAnLFxuICAgICAgICBkdXJhdGlvbjogMzYwMCxcbiAgICAgICAgJ2NwdS11dGlsJzogMTguMzkyLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdGltZXN0YW1wOiAnMjAyMy0wOC0wNlQwMDowMCcsXG4gICAgICAgIGR1cmF0aW9uOiAzNjAwLFxuICAgICAgICAnY3B1LXV0aWwnOiAxNixcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICdjb3JlLXVuaXRzJzogMjQsXG4gICAgICAncGh5c2ljYWwtcHJvY2Vzc29yJzogJ0ludGVswq4gQ29yZeKEoiBpNy0xMTg1RzcnLFxuICAgICAgYWxsb2NhdGlvbjogJ0xJTkVBUicsXG4gICAgICB2ZXJib3NlOiB0cnVlLFxuICAgIH07XG5cbiAgICBpdCgncmV0dXJucyBlbXB0eSBvdXRwdXRzIGRhdGEuJywgKCkgPT4ge1xuICAgICAgY29uc3QgbGFiID0gbmV3IE9ic2VydmF0b3J5KGlucHV0cyk7XG5cbiAgICAgIGNvbnN0IGV4cGVjdGVkVmFsdWU6IGFueSA9IFtdO1xuXG4gICAgICBleHBlY3QobGFiLmdldE91dHB1dHMoKSkudG9FcXVhbChleHBlY3RlZFZhbHVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZXR1cm5zIGV4ZWN1dGVkIG91dHB1dHMgZGF0YS4nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBsYWIgPSBuZXcgT2JzZXJ2YXRvcnkoaW5wdXRzKTtcbiAgICAgIGNvbnN0IGJvYXZpenRhTW9kZWwgPSBhd2FpdCBuZXcgTW9ja2F2aXp0YU1vZGVsKCkuY29uZmlndXJlKHBhcmFtcyk7XG5cbiAgICAgIGJvYXZpenRhTW9kZWwuZXhlY3V0ZSA9IGplc3QuZm4oKCkgPT4gUHJvbWlzZS5yZXNvbHZlKGV4cGVjdGVkVmFsdWUpKTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGxhYi5kb0ludmVzdGlnYXRpb25zV2l0aChib2F2aXp0YU1vZGVsKTtcblxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9CZUluc3RhbmNlT2YoT2JzZXJ2YXRvcnkpO1xuICAgICAgZXhwZWN0KGxhYi5nZXRPdXRwdXRzKCkpLnRvRXF1YWwoZXhwZWN0ZWRWYWx1ZSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const globals_1 = require("@jest/globals");
|
|
4
|
-
const index_1 = require("../../../../lib/sci/index");
|
|
5
|
-
globals_1.jest.setTimeout(30000);
|
|
6
|
-
(0, globals_1.describe)('sci:configure test', () => {
|
|
7
|
-
(0, globals_1.test)('initialize and test', async () => {
|
|
8
|
-
const model = await new index_1.SciModel().configure('name', {
|
|
9
|
-
'functional-unit-time': 'minutes',
|
|
10
|
-
'functional-unit': 'users',
|
|
11
|
-
'functional-unit-duration': 1,
|
|
12
|
-
});
|
|
13
|
-
(0, globals_1.expect)(model).toBeInstanceOf(index_1.SciModel);
|
|
14
|
-
await (0, globals_1.expect)(model.execute([
|
|
15
|
-
{
|
|
16
|
-
'operational-carbon': 0.02,
|
|
17
|
-
'embodied-carbon': 5,
|
|
18
|
-
users: 100,
|
|
19
|
-
duration: 1,
|
|
20
|
-
},
|
|
21
|
-
])).resolves.toStrictEqual([
|
|
22
|
-
{
|
|
23
|
-
'operational-carbon': 0.02,
|
|
24
|
-
'embodied-carbon': 5,
|
|
25
|
-
users: 100,
|
|
26
|
-
duration: 1,
|
|
27
|
-
sci: 3.012,
|
|
28
|
-
},
|
|
29
|
-
]);
|
|
30
|
-
await (0, globals_1.expect)(model.execute([
|
|
31
|
-
{
|
|
32
|
-
'operational-carbon': 20,
|
|
33
|
-
'embodied-carbon': 0.005,
|
|
34
|
-
users: 1000,
|
|
35
|
-
duration: 1,
|
|
36
|
-
},
|
|
37
|
-
])).resolves.toStrictEqual([
|
|
38
|
-
{
|
|
39
|
-
'operational-carbon': 20,
|
|
40
|
-
'embodied-carbon': 0.005,
|
|
41
|
-
users: 1000,
|
|
42
|
-
duration: 1,
|
|
43
|
-
sci: 1.2003,
|
|
44
|
-
},
|
|
45
|
-
]);
|
|
46
|
-
});
|
|
47
|
-
(0, globals_1.test)('initialize and test: vary input duration ', async () => {
|
|
48
|
-
const model = await new index_1.SciModel().configure('name', {
|
|
49
|
-
'functional-unit-time': 'days',
|
|
50
|
-
'functional-unit': '',
|
|
51
|
-
'functional-unit-duration': 1,
|
|
52
|
-
});
|
|
53
|
-
(0, globals_1.expect)(model).toBeInstanceOf(index_1.SciModel);
|
|
54
|
-
await (0, globals_1.expect)(model.execute([
|
|
55
|
-
{
|
|
56
|
-
'operational-carbon': 0.2,
|
|
57
|
-
'embodied-carbon': 0.05,
|
|
58
|
-
duration: 100,
|
|
59
|
-
},
|
|
60
|
-
])).resolves.toStrictEqual([
|
|
61
|
-
{
|
|
62
|
-
'operational-carbon': 0.2,
|
|
63
|
-
'embodied-carbon': 0.05,
|
|
64
|
-
duration: 100,
|
|
65
|
-
sci: 216,
|
|
66
|
-
},
|
|
67
|
-
]);
|
|
68
|
-
await (0, globals_1.expect)(model.execute([
|
|
69
|
-
{
|
|
70
|
-
'operational-carbon': 0.002,
|
|
71
|
-
'embodied-carbon': 0.0005,
|
|
72
|
-
duration: 2,
|
|
73
|
-
},
|
|
74
|
-
])).resolves.toStrictEqual([
|
|
75
|
-
{
|
|
76
|
-
'operational-carbon': 0.002,
|
|
77
|
-
'embodied-carbon': 0.0005,
|
|
78
|
-
duration: 2,
|
|
79
|
-
sci: 108,
|
|
80
|
-
},
|
|
81
|
-
]);
|
|
82
|
-
});
|
|
83
|
-
(0, globals_1.test)('initialize and test: vary functional-unit-duration', async () => {
|
|
84
|
-
const model = await new index_1.SciModel().configure('name', {
|
|
85
|
-
'functional-unit-time': 'days',
|
|
86
|
-
'functional-unit': '',
|
|
87
|
-
'functional-unit-duration': 2,
|
|
88
|
-
});
|
|
89
|
-
(0, globals_1.expect)(model).toBeInstanceOf(index_1.SciModel);
|
|
90
|
-
await (0, globals_1.expect)(model.execute([
|
|
91
|
-
{
|
|
92
|
-
'operational-carbon': 0.002,
|
|
93
|
-
'embodied-carbon': 0.0005,
|
|
94
|
-
duration: 1,
|
|
95
|
-
},
|
|
96
|
-
])).resolves.toStrictEqual([
|
|
97
|
-
{
|
|
98
|
-
'operational-carbon': 0.002,
|
|
99
|
-
'embodied-carbon': 0.0005,
|
|
100
|
-
duration: 1,
|
|
101
|
-
sci: 432,
|
|
102
|
-
},
|
|
103
|
-
]);
|
|
104
|
-
});
|
|
105
|
-
});
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9fX3Rlc3RzX18vdW5pdC9saWIvc2NpL2luZGV4LnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwyQ0FBMkQ7QUFDM0QscURBQW1EO0FBQ25ELGNBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7QUFFdkIsSUFBQSxrQkFBUSxFQUFDLG9CQUFvQixFQUFFLEdBQUcsRUFBRTtJQUNsQyxJQUFBLGNBQUksRUFBQyxxQkFBcUIsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNyQyxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksZ0JBQVEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7WUFDbkQsc0JBQXNCLEVBQUUsU0FBUztZQUNqQyxpQkFBaUIsRUFBRSxPQUFPO1lBQzFCLDBCQUEwQixFQUFFLENBQUM7U0FDOUIsQ0FBQyxDQUFDO1FBQ0gsSUFBQSxnQkFBTSxFQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxnQkFBUSxDQUFDLENBQUM7UUFDdkMsTUFBTSxJQUFBLGdCQUFNLEVBQ1YsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUNaO2dCQUNFLG9CQUFvQixFQUFFLElBQUk7Z0JBQzFCLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3BCLEtBQUssRUFBRSxHQUFHO2dCQUNWLFFBQVEsRUFBRSxDQUFDO2FBQ1o7U0FDRixDQUFDLENBQ0gsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO1lBQ3ZCO2dCQUNFLG9CQUFvQixFQUFFLElBQUk7Z0JBQzFCLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3BCLEtBQUssRUFBRSxHQUFHO2dCQUNWLFFBQVEsRUFBRSxDQUFDO2dCQUNYLEdBQUcsRUFBRSxLQUFLO2FBQ1g7U0FDRixDQUFDLENBQUM7UUFDSCxNQUFNLElBQUEsZ0JBQU0sRUFDVixLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ1o7Z0JBQ0Usb0JBQW9CLEVBQUUsRUFBRTtnQkFDeEIsaUJBQWlCLEVBQUUsS0FBSztnQkFDeEIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsUUFBUSxFQUFFLENBQUM7YUFDWjtTQUNGLENBQUMsQ0FDSCxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7WUFDdkI7Z0JBQ0Usb0JBQW9CLEVBQUUsRUFBRTtnQkFDeEIsaUJBQWlCLEVBQUUsS0FBSztnQkFDeEIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsUUFBUSxFQUFFLENBQUM7Z0JBQ1gsR0FBRyxFQUFFLE1BQU07YUFDWjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0gsSUFBQSxjQUFJLEVBQUMsMkNBQTJDLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDM0QsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLGdCQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQ25ELHNCQUFzQixFQUFFLE1BQU07WUFDOUIsaUJBQWlCLEVBQUUsRUFBRTtZQUNyQiwwQkFBMEIsRUFBRSxDQUFDO1NBQzlCLENBQUMsQ0FBQztRQUNILElBQUEsZ0JBQU0sRUFBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsZ0JBQVEsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sSUFBQSxnQkFBTSxFQUNWLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDWjtnQkFDRSxvQkFBb0IsRUFBRSxHQUFHO2dCQUN6QixpQkFBaUIsRUFBRSxJQUFJO2dCQUN2QixRQUFRLEVBQUUsR0FBRzthQUNkO1NBQ0YsQ0FBQyxDQUNILENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQztZQUN2QjtnQkFDRSxvQkFBb0IsRUFBRSxHQUFHO2dCQUN6QixpQkFBaUIsRUFBRSxJQUFJO2dCQUN2QixRQUFRLEVBQUUsR0FBRztnQkFDYixHQUFHLEVBQUUsR0FBRzthQUNUO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxJQUFBLGdCQUFNLEVBQ1YsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUNaO2dCQUNFLG9CQUFvQixFQUFFLEtBQUs7Z0JBQzNCLGlCQUFpQixFQUFFLE1BQU07Z0JBQ3pCLFFBQVEsRUFBRSxDQUFDO2FBQ1o7U0FDRixDQUFDLENBQ0gsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO1lBQ3ZCO2dCQUNFLG9CQUFvQixFQUFFLEtBQUs7Z0JBQzNCLGlCQUFpQixFQUFFLE1BQU07Z0JBQ3pCLFFBQVEsRUFBRSxDQUFDO2dCQUNYLEdBQUcsRUFBRSxHQUFHO2FBQ1Q7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUNILElBQUEsY0FBSSxFQUFDLG9EQUFvRCxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3BFLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxnQkFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRTtZQUNuRCxzQkFBc0IsRUFBRSxNQUFNO1lBQzlCLGlCQUFpQixFQUFFLEVBQUU7WUFDckIsMEJBQTBCLEVBQUUsQ0FBQztTQUM5QixDQUFDLENBQUM7UUFDSCxJQUFBLGdCQUFNLEVBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLGdCQUFRLENBQUMsQ0FBQztRQUN2QyxNQUFNLElBQUEsZ0JBQU0sRUFDVixLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ1o7Z0JBQ0Usb0JBQW9CLEVBQUUsS0FBSztnQkFDM0IsaUJBQWlCLEVBQUUsTUFBTTtnQkFDekIsUUFBUSxFQUFFLENBQUM7YUFDWjtTQUNGLENBQUMsQ0FDSCxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7WUFDdkI7Z0JBQ0Usb0JBQW9CLEVBQUUsS0FBSztnQkFDM0IsaUJBQWlCLEVBQUUsTUFBTTtnQkFDekIsUUFBUSxFQUFFLENBQUM7Z0JBQ1gsR0FBRyxFQUFFLEdBQUc7YUFDVDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2Rlc2NyaWJlLCBleHBlY3QsIGplc3QsIHRlc3R9IGZyb20gJ0BqZXN0L2dsb2JhbHMnO1xuaW1wb3J0IHtTY2lNb2RlbH0gZnJvbSAnLi4vLi4vLi4vLi4vbGliL3NjaS9pbmRleCc7XG5qZXN0LnNldFRpbWVvdXQoMzAwMDApO1xuXG5kZXNjcmliZSgnc2NpOmNvbmZpZ3VyZSB0ZXN0JywgKCkgPT4ge1xuICB0ZXN0KCdpbml0aWFsaXplIGFuZCB0ZXN0JywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IG1vZGVsID0gYXdhaXQgbmV3IFNjaU1vZGVsKCkuY29uZmlndXJlKCduYW1lJywge1xuICAgICAgJ2Z1bmN0aW9uYWwtdW5pdC10aW1lJzogJ21pbnV0ZXMnLFxuICAgICAgJ2Z1bmN0aW9uYWwtdW5pdCc6ICd1c2VycycsXG4gICAgICAnZnVuY3Rpb25hbC11bml0LWR1cmF0aW9uJzogMSxcbiAgICB9KTtcbiAgICBleHBlY3QobW9kZWwpLnRvQmVJbnN0YW5jZU9mKFNjaU1vZGVsKTtcbiAgICBhd2FpdCBleHBlY3QoXG4gICAgICBtb2RlbC5leGVjdXRlKFtcbiAgICAgICAge1xuICAgICAgICAgICdvcGVyYXRpb25hbC1jYXJib24nOiAwLjAyLFxuICAgICAgICAgICdlbWJvZGllZC1jYXJib24nOiA1LFxuICAgICAgICAgIHVzZXJzOiAxMDAsXG4gICAgICAgICAgZHVyYXRpb246IDEsXG4gICAgICAgIH0sXG4gICAgICBdKVxuICAgICkucmVzb2x2ZXMudG9TdHJpY3RFcXVhbChbXG4gICAgICB7XG4gICAgICAgICdvcGVyYXRpb25hbC1jYXJib24nOiAwLjAyLFxuICAgICAgICAnZW1ib2RpZWQtY2FyYm9uJzogNSxcbiAgICAgICAgdXNlcnM6IDEwMCxcbiAgICAgICAgZHVyYXRpb246IDEsXG4gICAgICAgIHNjaTogMy4wMTIsXG4gICAgICB9LFxuICAgIF0pO1xuICAgIGF3YWl0IGV4cGVjdChcbiAgICAgIG1vZGVsLmV4ZWN1dGUoW1xuICAgICAgICB7XG4gICAgICAgICAgJ29wZXJhdGlvbmFsLWNhcmJvbic6IDIwLFxuICAgICAgICAgICdlbWJvZGllZC1jYXJib24nOiAwLjAwNSxcbiAgICAgICAgICB1c2VyczogMTAwMCxcbiAgICAgICAgICBkdXJhdGlvbjogMSxcbiAgICAgICAgfSxcbiAgICAgIF0pXG4gICAgKS5yZXNvbHZlcy50b1N0cmljdEVxdWFsKFtcbiAgICAgIHtcbiAgICAgICAgJ29wZXJhdGlvbmFsLWNhcmJvbic6IDIwLFxuICAgICAgICAnZW1ib2RpZWQtY2FyYm9uJzogMC4wMDUsXG4gICAgICAgIHVzZXJzOiAxMDAwLFxuICAgICAgICBkdXJhdGlvbjogMSxcbiAgICAgICAgc2NpOiAxLjIwMDMsXG4gICAgICB9LFxuICAgIF0pO1xuICB9KTtcbiAgdGVzdCgnaW5pdGlhbGl6ZSBhbmQgdGVzdDogdmFyeSBpbnB1dCBkdXJhdGlvbiAnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgbW9kZWwgPSBhd2FpdCBuZXcgU2NpTW9kZWwoKS5jb25maWd1cmUoJ25hbWUnLCB7XG4gICAgICAnZnVuY3Rpb25hbC11bml0LXRpbWUnOiAnZGF5cycsXG4gICAgICAnZnVuY3Rpb25hbC11bml0JzogJycsXG4gICAgICAnZnVuY3Rpb25hbC11bml0LWR1cmF0aW9uJzogMSxcbiAgICB9KTtcbiAgICBleHBlY3QobW9kZWwpLnRvQmVJbnN0YW5jZU9mKFNjaU1vZGVsKTtcbiAgICBhd2FpdCBleHBlY3QoXG4gICAgICBtb2RlbC5leGVjdXRlKFtcbiAgICAgICAge1xuICAgICAgICAgICdvcGVyYXRpb25hbC1jYXJib24nOiAwLjIsXG4gICAgICAgICAgJ2VtYm9kaWVkLWNhcmJvbic6IDAuMDUsXG4gICAgICAgICAgZHVyYXRpb246IDEwMCxcbiAgICAgICAgfSxcbiAgICAgIF0pXG4gICAgKS5yZXNvbHZlcy50b1N0cmljdEVxdWFsKFtcbiAgICAgIHtcbiAgICAgICAgJ29wZXJhdGlvbmFsLWNhcmJvbic6IDAuMixcbiAgICAgICAgJ2VtYm9kaWVkLWNhcmJvbic6IDAuMDUsXG4gICAgICAgIGR1cmF0aW9uOiAxMDAsXG4gICAgICAgIHNjaTogMjE2LFxuICAgICAgfSxcbiAgICBdKTtcbiAgICBhd2FpdCBleHBlY3QoXG4gICAgICBtb2RlbC5leGVjdXRlKFtcbiAgICAgICAge1xuICAgICAgICAgICdvcGVyYXRpb25hbC1jYXJib24nOiAwLjAwMixcbiAgICAgICAgICAnZW1ib2RpZWQtY2FyYm9uJzogMC4wMDA1LFxuICAgICAgICAgIGR1cmF0aW9uOiAyLFxuICAgICAgICB9LFxuICAgICAgXSlcbiAgICApLnJlc29sdmVzLnRvU3RyaWN0RXF1YWwoW1xuICAgICAge1xuICAgICAgICAnb3BlcmF0aW9uYWwtY2FyYm9uJzogMC4wMDIsXG4gICAgICAgICdlbWJvZGllZC1jYXJib24nOiAwLjAwMDUsXG4gICAgICAgIGR1cmF0aW9uOiAyLFxuICAgICAgICBzY2k6IDEwOCxcbiAgICAgIH0sXG4gICAgXSk7XG4gIH0pO1xuICB0ZXN0KCdpbml0aWFsaXplIGFuZCB0ZXN0OiB2YXJ5IGZ1bmN0aW9uYWwtdW5pdC1kdXJhdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBtb2RlbCA9IGF3YWl0IG5ldyBTY2lNb2RlbCgpLmNvbmZpZ3VyZSgnbmFtZScsIHtcbiAgICAgICdmdW5jdGlvbmFsLXVuaXQtdGltZSc6ICdkYXlzJyxcbiAgICAgICdmdW5jdGlvbmFsLXVuaXQnOiAnJyxcbiAgICAgICdmdW5jdGlvbmFsLXVuaXQtZHVyYXRpb24nOiAyLFxuICAgIH0pO1xuICAgIGV4cGVjdChtb2RlbCkudG9CZUluc3RhbmNlT2YoU2NpTW9kZWwpO1xuICAgIGF3YWl0IGV4cGVjdChcbiAgICAgIG1vZGVsLmV4ZWN1dGUoW1xuICAgICAgICB7XG4gICAgICAgICAgJ29wZXJhdGlvbmFsLWNhcmJvbic6IDAuMDAyLFxuICAgICAgICAgICdlbWJvZGllZC1jYXJib24nOiAwLjAwMDUsXG4gICAgICAgICAgZHVyYXRpb246IDEsXG4gICAgICAgIH0sXG4gICAgICBdKVxuICAgICkucmVzb2x2ZXMudG9TdHJpY3RFcXVhbChbXG4gICAgICB7XG4gICAgICAgICdvcGVyYXRpb25hbC1jYXJib24nOiAwLjAwMixcbiAgICAgICAgJ2VtYm9kaWVkLWNhcmJvbic6IDAuMDAwNSxcbiAgICAgICAgZHVyYXRpb246IDEsXG4gICAgICAgIHNjaTogNDMyLFxuICAgICAgfSxcbiAgICBdKTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const globals_1 = require("@jest/globals");
|
|
4
|
-
const index_1 = require("../../../../lib/sci-e/index");
|
|
5
|
-
globals_1.jest.setTimeout(30000);
|
|
6
|
-
(0, globals_1.describe)('sci-e:configure test', () => {
|
|
7
|
-
(0, globals_1.test)('initialize with params', async () => {
|
|
8
|
-
const outputModel = new index_1.SciEModel();
|
|
9
|
-
await outputModel.configure('test', {});
|
|
10
|
-
await (0, globals_1.expect)(outputModel.execute([
|
|
11
|
-
{
|
|
12
|
-
duration: 3600,
|
|
13
|
-
'energy-cpu': 1,
|
|
14
|
-
'energy-network': 1,
|
|
15
|
-
'energy-memory': 1,
|
|
16
|
-
timestamp: '2021-01-01T00:00:00Z',
|
|
17
|
-
},
|
|
18
|
-
])).resolves.toStrictEqual([
|
|
19
|
-
{
|
|
20
|
-
duration: 3600,
|
|
21
|
-
'energy-cpu': 1,
|
|
22
|
-
'energy-network': 1,
|
|
23
|
-
'energy-memory': 1,
|
|
24
|
-
energy: 3,
|
|
25
|
-
timestamp: '2021-01-01T00:00:00Z',
|
|
26
|
-
},
|
|
27
|
-
]);
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9fX3Rlc3RzX18vdW5pdC9saWIvc2NpLWUvaW5kZXgudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDJDQUEyRDtBQUMzRCx1REFBc0Q7QUFFdEQsY0FBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUV2QixJQUFBLGtCQUFRLEVBQUMsc0JBQXNCLEVBQUUsR0FBRyxFQUFFO0lBQ3BDLElBQUEsY0FBSSxFQUFDLHdCQUF3QixFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3hDLE1BQU0sV0FBVyxHQUFHLElBQUksaUJBQVMsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEMsTUFBTSxJQUFBLGdCQUFNLEVBQ1YsV0FBVyxDQUFDLE9BQU8sQ0FBQztZQUNsQjtnQkFDRSxRQUFRLEVBQUUsSUFBSTtnQkFDZCxZQUFZLEVBQUUsQ0FBQztnQkFDZixnQkFBZ0IsRUFBRSxDQUFDO2dCQUNuQixlQUFlLEVBQUUsQ0FBQztnQkFDbEIsU0FBUyxFQUFFLHNCQUFzQjthQUNsQztTQUNGLENBQUMsQ0FDSCxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7WUFDdkI7Z0JBQ0UsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsWUFBWSxFQUFFLENBQUM7Z0JBQ2YsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDbkIsZUFBZSxFQUFFLENBQUM7Z0JBQ2xCLE1BQU0sRUFBRSxDQUFDO2dCQUNULFNBQVMsRUFBRSxzQkFBc0I7YUFDbEM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkZXNjcmliZSwgZXhwZWN0LCBqZXN0LCB0ZXN0fSBmcm9tICdAamVzdC9nbG9iYWxzJztcbmltcG9ydCB7U2NpRU1vZGVsfSBmcm9tICcuLi8uLi8uLi8uLi9saWIvc2NpLWUvaW5kZXgnO1xuXG5qZXN0LnNldFRpbWVvdXQoMzAwMDApO1xuXG5kZXNjcmliZSgnc2NpLWU6Y29uZmlndXJlIHRlc3QnLCAoKSA9PiB7XG4gIHRlc3QoJ2luaXRpYWxpemUgd2l0aCBwYXJhbXMnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3Qgb3V0cHV0TW9kZWwgPSBuZXcgU2NpRU1vZGVsKCk7XG4gICAgYXdhaXQgb3V0cHV0TW9kZWwuY29uZmlndXJlKCd0ZXN0Jywge30pO1xuICAgIGF3YWl0IGV4cGVjdChcbiAgICAgIG91dHB1dE1vZGVsLmV4ZWN1dGUoW1xuICAgICAgICB7XG4gICAgICAgICAgZHVyYXRpb246IDM2MDAsXG4gICAgICAgICAgJ2VuZXJneS1jcHUnOiAxLFxuICAgICAgICAgICdlbmVyZ3ktbmV0d29yayc6IDEsXG4gICAgICAgICAgJ2VuZXJneS1tZW1vcnknOiAxLFxuICAgICAgICAgIHRpbWVzdGFtcDogJzIwMjEtMDEtMDFUMDA6MDA6MDBaJyxcbiAgICAgICAgfSxcbiAgICAgIF0pXG4gICAgKS5yZXNvbHZlcy50b1N0cmljdEVxdWFsKFtcbiAgICAgIHtcbiAgICAgICAgZHVyYXRpb246IDM2MDAsXG4gICAgICAgICdlbmVyZ3ktY3B1JzogMSxcbiAgICAgICAgJ2VuZXJneS1uZXR3b3JrJzogMSxcbiAgICAgICAgJ2VuZXJneS1tZW1vcnknOiAxLFxuICAgICAgICBlbmVyZ3k6IDMsXG4gICAgICAgIHRpbWVzdGFtcDogJzIwMjEtMDEtMDFUMDA6MDA6MDBaJyxcbiAgICAgIH0sXG4gICAgXSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const globals_1 = require("@jest/globals");
|
|
4
|
-
const index_1 = require("../../../../lib/sci-m/index");
|
|
5
|
-
globals_1.jest.setTimeout(30000);
|
|
6
|
-
(0, globals_1.describe)('sci-o:configure test', () => {
|
|
7
|
-
(0, globals_1.test)('initialize and test', async () => {
|
|
8
|
-
const model = await new index_1.SciMModel().configure('sci-o', {});
|
|
9
|
-
(0, globals_1.expect)(model).toBeInstanceOf(index_1.SciMModel);
|
|
10
|
-
await (0, globals_1.expect)(model.execute([
|
|
11
|
-
{
|
|
12
|
-
'total-embodied-emissions': 200,
|
|
13
|
-
'time-reserved': 60 * 60 * 24 * 30,
|
|
14
|
-
'expected-lifespan': 60 * 60 * 24 * 365 * 4,
|
|
15
|
-
'resources-reserved': 1,
|
|
16
|
-
'total-resources': 1,
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
'total-embodied-emissions': 200,
|
|
20
|
-
duration: 60 * 60 * 24 * 30 * 2,
|
|
21
|
-
'time-reserved': 'duration',
|
|
22
|
-
'expected-lifespan': 60 * 60 * 24 * 365 * 4,
|
|
23
|
-
'resources-reserved': 1,
|
|
24
|
-
'total-resources': 1,
|
|
25
|
-
},
|
|
26
|
-
])).resolves.toStrictEqual([
|
|
27
|
-
{
|
|
28
|
-
'total-embodied-emissions': 200,
|
|
29
|
-
'time-reserved': 60 * 60 * 24 * 30,
|
|
30
|
-
'expected-lifespan': 60 * 60 * 24 * 365 * 4,
|
|
31
|
-
'resources-reserved': 1,
|
|
32
|
-
'total-resources': 1,
|
|
33
|
-
'embodied-carbon': 4.10958904109589,
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
'total-embodied-emissions': 200,
|
|
37
|
-
duration: 60 * 60 * 24 * 30 * 2,
|
|
38
|
-
'time-reserved': 'duration',
|
|
39
|
-
'expected-lifespan': 60 * 60 * 24 * 365 * 4,
|
|
40
|
-
'resources-reserved': 1,
|
|
41
|
-
'total-resources': 1,
|
|
42
|
-
'embodied-carbon': 4.10958904109589 * 2,
|
|
43
|
-
},
|
|
44
|
-
]);
|
|
45
|
-
await (0, globals_1.expect)(model.execute([
|
|
46
|
-
{
|
|
47
|
-
tee: 200,
|
|
48
|
-
duration: 60 * 60 * 24 * 30 * 2,
|
|
49
|
-
'time-reserved': 'duration',
|
|
50
|
-
'expected-lifespan': 60 * 60 * 24 * 365 * 4,
|
|
51
|
-
'resources-reserved': 1,
|
|
52
|
-
'total-resources': 1,
|
|
53
|
-
'embodied-carbon': 4.10958904109589 * 2,
|
|
54
|
-
},
|
|
55
|
-
])).rejects.toThrowError();
|
|
56
|
-
});
|
|
57
|
-
});
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9fX3Rlc3RzX18vdW5pdC9saWIvc2NpLW0vaW5kZXgudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDJDQUEyRDtBQUMzRCx1REFBc0Q7QUFDdEQsY0FBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUV2QixJQUFBLGtCQUFRLEVBQUMsc0JBQXNCLEVBQUUsR0FBRyxFQUFFO0lBQ3BDLElBQUEsY0FBSSxFQUFDLHFCQUFxQixFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3JDLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxpQkFBUyxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMzRCxJQUFBLGdCQUFNLEVBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLGlCQUFTLENBQUMsQ0FBQztRQUN4QyxNQUFNLElBQUEsZ0JBQU0sRUFDVixLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ1o7Z0JBQ0UsMEJBQTBCLEVBQUUsR0FBRztnQkFDL0IsZUFBZSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUU7Z0JBQ2xDLG1CQUFtQixFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDO2dCQUMzQyxvQkFBb0IsRUFBRSxDQUFDO2dCQUN2QixpQkFBaUIsRUFBRSxDQUFDO2FBQ3JCO1lBQ0Q7Z0JBQ0UsMEJBQTBCLEVBQUUsR0FBRztnQkFDL0IsUUFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO2dCQUMvQixlQUFlLEVBQUUsVUFBVTtnQkFDM0IsbUJBQW1CLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUM7Z0JBQzNDLG9CQUFvQixFQUFFLENBQUM7Z0JBQ3ZCLGlCQUFpQixFQUFFLENBQUM7YUFDckI7U0FDRixDQUFDLENBQ0gsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO1lBQ3ZCO2dCQUNFLDBCQUEwQixFQUFFLEdBQUc7Z0JBQy9CLGVBQWUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFO2dCQUNsQyxtQkFBbUIsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQztnQkFDM0Msb0JBQW9CLEVBQUUsQ0FBQztnQkFDdkIsaUJBQWlCLEVBQUUsQ0FBQztnQkFDcEIsaUJBQWlCLEVBQUUsZ0JBQWdCO2FBQ3BDO1lBQ0Q7Z0JBQ0UsMEJBQTBCLEVBQUUsR0FBRztnQkFDL0IsUUFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO2dCQUMvQixlQUFlLEVBQUUsVUFBVTtnQkFDM0IsbUJBQW1CLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUM7Z0JBQzNDLG9CQUFvQixFQUFFLENBQUM7Z0JBQ3ZCLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3BCLGlCQUFpQixFQUFFLGdCQUFnQixHQUFHLENBQUM7YUFDeEM7U0FDRixDQUFDLENBQUM7UUFDSCxNQUFNLElBQUEsZ0JBQU0sRUFDVixLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ1o7Z0JBQ0UsR0FBRyxFQUFFLEdBQUc7Z0JBQ1IsUUFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO2dCQUMvQixlQUFlLEVBQUUsVUFBVTtnQkFDM0IsbUJBQW1CLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUM7Z0JBQzNDLG9CQUFvQixFQUFFLENBQUM7Z0JBQ3ZCLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3BCLGlCQUFpQixFQUFFLGdCQUFnQixHQUFHLENBQUM7YUFDeEM7U0FDRixDQUFDLENBQ0gsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0IsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZGVzY3JpYmUsIGV4cGVjdCwgamVzdCwgdGVzdH0gZnJvbSAnQGplc3QvZ2xvYmFscyc7XG5pbXBvcnQge1NjaU1Nb2RlbH0gZnJvbSAnLi4vLi4vLi4vLi4vbGliL3NjaS1tL2luZGV4Jztcbmplc3Quc2V0VGltZW91dCgzMDAwMCk7XG5cbmRlc2NyaWJlKCdzY2ktbzpjb25maWd1cmUgdGVzdCcsICgpID0+IHtcbiAgdGVzdCgnaW5pdGlhbGl6ZSBhbmQgdGVzdCcsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBtb2RlbCA9IGF3YWl0IG5ldyBTY2lNTW9kZWwoKS5jb25maWd1cmUoJ3NjaS1vJywge30pO1xuICAgIGV4cGVjdChtb2RlbCkudG9CZUluc3RhbmNlT2YoU2NpTU1vZGVsKTtcbiAgICBhd2FpdCBleHBlY3QoXG4gICAgICBtb2RlbC5leGVjdXRlKFtcbiAgICAgICAge1xuICAgICAgICAgICd0b3RhbC1lbWJvZGllZC1lbWlzc2lvbnMnOiAyMDAsXG4gICAgICAgICAgJ3RpbWUtcmVzZXJ2ZWQnOiA2MCAqIDYwICogMjQgKiAzMCxcbiAgICAgICAgICAnZXhwZWN0ZWQtbGlmZXNwYW4nOiA2MCAqIDYwICogMjQgKiAzNjUgKiA0LFxuICAgICAgICAgICdyZXNvdXJjZXMtcmVzZXJ2ZWQnOiAxLFxuICAgICAgICAgICd0b3RhbC1yZXNvdXJjZXMnOiAxLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgJ3RvdGFsLWVtYm9kaWVkLWVtaXNzaW9ucyc6IDIwMCxcbiAgICAgICAgICBkdXJhdGlvbjogNjAgKiA2MCAqIDI0ICogMzAgKiAyLFxuICAgICAgICAgICd0aW1lLXJlc2VydmVkJzogJ2R1cmF0aW9uJyxcbiAgICAgICAgICAnZXhwZWN0ZWQtbGlmZXNwYW4nOiA2MCAqIDYwICogMjQgKiAzNjUgKiA0LFxuICAgICAgICAgICdyZXNvdXJjZXMtcmVzZXJ2ZWQnOiAxLFxuICAgICAgICAgICd0b3RhbC1yZXNvdXJjZXMnOiAxLFxuICAgICAgICB9LFxuICAgICAgXSlcbiAgICApLnJlc29sdmVzLnRvU3RyaWN0RXF1YWwoW1xuICAgICAge1xuICAgICAgICAndG90YWwtZW1ib2RpZWQtZW1pc3Npb25zJzogMjAwLFxuICAgICAgICAndGltZS1yZXNlcnZlZCc6IDYwICogNjAgKiAyNCAqIDMwLFxuICAgICAgICAnZXhwZWN0ZWQtbGlmZXNwYW4nOiA2MCAqIDYwICogMjQgKiAzNjUgKiA0LFxuICAgICAgICAncmVzb3VyY2VzLXJlc2VydmVkJzogMSxcbiAgICAgICAgJ3RvdGFsLXJlc291cmNlcyc6IDEsXG4gICAgICAgICdlbWJvZGllZC1jYXJib24nOiA0LjEwOTU4OTA0MTA5NTg5LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgJ3RvdGFsLWVtYm9kaWVkLWVtaXNzaW9ucyc6IDIwMCxcbiAgICAgICAgZHVyYXRpb246IDYwICogNjAgKiAyNCAqIDMwICogMixcbiAgICAgICAgJ3RpbWUtcmVzZXJ2ZWQnOiAnZHVyYXRpb24nLFxuICAgICAgICAnZXhwZWN0ZWQtbGlmZXNwYW4nOiA2MCAqIDYwICogMjQgKiAzNjUgKiA0LFxuICAgICAgICAncmVzb3VyY2VzLXJlc2VydmVkJzogMSxcbiAgICAgICAgJ3RvdGFsLXJlc291cmNlcyc6IDEsXG4gICAgICAgICdlbWJvZGllZC1jYXJib24nOiA0LjEwOTU4OTA0MTA5NTg5ICogMixcbiAgICAgIH0sXG4gICAgXSk7XG4gICAgYXdhaXQgZXhwZWN0KFxuICAgICAgbW9kZWwuZXhlY3V0ZShbXG4gICAgICAgIHtcbiAgICAgICAgICB0ZWU6IDIwMCxcbiAgICAgICAgICBkdXJhdGlvbjogNjAgKiA2MCAqIDI0ICogMzAgKiAyLFxuICAgICAgICAgICd0aW1lLXJlc2VydmVkJzogJ2R1cmF0aW9uJyxcbiAgICAgICAgICAnZXhwZWN0ZWQtbGlmZXNwYW4nOiA2MCAqIDYwICogMjQgKiAzNjUgKiA0LFxuICAgICAgICAgICdyZXNvdXJjZXMtcmVzZXJ2ZWQnOiAxLFxuICAgICAgICAgICd0b3RhbC1yZXNvdXJjZXMnOiAxLFxuICAgICAgICAgICdlbWJvZGllZC1jYXJib24nOiA0LjEwOTU4OTA0MTA5NTg5ICogMixcbiAgICAgICAgfSxcbiAgICAgIF0pXG4gICAgKS5yZWplY3RzLnRvVGhyb3dFcnJvcigpO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const globals_1 = require("@jest/globals");
|
|
4
|
-
const index_1 = require("../../../../lib/sci-o/index");
|
|
5
|
-
globals_1.jest.setTimeout(30000);
|
|
6
|
-
(0, globals_1.describe)('ccf:configure test', () => {
|
|
7
|
-
(0, globals_1.test)('initialize and test', async () => {
|
|
8
|
-
const model = await new index_1.SciOModel().configure('ccf', {});
|
|
9
|
-
(0, globals_1.expect)(model).toBeInstanceOf(index_1.SciOModel);
|
|
10
|
-
await (0, globals_1.expect)(model.execute([
|
|
11
|
-
{
|
|
12
|
-
'grid-carbon-intensity': 200.0,
|
|
13
|
-
energy: 100.0,
|
|
14
|
-
},
|
|
15
|
-
])).resolves.toStrictEqual([
|
|
16
|
-
{
|
|
17
|
-
'grid-carbon-intensity': 200.0,
|
|
18
|
-
energy: 100.0,
|
|
19
|
-
'operational-carbon': 100.0 * 200.0,
|
|
20
|
-
},
|
|
21
|
-
]);
|
|
22
|
-
await (0, globals_1.expect)(model.execute([
|
|
23
|
-
{
|
|
24
|
-
'grid-carbon-intensity': 212.1,
|
|
25
|
-
energy: 100.0,
|
|
26
|
-
},
|
|
27
|
-
])).resolves.toStrictEqual([
|
|
28
|
-
{
|
|
29
|
-
'grid-carbon-intensity': 212.1,
|
|
30
|
-
energy: 100.0,
|
|
31
|
-
'operational-carbon': 100.0 * 212.1,
|
|
32
|
-
},
|
|
33
|
-
]);
|
|
34
|
-
await (0, globals_1.expect)(model.execute([
|
|
35
|
-
{
|
|
36
|
-
'grid-carbon-intensityd': 212.1,
|
|
37
|
-
energy: 100.0,
|
|
38
|
-
},
|
|
39
|
-
])).rejects.toThrowError();
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9fX3Rlc3RzX18vdW5pdC9saWIvc2NpLW8vaW5kZXgudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDJDQUEyRDtBQUMzRCx1REFBc0Q7QUFDdEQsY0FBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUV2QixJQUFBLGtCQUFRLEVBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFO0lBQ2xDLElBQUEsY0FBSSxFQUFDLHFCQUFxQixFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3JDLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxpQkFBUyxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN6RCxJQUFBLGdCQUFNLEVBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLGlCQUFTLENBQUMsQ0FBQztRQUN4QyxNQUFNLElBQUEsZ0JBQU0sRUFDVixLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ1o7Z0JBQ0UsdUJBQXVCLEVBQUUsS0FBSztnQkFDOUIsTUFBTSxFQUFFLEtBQUs7YUFDZDtTQUNGLENBQUMsQ0FDSCxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7WUFDdkI7Z0JBQ0UsdUJBQXVCLEVBQUUsS0FBSztnQkFDOUIsTUFBTSxFQUFFLEtBQUs7Z0JBQ2Isb0JBQW9CLEVBQUUsS0FBSyxHQUFHLEtBQUs7YUFDcEM7U0FDRixDQUFDLENBQUM7UUFDSCxNQUFNLElBQUEsZ0JBQU0sRUFDVixLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ1o7Z0JBQ0UsdUJBQXVCLEVBQUUsS0FBSztnQkFDOUIsTUFBTSxFQUFFLEtBQUs7YUFDZDtTQUNGLENBQUMsQ0FDSCxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7WUFDdkI7Z0JBQ0UsdUJBQXVCLEVBQUUsS0FBSztnQkFDOUIsTUFBTSxFQUFFLEtBQUs7Z0JBQ2Isb0JBQW9CLEVBQUUsS0FBSyxHQUFHLEtBQUs7YUFDcEM7U0FDRixDQUFDLENBQUM7UUFDSCxNQUFNLElBQUEsZ0JBQU0sRUFDVixLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ1o7Z0JBQ0Usd0JBQXdCLEVBQUUsS0FBSztnQkFDL0IsTUFBTSxFQUFFLEtBQUs7YUFDZDtTQUNGLENBQUMsQ0FDSCxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMzQixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkZXNjcmliZSwgZXhwZWN0LCBqZXN0LCB0ZXN0fSBmcm9tICdAamVzdC9nbG9iYWxzJztcbmltcG9ydCB7U2NpT01vZGVsfSBmcm9tICcuLi8uLi8uLi8uLi9saWIvc2NpLW8vaW5kZXgnO1xuamVzdC5zZXRUaW1lb3V0KDMwMDAwKTtcblxuZGVzY3JpYmUoJ2NjZjpjb25maWd1cmUgdGVzdCcsICgpID0+IHtcbiAgdGVzdCgnaW5pdGlhbGl6ZSBhbmQgdGVzdCcsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBtb2RlbCA9IGF3YWl0IG5ldyBTY2lPTW9kZWwoKS5jb25maWd1cmUoJ2NjZicsIHt9KTtcbiAgICBleHBlY3QobW9kZWwpLnRvQmVJbnN0YW5jZU9mKFNjaU9Nb2RlbCk7XG4gICAgYXdhaXQgZXhwZWN0KFxuICAgICAgbW9kZWwuZXhlY3V0ZShbXG4gICAgICAgIHtcbiAgICAgICAgICAnZ3JpZC1jYXJib24taW50ZW5zaXR5JzogMjAwLjAsXG4gICAgICAgICAgZW5lcmd5OiAxMDAuMCxcbiAgICAgICAgfSxcbiAgICAgIF0pXG4gICAgKS5yZXNvbHZlcy50b1N0cmljdEVxdWFsKFtcbiAgICAgIHtcbiAgICAgICAgJ2dyaWQtY2FyYm9uLWludGVuc2l0eSc6IDIwMC4wLFxuICAgICAgICBlbmVyZ3k6IDEwMC4wLFxuICAgICAgICAnb3BlcmF0aW9uYWwtY2FyYm9uJzogMTAwLjAgKiAyMDAuMCxcbiAgICAgIH0sXG4gICAgXSk7XG4gICAgYXdhaXQgZXhwZWN0KFxuICAgICAgbW9kZWwuZXhlY3V0ZShbXG4gICAgICAgIHtcbiAgICAgICAgICAnZ3JpZC1jYXJib24taW50ZW5zaXR5JzogMjEyLjEsXG4gICAgICAgICAgZW5lcmd5OiAxMDAuMCxcbiAgICAgICAgfSxcbiAgICAgIF0pXG4gICAgKS5yZXNvbHZlcy50b1N0cmljdEVxdWFsKFtcbiAgICAgIHtcbiAgICAgICAgJ2dyaWQtY2FyYm9uLWludGVuc2l0eSc6IDIxMi4xLFxuICAgICAgICBlbmVyZ3k6IDEwMC4wLFxuICAgICAgICAnb3BlcmF0aW9uYWwtY2FyYm9uJzogMTAwLjAgKiAyMTIuMSxcbiAgICAgIH0sXG4gICAgXSk7XG4gICAgYXdhaXQgZXhwZWN0KFxuICAgICAgbW9kZWwuZXhlY3V0ZShbXG4gICAgICAgIHtcbiAgICAgICAgICAnZ3JpZC1jYXJib24taW50ZW5zaXR5ZCc6IDIxMi4xLFxuICAgICAgICAgIGVuZXJneTogMTAwLjAsXG4gICAgICAgIH0sXG4gICAgICBdKVxuICAgICkucmVqZWN0cy50b1Rocm93RXJyb3IoKTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|