1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 package fr.ifremer.isisfish.simulator;
27
28 import java.lang.reflect.InvocationTargetException;
29 import java.util.Collections;
30 import java.util.List;
31
32 import org.apache.commons.beanutils.BeanUtils;
33 import org.apache.commons.beanutils.ConvertUtilsBean;
34 import org.junit.Assert;
35 import org.junit.Test;
36 import org.nuiton.math.matrix.MatrixFactory;
37 import org.nuiton.math.matrix.MatrixND;
38 import org.nuiton.math.matrix.MatrixNDImpl;
39
40 import fr.ifremer.isisfish.AbstractIsisFishTest;
41 import fr.ifremer.isisfish.entities.Population;
42 import fr.ifremer.isisfish.entities.PopulationImpl;
43 import fr.ifremer.isisfish.util.ConverterUtil;
44
45
46
47
48
49
50
51
52
53
54 public class SimulationPreScriptTest extends AbstractIsisFishTest {
55
56
57
58
59
60
61
62
63 @Test
64 public void testMatrixFactorBeanUtils() throws IllegalAccessException, InvocationTargetException {
65 String factorAsString = "[isisfish.population.capturability,[10, 3],[\"isisfish.population.group\", \"isisfish.population.season\"],[[org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.PopulationGroup#1223471369174#0.28237914052272917), org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.PopulationGroup#1223471369077#0.6322222161721446), org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.PopulationGroup#1223471369117#0.9144815378932778), org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.PopulationGroup#1223471369145#0.40303037362612626), org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.PopulationGroup#1223471369157#0.7385235788350787), org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.PopulationGroup#1223471369129#0.7322508787399089), org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.PopulationGroup#1223471369123#0.9794507456491978), org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.PopulationGroup#1223471369109#0.6142040515900707), org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.PopulationGroup#1223471369163#0.4236915489033358), org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.PopulationGroup#1223471369151#0.9128085136422524)], [org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.PopulationSeasonInfo#1223471369187#0.14365248282751242), java.lang.String(org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.PopulationSeasonInfo#1223471369341#0.8526969683760768)), java.lang.String(org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.PopulationSeasonInfo#1223471369569#0.18989201268161482))]],[[0.0, 0.0, 0.0], [2.2001803893501406E-4, 1.7501434915285209E-4, 1.0300844550139294E-4], [6.600541168050422E-4, 0.0023401918686724223, 0.0011700959343362112], [4.040331260442985E-4, 0.002400196788381971, 0.0014301172530775913], [2.2401836691565065E-4, 0.002060168910027859, 7.160587085339548E-4], [9.530781413866745E-5, 0.0017101402117221545, 4.380359138797098E-4], [6.710550187517929E-5, 0.0011800967542878026, 2.830232046300408E-4], [3.530289442911816E-5, 7.840642842047773E-4, 1.6901385718189713E-4], [2.030166450173084E-5, 6.250512469744717E-4, 1.1600951143846195E-4], [1.0200836350623379E-5, 4.0103288005882107E-4, 8.360685479530534E-5]]]";
66 Population p = new PopulationImpl();
67 p.setCapturability(MatrixFactory.getInstance().create("ee" , new List[]{ Collections.singletonList("eee")}));
68
69 ConvertUtilsBean beanUtils = ConverterUtil.getConverter(null);
70 Object value = beanUtils.convert(factorAsString, MatrixNDImpl.class);
71 BeanUtils.setProperty(p, "capturability", value);
72
73 Assert.assertNotNull(value);
74 Assert.assertTrue(value instanceof MatrixND);
75 }
76 }