After removing the System.exit() commands from the test in templates rouen.gospl , I have the following problem:
19:10:58.840 [main] ERROR gospl.algo.ipf.margin.MarginalsIPFBuilder - Detailed marginals: gospl.algo.ipf.margin.ComplexMargin
[015 (agerevq), Elèves, étudiants, stagiaires non rémunéré de 14 ans ou plus (tact), Chômeurs (tact), Femmes ou hommes au foyer (tact), Autres inactifs (tact)] = 0.07035885954062221
[025 (agerevq), 030 (agerevq), Actifs ayant un emploi, y compris sous apprentissage ou en stage rémunéré (tact), 035 (agerevq)] = 0.05975120950695956
[080 (agerevq)] = 0.02713938587135216
[Retraités ou préretraités (tact), 020 (agerevq)] = 0.0
[060 (agerevq)] = 0.06066705694603719
[060 (agerevq), Elèves, étudiants, stagiaires non rémunéré de 14 ans ou plus (tact), Chômeurs (tact), Femmes ou hommes au foyer (tact), 055 (agerevq), Autres inactifs (tact)] = 0.017594607712661855
[090 (agerevq), 080 (agerevq), 070 (agerevq), Retraités ou préretraités (tact), 115 (agerevq), 105 (agerevq), 095 (agerevq), 085 (agerevq), 075 (agerevq), 065 (agerevq), 120 (agerevq), 110 (agerevq), 100 (agerevq)] = 0.18834645915859025
[025 (agerevq), 030 (agerevq), Elèves, étudiants, stagiaires non rémunéré de 14 ans ou plus (tact), Chômeurs (tact), Femmes ou hommes au foyer (tact), Autres inactifs (tact), 035 (agerevq)] = 0.02191986722823279
[015 (agerevq), Actifs ayant un emploi, y compris sous apprentissage ou en stage rémunéré (tact)] = 2.8965538837307615E-4
[025 (agerevq)] = 0.06714836764316703
[090 (agerevq), 080 (agerevq), 070 (agerevq), Elèves, étudiants, stagiaires non rémunéré de 14 ans ou plus (tact), Chômeurs (tact), Femmes ou hommes au foyer (tact), Autres inactifs (tact), 115 (agerevq), 105 (agerevq), 095 (agerevq), 085 (agerevq), 075 (agerevq), 065 (agerevq), 120 (agerevq), 110 (agerevq), 100 (agerevq)] = 0.005671765645305234
[005 (agerevq)] = 0.05945291386320441
[050 (agerevq), 040 (agerevq), Retraités ou préretraités (tact), 045 (agerevq)] = 0.0020784731246770733
[040 (agerevq)] = 0.06565514807894336
[085 (agerevq)] = 0.01714074917600263
[020 (agerevq)] = 0.07516780676359495
[065 (agerevq)] = 0.04267303944762103
[000 (agerevq)] = 0.06118992437668909
[045 (agerevq)] = 0.06625179434950319
[060 (agerevq), Actifs ayant un emploi, y compris sous apprentissage ou en stage rémunéré (tact), 055 (agerevq)] = 0.004661886048004509
[115 (agerevq), 105 (agerevq), 120 (agerevq), 110 (agerevq), 100 (agerevq)] = 2.9030369615949057E-4
[025 (agerevq), 030 (agerevq), Retraités ou préretraités (tact), 035 (agerevq)] = 4.892827506301962E-5
[090 (agerevq)] = 0.0066016022839362615
[Actifs ayant un emploi, y compris sous apprentissage ou en stage rémunéré (tact), 020 (agerevq)] = 7.163099469226072E-4
[070 (agerevq)] = 0.034475568778719615
[090 (agerevq), 080 (agerevq), 070 (agerevq), Actifs ayant un emploi, y compris sous apprentissage ou en stage rémunéré (tact), 115 (agerevq), 105 (agerevq), 095 (agerevq), 085 (agerevq), 075 (agerevq), 065 (agerevq), 120 (agerevq), 110 (agerevq), 100 (agerevq)] = 4.990684056428E-4
[015 (agerevq), Retraités ou préretraités (tact)] = 0.0
[Elèves, étudiants, stagiaires non rémunéré de 14 ans ou plus (tact), 020 (agerevq), Chômeurs (tact), Femmes ou hommes au foyer (tact), Autres inactifs (tact)] = 0.03439070597629523
[050 (agerevq), 040 (agerevq), Elèves, étudiants, stagiaires non rémunéré de 14 ans ou plus (tact), Chômeurs (tact), Femmes ou hommes au foyer (tact), Autres inactifs (tact), 045 (agerevq)] = 0.023415115314158668
[015 (agerevq)] = 0.06765680008340216
[050 (agerevq)] = 0.06746754132016006
[095 (agerevq)] = 0.0014948234520477637
[030 (agerevq)] = 0.06102953559428054
[075 (agerevq)] = 0.03286847317898586
[050 (agerevq), 040 (agerevq), Actifs ayant un emploi, y compris sous apprentissage ou en stage rémunéré (tact), 045 (agerevq)] = 0.011208489251436533
[010 (agerevq)] = 0.06004154069464382
[055 (agerevq)] = 0.06444581665958282
[035 (agerevq)] = 0.06114180774196653
[060 (agerevq), Retraités ou préretraités (tact), 055 (agerevq)] = 0.06700433700230159
Exception in thread "main" java.lang.RuntimeException: wrong total: Detailed marginals: gospl.algo.ipf.margin.ComplexMargin
[015 (agerevq), Elèves, étudiants, stagiaires non rémunéré de 14 ans ou plus (tact), Chômeurs (tact), Femmes ou hommes au foyer (tact), Autres inactifs (tact)] = 0.07035885954062221
[025 (agerevq), 030 (agerevq), Actifs ayant un emploi, y compris sous apprentissage ou en stage rémunéré (tact), 035 (agerevq)] = 0.05975120950695956
[080 (agerevq)] = 0.02713938587135216
[Retraités ou préretraités (tact), 020 (agerevq)] = 0.0
[060 (agerevq)] = 0.06066705694603719
[060 (agerevq), Elèves, étudiants, stagiaires non rémunéré de 14 ans ou plus (tact), Chômeurs (tact), Femmes ou hommes au foyer (tact), 055 (agerevq), Autres inactifs (tact)] = 0.017594607712661855
[090 (agerevq), 080 (agerevq), 070 (agerevq), Retraités ou préretraités (tact), 115 (agerevq), 105 (agerevq), 095 (agerevq), 085 (agerevq), 075 (agerevq), 065 (agerevq), 120 (agerevq), 110 (agerevq), 100 (agerevq)] = 0.18834645915859025
[025 (agerevq), 030 (agerevq), Elèves, étudiants, stagiaires non rémunéré de 14 ans ou plus (tact), Chômeurs (tact), Femmes ou hommes au foyer (tact), Autres inactifs (tact), 035 (agerevq)] = 0.02191986722823279
[015 (agerevq), Actifs ayant un emploi, y compris sous apprentissage ou en stage rémunéré (tact)] = 2.8965538837307615E-4
[025 (agerevq)] = 0.06714836764316703
[090 (agerevq), 080 (agerevq), 070 (agerevq), Elèves, étudiants, stagiaires non rémunéré de 14 ans ou plus (tact), Chômeurs (tact), Femmes ou hommes au foyer (tact), Autres inactifs (tact), 115 (agerevq), 105 (agerevq), 095 (agerevq), 085 (agerevq), 075 (agerevq), 065 (agerevq), 120 (agerevq), 110 (agerevq), 100 (agerevq)] = 0.005671765645305234
[005 (agerevq)] = 0.05945291386320441
[050 (agerevq), 040 (agerevq), Retraités ou préretraités (tact), 045 (agerevq)] = 0.0020784731246770733
[040 (agerevq)] = 0.06565514807894336
[085 (agerevq)] = 0.01714074917600263
[020 (agerevq)] = 0.07516780676359495
[065 (agerevq)] = 0.04267303944762103
[000 (agerevq)] = 0.06118992437668909
[045 (agerevq)] = 0.06625179434950319
[060 (agerevq), Actifs ayant un emploi, y compris sous apprentissage ou en stage rémunéré (tact), 055 (agerevq)] = 0.004661886048004509
[115 (agerevq), 105 (agerevq), 120 (agerevq), 110 (agerevq), 100 (agerevq)] = 2.9030369615949057E-4
[025 (agerevq), 030 (agerevq), Retraités ou préretraités (tact), 035 (agerevq)] = 4.892827506301962E-5
[090 (agerevq)] = 0.0066016022839362615
[Actifs ayant un emploi, y compris sous apprentissage ou en stage rémunéré (tact), 020 (agerevq)] = 7.163099469226072E-4
[070 (agerevq)] = 0.034475568778719615
[090 (agerevq), 080 (agerevq), 070 (agerevq), Actifs ayant un emploi, y compris sous apprentissage ou en stage rémunéré (tact), 115 (agerevq), 105 (agerevq), 095 (agerevq), 085 (agerevq), 075 (agerevq), 065 (agerevq), 120 (agerevq), 110 (agerevq), 100 (agerevq)] = 4.990684056428E-4
[015 (agerevq), Retraités ou préretraités (tact)] = 0.0
[Elèves, étudiants, stagiaires non rémunéré de 14 ans ou plus (tact), 020 (agerevq), Chômeurs (tact), Femmes ou hommes au foyer (tact), Autres inactifs (tact)] = 0.03439070597629523
[050 (agerevq), 040 (agerevq), Elèves, étudiants, stagiaires non rémunéré de 14 ans ou plus (tact), Chômeurs (tact), Femmes ou hommes au foyer (tact), Autres inactifs (tact), 045 (agerevq)] = 0.023415115314158668
[015 (agerevq)] = 0.06765680008340216
[050 (agerevq)] = 0.06746754132016006
[095 (agerevq)] = 0.0014948234520477637
[030 (agerevq)] = 0.06102953559428054
[075 (agerevq)] = 0.03286847317898586
[050 (agerevq), 040 (agerevq), Actifs ayant un emploi, y compris sous apprentissage ou en stage rémunéré (tact), 045 (agerevq)] = 0.011208489251436533
[010 (agerevq)] = 0.06004154069464382
[055 (agerevq)] = 0.06444581665958282
[035 (agerevq)] = 0.06114180774196653
[060 (agerevq), Retraités ou préretraités (tact), 055 (agerevq)] = 0.06700433700230159
at gospl.algo.ipf.margin.MarginalsIPFBuilder.buildCompliantMarginals(MarginalsIPFBuilder.java:122)
at gospl.algo.ipf.AGosplIPF.process(AGosplIPF.java:190)
at gospl.algo.ipf.DistributionInferenceIPFAlgo.process(DistributionInferenceIPFAlgo.java:43)
at gospl.algo.ipf.DistributionInferenceIPFAlgo.inferSRSampler(DistributionInferenceIPFAlgo.java:34)
at gospl.algo.ipf.DistributionInferenceIPFAlgo.inferSRSampler(DistributionInferenceIPFAlgo.java:16)
at rouen.gospl.IPF.main(IPF.java:104)