|
| 1 | +package com.xxdb.data; |
| 2 | + |
| 3 | +import com.xxdb.DBConnection; |
| 4 | +import org.junit.After; |
| 5 | +import org.junit.Before; |
| 6 | +import org.junit.Test; |
| 7 | + |
| 8 | +import java.io.IOException; |
| 9 | +import java.util.HashMap; |
| 10 | +import java.util.Map; |
| 11 | +import java.util.ResourceBundle; |
| 12 | + |
| 13 | +import static com.xxdb.data.Entity.DATA_CATEGORY.SYSTEM; |
| 14 | +import static com.xxdb.data.Entity.DATA_TYPE.DT_MKTDATA; |
| 15 | +import static org.junit.Assert.assertEquals; |
| 16 | + |
| 17 | +public class BasicMktDataTest { |
| 18 | + private DBConnection conn; |
| 19 | + static ResourceBundle bundle = ResourceBundle.getBundle("com/xxdb/setup/settings"); |
| 20 | + static String HOST = bundle.getString("HOST"); |
| 21 | + static int PORT = Integer.parseInt(bundle.getString("PORT")); |
| 22 | + @Before |
| 23 | + public void setUp(){ |
| 24 | + conn = new DBConnection(); |
| 25 | + try{ |
| 26 | + if(!conn.connect(HOST,PORT,"admin","123456")){ |
| 27 | + throw new IOException("Failed to connect to 2xdb server"); |
| 28 | + } |
| 29 | + }catch(IOException ex){ |
| 30 | + ex.printStackTrace(); |
| 31 | + } |
| 32 | + } |
| 33 | + |
| 34 | + @After |
| 35 | + public void tearDown() throws Exception { |
| 36 | + conn.close(); |
| 37 | + } |
| 38 | + @Test |
| 39 | + public void test_BasicMktData_basic() throws IOException { |
| 40 | + String script = "aod = 2025.07.01\n" + |
| 41 | + "discountCurve = {\n" + |
| 42 | + " \"mktDataType\": \"Curve\",\n" + |
| 43 | + " \"curveType\": \"IrYieldCurve\",\n" + |
| 44 | + " \"version\": 0, \n" + |
| 45 | + " \"referenceDate\": aod,\n" + |
| 46 | + " \"currency\": \"CNY\",\n" + |
| 47 | + " \"dayCountConvention\": \"Actual365\",\n" + |
| 48 | + " \"compounding\": \"Continuous\",\n" + |
| 49 | + " \"interpMethod\": \"LinearInterp\",\n" + |
| 50 | + " \"extrapMethod\": \"FlatExtrap\",\n" + |
| 51 | + " \"dates\":[2025.07.07,2025.07.10,2025.07.17,2025.07.24,2025.08.04,2025.09.03,2025.10.09,2026.01.05,\n" + |
| 52 | + " 2026.04.03,2026.07.03,2027.01.04,2027.07.05,2028.07.03],\n" + |
| 53 | + " \"values\":[0.015785,0.015931,0.016183,0.016381,0.016493,0.016503,0.016478,0.016234,0.016321,\n" + |
| 54 | + " 0.016378,0.015508,0.015185,0.014901],\n" + |
| 55 | + " \"settlement\": aod+2\n" + |
| 56 | + "}\n" + |
| 57 | + "mktdata = parseMktData(discountCurve);\n" + |
| 58 | + "mktdata;"; |
| 59 | + BasicMktData MktData = (BasicMktData)conn.run(script); |
| 60 | + System.out.println(MktData.getString()); |
| 61 | + assertEquals("MktData<detail invisible>",MktData.getString()); |
| 62 | + assertEquals(DT_MKTDATA, MktData.getDataType()); |
| 63 | + assertEquals(SYSTEM,MktData.getDataCategory()); |
| 64 | + String re = null; |
| 65 | + try{ |
| 66 | + MktData.compareTo(MktData); |
| 67 | + }catch(Exception ex){ |
| 68 | + re =ex.getMessage(); |
| 69 | + } |
| 70 | + assertEquals("BasicMktData.compareTo not supported.",re); |
| 71 | + } |
| 72 | + |
| 73 | + @Test |
| 74 | + public void test_BasicMktData_upload() throws IOException { |
| 75 | + String script = "aod = 2025.07.01\n" + |
| 76 | + "discountCurve = {\n" + |
| 77 | + " \"mktDataType\": \"Curve\",\n" + |
| 78 | + " \"curveType\": \"IrYieldCurve\",\n" + |
| 79 | + " \"version\": 0, \n" + |
| 80 | + " \"referenceDate\": aod,\n" + |
| 81 | + " \"currency\": \"CNY\",\n" + |
| 82 | + " \"dayCountConvention\": \"Actual365\",\n" + |
| 83 | + " \"compounding\": \"Continuous\",\n" + |
| 84 | + " \"interpMethod\": \"LinearInterp\",\n" + |
| 85 | + " \"extrapMethod\": \"FlatExtrap\",\n" + |
| 86 | + " \"dates\":[2025.07.07,2025.07.10,2025.07.17,2025.07.24,2025.08.04,2025.09.03,2025.10.09,2026.01.05,\n" + |
| 87 | + " 2026.04.03,2026.07.03,2027.01.04,2027.07.05,2028.07.03],\n" + |
| 88 | + " \"values\":[0.015785,0.015931,0.016183,0.016381,0.016493,0.016503,0.016478,0.016234,0.016321,\n" + |
| 89 | + " 0.016378,0.015508,0.015185,0.014901],\n" + |
| 90 | + " \"settlement\": aod+2\n" + |
| 91 | + "}\n" + |
| 92 | + "mktdata = parseMktData(discountCurve);\n" + |
| 93 | + "mktdata;"; |
| 94 | + BasicMktData MktData = (BasicMktData)conn.run(script); |
| 95 | + Map<String, Entity> upObj = new HashMap<String, Entity>(); |
| 96 | + upObj.put("MktData", (Entity) MktData); |
| 97 | + String re = null; |
| 98 | + try{ |
| 99 | + conn.upload(upObj); |
| 100 | + }catch(Exception ex){ |
| 101 | + re =ex.getMessage(); |
| 102 | + } |
| 103 | + assertEquals("Not support yet",re); |
| 104 | + } |
| 105 | +} |
0 commit comments