package org.ieee.odm.pwd;
import static org.junit.Assert.assertTrue;
import org.ieee.odm.adapter.IODMAdapter;
import org.ieee.odm.adapter.pwd.PowerWorldAdapter;
import org.ieee.odm.adapter.pwd.impl.BranchDataProcessor;
import org.ieee.odm.model.aclf.AclfModelParser;
import org.ieee.odm.schema.LineBranchXmlType;
import org.ieee.odm.schema.LoadflowBusXmlType;
import org.ieee.odm.schema.NameValuePairXmlType;
import org.ieee.odm.schema.XfrBranchXmlType;
import org.junit.Test;
public class CustomStringTest {
String STATION_TOKEN ="SubStation";
@Test
public void SixBusBase_CustromString_test(){
IODMAdapter adapter = new PowerWorldAdapter();
assertTrue(adapter.parseInputFile("testdata/pwd/SixBusTestCase.aux"));
AclfModelParser parser=(AclfModelParser) adapter.getModel();
parser.stdout();
//LOAD
/*
* DATA (LOAD, [CustomString,BusNum,LoadID,LoadStatus,LoadSMW,LoadSMVR,CustomString:1,
CustomSingle,CustomSingle:1,GenAGCAble])
{
"Sub2_230_LOAD" 2 "1 " "Closed" 100.000000 50.000000 "LDAREA_1" "" "" "YES"
*/
LoadflowBusXmlType bus2=parser.getBus("Bus2");
assertTrue(bus2.getNvPair().get(0).getName().equals("Load_CustomString"));
assertTrue(bus2.getNvPair().get(0).getValue().equals("Sub2_230_LOAD"));
//Gen custom String
/*
* DATA (GEN, [CustomString,CustomString:1,CustomString:2,BusNum,GenID,GenStatus,GenMW,GenMVR,
GenVoltSet,GenAGCAble,GenAVRAble,GenMWMin,GenMWMax,GenMVRMin,GenMVRMax,
GenUseCapCurve,GenRegNum,GenParFac,GenRMPCT,CustomSingle,GenOPFFastStart,
CustomSingle:1,CustomSingle:2,CustomSingle:3,CustomSingle:4])
{
"Sub1_14.9_G1" "G1" "DZONE_1" 11 "1"
*/
LoadflowBusXmlType g1=parser.getBus("Bus11");
assertTrue(g1.getNvPair().get(1).getName().equals("Gen_CustomString"));
assertTrue(g1.getNvPair().get(1).getValue().equals("Sub1_14.9_G1"));
assertTrue(g1.getNvPair().get(0).getName().equals(STATION_TOKEN));
assertTrue(g1.getNvPair().get(0).getValue().equals("Sub1"));
assertTrue(g1.getNvPair().get(2).getName().equals("Gen_CustomString:1"));
assertTrue(g1.getNvPair().get(2).getValue().equals("G1"));
assertTrue(g1.getNvPair().get(3).getName().equals("Gen_CustomString:2"));
assertTrue(g1.getNvPair().get(3).getValue().equals("DZONE_1"));
/*
for(NameValuePairXmlType nv: g1.getNvPair()){
System.out.println ("nv pair--name, value = " +nv.getName()+" , "+nv.getValue());
}
*/
//Branch custom string
/*
* DATA (BRANCH, [CustomString,CustomString:1,CustomString:2,BusNum,BusNum:1,LineCircuit,
{
"Line" "Sub2_230_L25" "L25" 25 52 "1"
*/
//Xfr Bus25_to_Bus52_cirId_1
/*
* <nvPair>
<name>Station</name>ZXZ
<value>Sub2</value>
</nvPair>
<nvPair>
<name>EquimentName</name>
<value>L25</value>
</nvPair>
*/
LineBranchXmlType L25=parser.getLineBranch("Bus25", "Bus52", "1");
assertTrue(L25.getNvPair().get(0).getName().equals(STATION_TOKEN));
assertTrue(L25.getNvPair().get(0).getValue().equals("Sub2"));
assertTrue(L25.getNvPair().get(1).getName().equals("EquimentName"));
assertTrue(L25.getNvPair().get(1).getValue().equals("L25"));
assertTrue(L25.getNvPair().get(2).getName().equals("CustomString"));
assertTrue(L25.getNvPair().get(2).getValue().equals("Line"));
assertTrue(L25.getNvPair().get(3).getName().equals("CustomString:1"));
assertTrue(L25.getNvPair().get(3).getValue().equals("Sub2_230_L25"));
//breaker
/*
* DATA (BRANCH, [CustomString,CustomString:1,CustomString:2,BusNum,BusNum:1,LineCircuit,LineXfmr,
LineR,LineX,LineC,LineAMVA,LineAMVA:1,LineAMVA:2,LineMonEle,LSName,LineStatus,
NormLineStatus])
{
"Breaker" "Sub1_19.4_1A" "1A" 11 1 "1"
*
*/
LineBranchXmlType brk=parser.getLineBranch("Bus11", "Bus1", "1");
assertTrue(brk.getNvPair().get(0).getName().equals(STATION_TOKEN));
assertTrue(brk.getNvPair().get(0).getValue().equals("Sub1"));
assertTrue(brk.getNvPair().get(1).getName().equals("EquimentName"));
assertTrue(brk.getNvPair().get(1).getValue().equals("1A"));
assertTrue(brk.getNvPair().get(2).getName().equals("CustomString"));
assertTrue(brk.getNvPair().get(2).getValue().equals("Breaker"));
assertTrue(brk.getNvPair().get(3).getName().equals("CustomString:1"));
assertTrue(brk.getNvPair().get(3).getValue().equals("Sub1_19.4_1A"));
//transformer
/*
* DATA (BRANCH, [CustomString,CustomString:1,CustomString:2
{
"Transformer" "Sub1_19.4_T12" "T12" 12 21 "T1"
*/
XfrBranchXmlType xfr=parser.getXfrBranch("Bus12", "Bus21", "T1");
assertTrue(xfr.getNvPair().get(0).getName().equals("CustomString"));
assertTrue(xfr.getNvPair().get(0).getValue().equals("Transformer"));
assertTrue(xfr.getNvPair().get(1).getName().equals("CustomString:1"));
assertTrue(xfr.getNvPair().get(1).getValue().equals("Sub1_19.4_T12"));
assertTrue(xfr.getNvPair().get(2).getName().equals(STATION_TOKEN));
assertTrue(xfr.getNvPair().get(2).getValue().equals("Sub1"));
assertTrue(xfr.getNvPair().get(3).getName().equals("EquimentName"));
assertTrue(xfr.getNvPair().get(3).getValue().equals("T12"));
}
@Test
public void testSubstationName(){
String extName="S_RANDOL_115_447-508-1",
equipmentName="447-508-1";
assertTrue(BranchDataProcessor.getSubstationName(extName, equipmentName).equals("S_RANDOL"));
String extName2="KEENE_RD_115_T1L-2E",
equipmentName2="T1L-2E";
assertTrue(BranchDataProcessor.getSubstationName(extName2, equipmentName2).equals("KEENE_RD"));
}
}