@ -4,7 +4,6 @@
* Released under the modified BSD license . See COPYING . md for more details .
* /
import { UnitCommitmentScenario } from "../fixtures" ;
import {
changeBusData ,
createBus ,
@ -12,111 +11,59 @@ import {
renameBus ,
} from "./busOperations" ;
import assert from "node:assert" ;
export const BUS_TEST_DATA_1 : UnitCommitmentScenario = {
Parameters : {
Version : "0.4" ,
"Power balance penalty ($/MW)" : 1000.0 ,
"Time horizon (h)" : 5 ,
"Time step (min)" : 60 ,
} ,
Buses : {
b1 : { "Load (MW)" : [ 35.79534 , 34.38835 , 33.45083 , 32.89729 , 33.25044 ] } ,
b2 : { "Load (MW)" : [ 14.03739 , 13.48563 , 13.11797 , 12.9009 , 13.03939 ] } ,
b3 : { "Load (MW)" : [ 27.3729 , 26.29698 , 25.58005 , 25.15675 , 25.4268 ] } ,
} ,
} ;
export const BUS_TEST_DATA_2 : UnitCommitmentScenario = {
Parameters : {
Version : "0.4" ,
"Power balance penalty ($/MW)" : 1000.0 ,
"Time horizon (h)" : 2 ,
"Time step (min)" : 30 ,
} ,
Buses : {
b1 : { "Load (MW)" : [ 30 , 30 , 30 , 30 ] } ,
b2 : { "Load (MW)" : [ 10 , 20 , 30 , 40 ] } ,
b3 : { "Load (MW)" : [ 0 , 30 , 0 , 40 ] } ,
} ,
} ;
import { TEST_DATA_1 } from "../fixtures.test" ;
test ( "createBus" , ( ) = > {
const newScenario = createBus ( BUS_ TEST_DATA_1) ;
const newScenario = createBus ( TEST_DATA_1 ) ;
assert . deepEqual ( Object . keys ( newScenario . Buses ) , [ "b1" , "b2" , "b3" , "b4" ] ) ;
} ) ;
test ( "changeBusData" , ( ) = > {
let scenario = BUS_ TEST_DATA_1;
let scenario = TEST_DATA_1 ;
let err = null ;
[ scenario , err ] = changeBusData ( "b1" , "Load 0", "99" , scenario ) ;
[ scenario , err ] = changeBusData ( "b1" , "Load (MW) 00:00" , "99" , scenario ) ;
assert . equal ( err , null ) ;
[ scenario , err ] = changeBusData ( "b1" , "Load 3" , "99" , scenario ) ;
[ scenario , err ] = changeBusData ( "b1" , "Load (MW) 03:00" , "99" , scenario ) ;
assert . equal ( err , null ) ;
[ scenario , err ] = changeBusData ( "b3" , "Load 4", "99" , scenario ) ;
[ scenario , err ] = changeBusData ( "b3" , "Load (MW) 04:00" , "99" , scenario ) ;
assert . equal ( err , null ) ;
assert . deepEqual ( scenario , {
Parameters : {
Version : "0.4" ,
"Power balance penalty ($/MW)" : 1000.0 ,
"Time horizon (h)" : 5 ,
"Time step (min)" : 60 ,
} ,
Buses : {
b1 : { "Load (MW)" : [ 99 , 34.38835 , 33.45083 , 99 , 33.25044 ] } ,
b2 : { "Load (MW)" : [ 14.03739 , 13.48563 , 13.11797 , 12.9009 , 13.03939 ] } ,
b3 : { "Load (MW)" : [ 27.3729 , 26.29698 , 25.58005 , 25.15675 , 99 ] } ,
} ,
assert . deepEqual ( scenario . Buses , {
b1 : { "Load (MW)" : [ 99 , 34.38835 , 33.45083 , 99 , 33.25044 ] } ,
b2 : { "Load (MW)" : [ 14.03739 , 13.48563 , 13.11797 , 12.9009 , 13.03939 ] } ,
b3 : { "Load (MW)" : [ 27.3729 , 26.29698 , 25.58005 , 25.15675 , 99 ] } ,
} ) ;
} ) ;
test ( "changeBusData with invalid numbers" , ( ) = > {
let [ , err ] = changeBusData ( "b1" , "Load 0", "xx" , BUS_ TEST_DATA_1) ;
let [ , err ] = changeBusData ( "b1" , "Load (MW) 00:00" , "xx" , TEST_DATA_1 ) ;
assert ( err !== null ) ;
assert . equal ( err . message , "Invalid value: xx" ) ;
} ) ;
test ( "deleteBus" , ( ) = > {
let scenario = BUS_ TEST_DATA_1;
let scenario = TEST_DATA_1;
scenario = deleteBus ( "b2" , scenario ) ;
assert . deepEqual ( scenario , {
Parameters : {
Version : "0.4" ,
"Power balance penalty ($/MW)" : 1000.0 ,
"Time horizon (h)" : 5 ,
"Time step (min)" : 60 ,
} ,
Buses : {
b1 : { "Load (MW)" : [ 35.79534 , 34.38835 , 33.45083 , 32.89729 , 33.25044 ] } ,
b3 : { "Load (MW)" : [ 27.3729 , 26.29698 , 25.58005 , 25.15675 , 25.4268 ] } ,
} ,
assert . deepEqual ( scenario . Buses , {
b1 : { "Load (MW)" : [ 35.79534 , 34.38835 , 33.45083 , 32.89729 , 33.25044 ] } ,
b3 : { "Load (MW)" : [ 27.3729 , 26.29698 , 25.58005 , 25.15675 , 25.4268 ] } ,
} ) ;
} ) ;
test ( "renameBus" , ( ) = > {
let [ scenario , err ] = renameBus ( "b2" , "b99" , BUS_ TEST_DATA_1) ;
let [ scenario , err ] = renameBus ( "b2" , "b99" , TEST_DATA_1 ) ;
assert ( err === null ) ;
assert . deepEqual ( scenario , {
Parameters : {
Version : "0.4" ,
"Power balance penalty ($/MW)" : 1000.0 ,
"Time horizon (h)" : 5 ,
"Time step (min)" : 60 ,
} ,
Buses : {
b1 : { "Load (MW)" : [ 35.79534 , 34.38835 , 33.45083 , 32.89729 , 33.25044 ] } ,
b99 : { "Load (MW)" : [ 14.03739 , 13.48563 , 13.11797 , 12.9009 , 13.03939 ] } ,
b3 : { "Load (MW)" : [ 27.3729 , 26.29698 , 25.58005 , 25.15675 , 25.4268 ] } ,
} ,
assert . deepEqual ( scenario . Buses , {
b1 : { "Load (MW)" : [ 35.79534 , 34.38835 , 33.45083 , 32.89729 , 33.25044 ] } ,
b99 : { "Load (MW)" : [ 14.03739 , 13.48563 , 13.11797 , 12.9009 , 13.03939 ] } ,
b3 : { "Load (MW)" : [ 27.3729 , 26.29698 , 25.58005 , 25.15675 , 25.4268 ] } ,
} ) ;
} ) ;
test ( "renameBus with duplicated name" , ( ) = > {
let [ , err ] = renameBus ( "b3" , "b1" , BUS_ TEST_DATA_1) ;
let [ , err ] = renameBus ( "b3" , "b1" , TEST_DATA_1 ) ;
assert ( err != null ) ;
assert . equal ( err . message , ` Bus b1 already exists ` ) ;
} ) ;