|
|
@@ -11,14 +11,16 @@ public class TruenessRefernece extends PVModel {
|
|
|
|
|
|
private List<Item> items = new ArrayList<>();
|
|
|
private String[] specimensName;
|
|
|
- public TruenessRefernece(String[] specimensName, int decimal){
|
|
|
+
|
|
|
+ public TruenessRefernece(String[] specimensName, int decimal) {
|
|
|
this.specimensName = specimensName;
|
|
|
this.setScale(decimal);
|
|
|
}
|
|
|
|
|
|
- public void buildItem(String name,double[][] data, double target, double sdClaim, double t){
|
|
|
- items.add(new Item(name,data,target,sdClaim,t));
|
|
|
+ public void buildItem(String name, double[][] data, double target, double sdClaim, double t) {
|
|
|
+ items.add(new Item(name, data, target, sdClaim, t));
|
|
|
}
|
|
|
+
|
|
|
class Item {
|
|
|
private String name;
|
|
|
private double[][] data;
|
|
|
@@ -36,20 +38,20 @@ public class TruenessRefernece extends PVModel {
|
|
|
private double t;//t critical
|
|
|
private double sdClaim;//SD assigned value
|
|
|
|
|
|
- public Item(String name,double[][] data, double target, double sdClaim, double t) {
|
|
|
+ public Item(String name, double[][] data, double target, double sdClaim, double t) {
|
|
|
this.name = name;
|
|
|
this.data = data;
|
|
|
int i = 0;
|
|
|
this.calcData = new double[data.length * data[0].length];
|
|
|
for (double[] d : data) {
|
|
|
- for (double dd: d){
|
|
|
+ for (double dd : d) {
|
|
|
calcData[i++] = dd;
|
|
|
}
|
|
|
}
|
|
|
this.target = target;
|
|
|
this.sdClaim = sdClaim;
|
|
|
if (t == 0) {
|
|
|
- this.t = PVModel.getT(data.length - 1, 0.01);
|
|
|
+ this.t = PVModel.getT(calcData.length - 1, 0.01);
|
|
|
} else {
|
|
|
this.t = t;
|
|
|
}
|
|
|
@@ -176,26 +178,27 @@ public class TruenessRefernece extends PVModel {
|
|
|
this.sdClaim = sdClaim;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
@Override
|
|
|
public TableDTO buildDataTableDTO() {
|
|
|
- String[] h = new String[specimensName.length+1];
|
|
|
- Map<String,String[]> child = new HashMap<>();
|
|
|
- String[] c = new String[items.get(0).data[0].length ];
|
|
|
- for (int i = 0; i < c.length ; i++) {
|
|
|
- c[i] = String.format("重复 %d",(i+1));
|
|
|
+ String[] h = new String[specimensName.length + 1];
|
|
|
+ Map<String, String[]> child = new HashMap<>();
|
|
|
+ String[] c = new String[items.get(0).data[0].length];
|
|
|
+ for (int i = 0; i < c.length; i++) {
|
|
|
+ c[i] = String.format("重复 %d", (i + 1));
|
|
|
}
|
|
|
h[0] = "天数";
|
|
|
for (int i = 0; i < specimensName.length; i++) {
|
|
|
- h[1+i] = specimensName[i];
|
|
|
- child.put(h[i+1],c);
|
|
|
+ h[1 + i] = specimensName[i];
|
|
|
+ child.put(h[i + 1], c);
|
|
|
}
|
|
|
TableDTO table = new TableDTO();
|
|
|
- table.buildHeader(h,child);
|
|
|
+ table.buildHeader(h, child);
|
|
|
|
|
|
List<double[]> temp = new ArrayList<>();
|
|
|
double[] first = new double[items.get(0).data.length];
|
|
|
- for (int i = 0; i <items.get(0).data.length; i++) {
|
|
|
- first[i] = i+1;
|
|
|
+ for (int i = 0; i < items.get(0).data.length; i++) {
|
|
|
+ first[i] = i + 1;
|
|
|
}
|
|
|
temp.add(first);
|
|
|
for (int i = 0; i < specimensName.length; i++) {
|
|
|
@@ -203,29 +206,18 @@ public class TruenessRefernece extends PVModel {
|
|
|
}
|
|
|
|
|
|
double[][] toArray = temp.toArray(new double[0][0]);
|
|
|
- table.buildData(transposeMatrix(toArray),getScale());
|
|
|
+ table.buildData(transposeMatrix(toArray), getScale());
|
|
|
return table;
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public Map<String, TableDTO> buildReportTableDTO() {
|
|
|
- return null;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public Map<String, ChartDTO> buildChartDTO() {
|
|
|
- return null;
|
|
|
- }
|
|
|
-
|
|
|
@Override
|
|
|
public SheetDTO[] buildSheetDTO() {
|
|
|
SheetDTO[] reports = new SheetDTO[items.size()];
|
|
|
- for (int i=0; i<items.size();i++) {
|
|
|
- final SheetDTO sheet = new SheetDTO();
|
|
|
+ for (int i = 0; i < items.size(); i++) {
|
|
|
+ final SheetDTO sheet = new SheetDTO(items.get(i).name);
|
|
|
Map<String, TableDTO> table = new HashMap<>();
|
|
|
table.putAll(buildTable1DTO(items.get(i)));
|
|
|
sheet.setReportDataDTO(table);
|
|
|
- sheet.setTitle(items.get(i).name);
|
|
|
reports[i] = sheet;
|
|
|
}
|
|
|
|
|
|
@@ -237,14 +229,26 @@ public class TruenessRefernece extends PVModel {
|
|
|
TableDTO table = new TableDTO();
|
|
|
String[][] data = new String[6][2];
|
|
|
|
|
|
- data[0] =new String[]{"均值" , format(item.mean)};
|
|
|
- data[1] =new String[]{"标准差" , format(item.sd)};
|
|
|
- data[2] =new String[]{"置信区间上限" , format(item.ucl)};
|
|
|
- data[3] =new String[]{"置信区间下限" , format(item.lcl)};
|
|
|
- data[4] =new String[]{"验证区间上限" , format(item.uvl)};
|
|
|
- data[5] =new String[]{"验证区间下限" , format(item.lvl)};
|
|
|
+ data[0] = new String[]{"均值", format(item.mean)};
|
|
|
+ data[1] = new String[]{"标准差", format(item.sd)};
|
|
|
+ data[2] = new String[]{"置信区间上限", format(item.ucl)};
|
|
|
+ data[3] = new String[]{"置信区间下限", format(item.lcl)};
|
|
|
+ data[4] = new String[]{"验证区间上限", format(item.uvl)};
|
|
|
+ data[5] = new String[]{"验证区间下限", format(item.lvl)};
|
|
|
table.buildData(data);
|
|
|
- reports.put(item.name,table);
|
|
|
- return reports;
|
|
|
+ reports.put(item.name, table);
|
|
|
+ return reports;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static void main(String[] args) {
|
|
|
+ double[][] data = {{2.04, 2.09}, {2.15, 2.04}, {2.09, 1.98}, {2.15, 2.09}, {2.09, 2.04}};
|
|
|
+ TruenessRefernece tr = new TruenessRefernece(new String[]{"test 1", "test 2"}, 3);
|
|
|
+ tr.buildItem("test 1", data, 2.2, 0.008, 0);
|
|
|
+ tr.buildItem("test 2", data, 2, 0, 0);
|
|
|
+ TableDTO tableDTO = tr.buildDataTableDTO();
|
|
|
+ SheetDTO[] sheetDTOS = tr.buildSheetDTO();
|
|
|
+// ChiSquaredDistribution x2 = new ChiSquaredDistribution( 10 );
|
|
|
+// double result = x2.inverseCumulativeProbability(1 - 0.05/2);//level
|
|
|
+ System.out.println(tr);
|
|
|
}
|
|
|
}
|