/* * ARX: Powerful Data Anonymization * Copyright 2012 - 2017 Fabian Prasser, Florian Kohlmayer and contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.deidentifier.arx.test; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.util.Arrays; import java.util.Collection; import org.deidentifier.arx.ARXConfiguration; import org.deidentifier.arx.AttributeType.Hierarchy; import org.deidentifier.arx.Data; import org.deidentifier.arx.DataSubset; import org.deidentifier.arx.criteria.DPresence; import org.deidentifier.arx.criteria.HierarchicalDistanceTCloseness; import org.deidentifier.arx.criteria.KAnonymity; import org.deidentifier.arx.criteria.RecursiveCLDiversity; import org.deidentifier.arx.metric.Metric; import org.deidentifier.arx.metric.Metric.AggregateFunction; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; /** * Test data quality models. * * @author Fabian Prasser * @author Florian Kohlmayer */ @RunWith(Parameterized.class) public class TestUtilityMetrics extends AbstractTestUtilityMetrics { /** * Returns the test cases * * @return * @throws IOException */ @Parameters(name = "{index}:[{0}]") public static Collection<Object[]> cases() throws IOException { return Arrays.asList(new Object[][] { /* 0 */{ new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createAECSMetric()).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "9.139393939393939", "[0, 2, 0, 1, 0, 0, 1, 1]", "11.211895910780669", "[0, 4, 0, 2, 0, 0, 0, 0]", "15.387755102040817", "[1, 4, 1, 2, 2, 2, 0, 0]", "107.71428571428571", "[1, 4, 1, 2, 3, 2, 0, 0]", "232.0", "[0, 4, 1, 2, 3, 2, 1, 0]", "335.1111111111111", "[1, 4, 1, 1, 1, 2, 2, 1]", "301.6", "[1, 4, 1, 2, 3, 2, 0, 1]", "430.85714285714283", "[1, 4, 0, 2, 3, 2, 2, 1]", "603.2", "[1, 4, 1, 2, 3, 2, 2, 1]", "3016.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createAECSMetric()).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "100.53333333333333", "[0, 3, 0, 0, 2, 1, 2, 0]", "39.68421052631579", "[0, 1, 0, 2, 2, 1, 1, 1]", "32.78260869565217", "[0, 4, 1, 1, 1, 2, 2, 1]", "150.8", "[1, 4, 0, 1, 3, 2, 2, 1]", "301.6", "[0, 4, 1, 1, 3, 2, 2, 1]", "754.0", "[1, 2, 1, 2, 3, 2, 2, 1]", "377.0", "[1, 4, 1, 1, 3, 2, 2, 1]", "1508.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "3016.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createAECSMetric()).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "3016.0", "[1, 2, 0, 0, 3, 0, 1, 0]", "251.33333333333334", "[1, 2, 0, 1, 0, 2, 2, 1]", "232.0", "[0, 4, 1, 0, 3, 2, 1, 1]", "502.6666666666667", "[1, 4, 1, 2, 2, 2, 2, 1]", "1005.3333333333334", "[1, 4, 1, 1, 3, 2, 2, 1]", "1508.0", "[0, 4, 1, 2, 3, 2, 2, 1]", "1508.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "3016.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createAECSMetric()).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "1774.235294117647", "[0, 0, 1, 0, 1, 0, 0, 1]", "701.4418604651163", "[1, 4, 0, 2, 0, 2, 2, 1]", "1774.235294117647", "[1, 4, 1, 0, 3, 2, 2, 1]", "4308.857142857143", "[1, 4, 1, 1, 3, 2, 2, 1]", "15081.0", "[0, 4, 1, 2, 3, 2, 2, 1]", "15081.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "30162.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createAECSMetric()).addPrivacyModel(new KAnonymity(5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "29.113899613899616", "[0, 3, 1, 0, 0, 1, 1, 0]", "53.38407079646018", "[1, 2, 1, 2, 0, 2, 0, 1]", "93.96261682242991", "[1, 1, 1, 1, 3, 2, 2, 1]", "1005.4", "[1, 4, 1, 0, 3, 1, 2, 1]", "1040.0689655172414", "[0, 3, 1, 2, 3, 1, 2, 1]", "837.8333333333334", "[1, 2, 1, 1, 3, 2, 2, 1]", "1885.125", "[1, 4, 1, 1, 3, 2, 2, 0]", "7540.5", "[1, 4, 1, 2, 3, 1, 2, 1]", "6032.4", "[1, 4, 1, 2, 3, 2, 2, 1]", "30162.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createAECSMetric()).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "3016.0", "[1, 1, 1, 1, 2, 0, 1, 0]", "158.73684210526315", "[1, 1, 0, 2, 0, 2, 2, 1]", "215.42857142857142", "[0, 2, 1, 2, 3, 2, 2, 1]", "377.0", "[1, 4, 1, 2, 3, 2, 1, 1]", "1508.0", "[1, 4, 1, 1, 3, 2, 2, 1]", "1508.0", "[0, 4, 1, 2, 3, 2, 2, 1]", "1508.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "3016.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createAECSMetric()).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "1774.235294117647", "[1, 2, 1, 1, 0, 1, 1, 1]", "861.7714285714286", "[0, 1, 0, 2, 3, 0, 2, 1]", "914.0", "[0, 4, 1, 1, 2, 2, 2, 1]", "7540.5", "[0, 4, 1, 2, 2, 2, 2, 1]", "7540.5", "[1, 4, 1, 1, 3, 2, 2, 1]", "15081.0", "[0, 4, 1, 2, 3, 2, 2, 1]", "15081.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "30162.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createAECSMetric()).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "201.06666666666666", "[1, 2, 0, 0, 0, 2, 0, 0]", "55.851851851851855", "[0, 4, 0, 1, 1, 2, 2, 0]", "100.53333333333333", "[1, 4, 1, 0, 3, 2, 1, 0]", "232.0", "[1, 4, 0, 2, 2, 2, 2, 1]", "251.33333333333334", "[1, 4, 0, 1, 3, 2, 2, 1]", "301.6", "[1, 4, 1, 2, 3, 2, 2, 0]", "1508.0", "[1, 4, 1, 1, 3, 2, 2, 1]", "1508.0", "[1, 4, 0, 2, 3, 2, 2, 1]", "603.2", "[1, 4, 1, 2, 3, 2, 2, 1]", "3016.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createAECSMetric()).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "62.4472049689441", "[0, 1, 1, 1, 0, 1, 0, 1]", "75.21695760598504", "[0, 3, 1, 2, 2, 1, 0, 1]", "324.3225806451613", "[1, 0, 1, 1, 3, 1, 2, 1]", "153.8877551020408", "[1, 3, 1, 1, 3, 1, 2, 1]", "914.0", "[1, 4, 1, 1, 3, 2, 2, 0]", "7540.5", "[0, 4, 1, 2, 3, 1, 2, 1]", "3016.2", "[1, 4, 1, 0, 3, 2, 2, 1]", "4308.857142857143", "[1, 4, 1, 2, 2, 2, 2, 1]", "10054.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "30162.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createAECSMetric()).addPrivacyModel(new KAnonymity(5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "29.113899613899616", "[0, 1, 1, 0, 0, 0, 0, 0]", "30.683621566632755", "[0, 0, 0, 0, 2, 1, 2, 0]", "30.344064386317907", "[0, 1, 1, 2, 1, 0, 0, 1]", "63.76744186046512", "[0, 4, 1, 0, 1, 0, 0, 1]", "97.6116504854369", "[1, 4, 1, 0, 2, 0, 1, 0]", "160.43617021276594", "[1, 3, 0, 2, 2, 0, 2, 0]", "150.81", "[0, 3, 1, 0, 3, 2, 1, 1]", "363.3975903614458", "[1, 1, 0, 2, 3, 2, 2, 1]", "520.0344827586207", "[1, 4, 1, 2, 3, 2, 2, 1]", "30162.0") }, /* 10 */{ new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createAECSMetric()).addPrivacyModel(new KAnonymity(5)), "RAMNTALL", "./data/cup.csv", "[0, 0, 0, 0, 0, 0, 0]", "63441.0", "[3, 2, 1, 0, 0, 3, 1]", "24.24188001528468", "[1, 2, 1, 1, 0, 4, 1]", "18.177936962750717", "[5, 4, 0, 1, 0, 2, 0]", "51.78857142857143", "[4, 1, 1, 2, 1, 3, 0]", "55.74780316344464", "[0, 2, 0, 1, 1, 4, 4]", "615.9320388349514", "[4, 2, 0, 2, 1, 4, 0]", "52.823480432972524", "[5, 3, 1, 1, 0, 0, 4]", "20.937623762376237", "[4, 3, 1, 2, 1, 3, 1]", "1349.8085106382978", "[5, 4, 1, 2, 1, 4, 4]", "63441.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createAECSMetric()).addPrivacyModel(new KAnonymity(5)), "istatenum", "./data/fars.csv", "[0, 0, 0, 0, 0, 0, 0]", "122.34787878787878", "[0, 1, 0, 1, 0, 1, 1]", "33.985521885521884", "[0, 2, 3, 0, 1, 1, 0]", "32.83571893298634", "[2, 1, 2, 0, 0, 1, 1]", "53.604354753053634", "[1, 1, 0, 3, 1, 1, 1]", "118.74941176470588", "[4, 0, 0, 0, 0, 2, 2]", "45.121591417076445", "[4, 2, 0, 2, 1, 1, 1]", "355.4119718309859", "[0, 2, 3, 3, 1, 0, 2]", "208.11752577319587", "[4, 0, 2, 0, 1, 2, 2]", "171.95400340715503", "[5, 2, 3, 3, 1, 2, 2]", "100937.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createAECSMetric()).addPrivacyModel(new KAnonymity(5)), "Highest level of school completed", "./data/atus.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "68.94055228841728", "[1, 1, 0, 0, 0, 1, 0, 0]", "128.0581809546426", "[1, 0, 0, 1, 1, 1, 0, 0]", "96.83120847548932", "[0, 0, 1, 0, 1, 1, 0, 1]", "89.83058470764618", "[0, 0, 0, 0, 1, 2, 1, 1]", "70.25182386659719", "[1, 4, 0, 0, 1, 0, 1, 0]", "266.9569306930693", "[0, 5, 1, 0, 0, 1, 2, 1]", "729.7063599458728", "[2, 4, 0, 2, 0, 1, 1, 1]", "771.4635193133047", "[1, 4, 0, 0, 2, 1, 2, 1]", "1182.5723684210527", "[2, 5, 1, 2, 2, 2, 2, 2]", "539253.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createAECSMetric()).addPrivacyModel(new KAnonymity(5)), "EDUC", "./data/ihis.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "16.86359397518863", "[1, 2, 0, 0, 0, 1, 0, 0]", "49.84563982626128", "[0, 0, 0, 3, 0, 0, 1, 0]", "25.881036539087066", "[0, 0, 0, 0, 1, 2, 1, 0]", "45.65640182089438", "[0, 0, 1, 0, 1, 1, 0, 1]", "57.85003150598614", "[3, 1, 2, 0, 0, 0, 0, 0]", "62.59198657436543", "[1, 0, 2, 0, 3, 1, 0, 1]", "596.1558441558442", "[5, 2, 1, 0, 1, 0, 0, 0]", "174.769951676673", "[3, 0, 2, 3, 3, 0, 1, 1]", "3926.0", "[5, 2, 2, 3, 4, 2, 1, 1]", "1193504.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createAECSMetric()).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "100.53333333333333", "[0, 0, 1, 0, 2, 1, 2, 1]", "22.176470588235293", "[0, 3, 0, 0, 2, 0, 2, 1]", "52.91228070175438", "[0, 0, 1, 2, 3, 2, 2, 0]", "23.2", "[0, 4, 0, 1, 2, 1, 1, 1]", "81.51351351351352", "[1, 4, 0, 2, 2, 2, 0, 0]", "71.80952380952381", "[1, 3, 1, 2, 1, 2, 1, 0]", "65.56521739130434", "[1, 4, 1, 2, 3, 2, 2, 1]", "3016.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createAECSMetric()).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "3016.0", "[1, 0, 1, 0, 3, 0, 1, 0]", "167.55555555555554", "[0, 2, 1, 0, 0, 1, 2, 1]", "335.1111111111111", "[1, 1, 1, 1, 3, 2, 0, 0]", "201.06666666666666", "[0, 2, 1, 2, 0, 2, 2, 0]", "301.6", "[1, 4, 0, 2, 3, 2, 2, 1]", "754.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "3016.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createAECSMetric()).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "1774.235294117647", "[0, 1, 0, 0, 0, 2, 0, 1]", "1206.48", "[1, 1, 1, 0, 1, 0, 1, 1]", "569.0943396226415", "[1, 2, 0, 2, 3, 2, 0, 0]", "1508.1", "[0, 4, 0, 2, 1, 2, 1, 0]", "2742.0", "[1, 4, 1, 2, 2, 1, 2, 1]", "4308.857142857143", "[1, 4, 1, 2, 3, 2, 2, 1]", "30162.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createAECSMetric()).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "201.06666666666666", "[0, 1, 1, 1, 1, 0, 2, 0]", "39.68421052631579", "[1, 4, 0, 0, 0, 1, 2, 0]", "71.80952380952381", "[1, 1, 0, 2, 3, 2, 0, 1]", "56.905660377358494", "[0, 2, 1, 0, 3, 2, 1, 1]", "65.56521739130434", "[1, 3, 1, 1, 3, 2, 1, 0]", "137.0909090909091", "[1, 3, 0, 2, 3, 1, 2, 0]", "143.61904761904762", "[1, 4, 1, 2, 3, 2, 2, 1]", "3016.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createAECSMetric()).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "62.4472049689441", "[1, 0, 0, 0, 1, 0, 1, 1]", "52.455652173913045", "[0, 0, 1, 1, 0, 2, 2, 0]", "42.72237960339943", "[1, 1, 1, 0, 3, 0, 1, 1]", "171.375", "[0, 3, 0, 0, 1, 1, 2, 1]", "154.6769230769231", "[0, 1, 0, 2, 3, 2, 1, 1]", "235.640625", "[0, 2, 1, 1, 3, 2, 1, 1]", "603.24", "[1, 4, 1, 2, 3, 2, 2, 1]", "30162.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createEntropyMetric(false)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "36572.579698609305", "[0, 0, 0, 0, 3, 0, 0, 1]", "29151.026471165096", "[0, 4, 0, 2, 1, 0, 2, 0]", "32386.775747138094", "[1, 4, 1, 2, 1, 2, 2, 0]", "37795.4891813073", "[1, 3, 1, 2, 1, 2, 2, 1]", "35631.748200874004", "[1, 4, 0, 2, 3, 1, 2, 1]", "42125.562677472895", "[1, 4, 1, 1, 2, 2, 2, 1]", "39177.7411830619", "[0, 4, 1, 2, 2, 2, 2, 1]", "39457.0680989655", "[1, 4, 1, 2, 2, 2, 2, 1]", "42185.6386917231", "[1, 4, 1, 2, 3, 2, 2, 1]", "45489.51725469279") }, /* 20 */{ new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createEntropyMetric(false)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "42878.8699918206", "[1, 0, 0, 2, 0, 0, 2, 1]", "31507.7278999616", "[0, 3, 0, 0, 0, 2, 2, 1]", "28509.6709674651", "[0, 4, 0, 0, 3, 2, 2, 1]", "35261.99222025591", "[0, 4, 1, 2, 2, 2, 2, 0]", "37023.4106467834", "[0, 4, 1, 2, 1, 2, 2, 1]", "37502.5760407318", "[1, 4, 0, 1, 3, 2, 2, 1]", "40089.9423426752", "[1, 4, 1, 2, 3, 2, 2, 0]", "43053.85980251069", "[0, 4, 1, 2, 3, 2, 2, 1]", "42760.946661935195", "[1, 4, 1, 2, 3, 2, 2, 1]", "45489.51725469279") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createEntropyMetric(false)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "45489.51725469279", "[1, 3, 0, 1, 0, 2, 0, 0]", "41658.27496240399", "[0, 4, 0, 1, 3, 1, 0, 1]", "40609.5440777084", "[0, 4, 1, 2, 3, 0, 2, 0]", "43505.49855877619", "[0, 4, 1, 1, 3, 2, 2, 1]", "39753.049153274", "[1, 4, 1, 1, 3, 2, 2, 1]", "42481.619746031596", "[0, 4, 1, 2, 3, 2, 2, 1]", "42760.946661935195", "[1, 4, 1, 2, 3, 2, 2, 1]", "45489.51725469279") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createEntropyMetric(false)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "449310.02427120315", "[0, 0, 0, 1, 0, 0, 1, 1]", "439268.9450931774", "[1, 3, 1, 1, 1, 0, 0, 1]", "400834.4523395001", "[0, 4, 1, 1, 1, 2, 2, 1]", "397534.5211960351", "[1, 4, 1, 2, 3, 1, 2, 1]", "445652.72997734265", "[0, 4, 1, 2, 3, 2, 2, 1]", "428467.2965004933", "[1, 4, 1, 2, 3, 2, 2, 1]", "455884.9365769584") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createEntropyMetric(false)).addPrivacyModel(new KAnonymity(5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "268778.22471939825", "[0, 1, 0, 1, 0, 2, 1, 1]", "199996.96695661292", "[0, 2, 1, 2, 2, 0, 0, 0]", "253206.5135958653", "[0, 2, 0, 2, 3, 2, 2, 1]", "331905.60100801825", "[1, 4, 1, 1, 2, 2, 2, 0]", "368439.26393309573", "[0, 4, 1, 2, 3, 2, 0, 1]", "385895.4270913376", "[1, 4, 1, 1, 2, 2, 2, 1]", "392857.38858687796", "[1, 3, 1, 1, 3, 2, 2, 1]", "379458.17719685636", "[1, 2, 1, 2, 3, 2, 2, 1]", "382559.9421471483", "[1, 4, 1, 2, 3, 2, 2, 1]", "455884.9365769584") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createEntropyMetric(false)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "45489.51725469279", "[1, 2, 0, 1, 3, 2, 1, 0]", "38677.1746234927", "[1, 4, 0, 1, 0, 2, 2, 1]", "39790.4811756503", "[0, 3, 1, 2, 3, 2, 2, 1]", "38652.87376940461", "[1, 4, 1, 2, 2, 2, 2, 1]", "42185.6386917231", "[1, 4, 1, 1, 3, 2, 2, 1]", "42481.619746031596", "[0, 4, 1, 2, 3, 2, 2, 1]", "42760.946661935195", "[1, 4, 1, 2, 3, 2, 2, 1]", "45489.51725469279") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createEntropyMetric(false)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "449310.02427120315", "[0, 0, 1, 1, 0, 1, 2, 0]", "427484.87811209384", "[1, 4, 1, 1, 1, 1, 2, 1]", "380646.12386283686", "[0, 4, 1, 1, 1, 2, 2, 1]", "397534.5211960351", "[1, 4, 0, 1, 3, 2, 2, 1]", "403537.92799185414", "[0, 4, 1, 1, 3, 2, 2, 1]", "398400.0741806447", "[0, 4, 1, 2, 3, 2, 2, 1]", "428467.2965004933", "[1, 4, 1, 2, 3, 2, 2, 1]", "455884.9365769584") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createEntropyMetric(false)).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "44045.8432426865", "[1, 0, 0, 2, 1, 1, 1, 0]", "35155.793020370795", "[0, 3, 1, 0, 2, 2, 1, 1]", "30749.4976218815", "[0, 4, 1, 2, 3, 1, 2, 0]", "39462.1639385383", "[1, 4, 0, 2, 2, 2, 2, 1]", "39806.915906809", "[1, 4, 0, 1, 3, 2, 2, 1]", "40089.9423426752", "[1, 4, 1, 2, 3, 2, 2, 0]", "43053.85980251069", "[1, 4, 1, 1, 3, 2, 2, 1]", "42481.619746031596", "[1, 4, 0, 2, 3, 2, 2, 1]", "43097.83985133639", "[1, 4, 1, 2, 3, 2, 2, 1]", "45489.51725469279") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createEntropyMetric(false)).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "335625.27531107684", "[0, 1, 0, 2, 3, 1, 0, 1]", "279867.240476094", "[0, 3, 0, 2, 3, 2, 1, 0]", "323542.03430225555", "[0, 4, 1, 0, 2, 2, 2, 1]", "341038.03115071554", "[1, 4, 0, 2, 2, 2, 2, 0]", "375172.909809093", "[1, 4, 1, 1, 3, 2, 2, 0]", "401399.58960332756", "[1, 4, 0, 1, 3, 2, 2, 1]", "402442.67898458894", "[1, 4, 1, 2, 3, 1, 2, 1]", "445652.72997734265", "[1, 3, 1, 2, 3, 2, 2, 1]", "409525.39951670496", "[1, 4, 1, 2, 3, 2, 2, 1]", "455884.9365769584") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createEntropyMetric(false)).addPrivacyModel(new KAnonymity(5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "268778.22471939825", "[0, 1, 0, 1, 0, 1, 0, 1]", "206422.97000364092", "[0, 3, 1, 0, 0, 0, 0, 1]", "225818.85565423348", "[1, 1, 1, 0, 1, 1, 0, 1]", "219650.6130825568", "[1, 0, 0, 1, 2, 2, 0, 1]", "198394.0850062312", "[0, 1, 0, 0, 1, 2, 2, 1]", "213938.9707150555", "[0, 4, 0, 0, 3, 1, 0, 0]", "281042.4101515442", "[1, 4, 1, 0, 1, 1, 0, 1]", "299613.90272535814", "[1, 3, 1, 2, 1, 2, 0, 1]", "315247.228170622", "[1, 4, 1, 2, 3, 2, 2, 1]", "455884.9365769584") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createEntropyMetric(false)).addPrivacyModel(new KAnonymity(5)), "RAMNTALL", "./data/cup.csv", "[0, 0, 0, 0, 0, 0, 0]", "2207518.9993976387", "[1, 0, 1, 2, 0, 0, 0]", "2207518.999397594", "[2, 0, 0, 0, 1, 4, 0]", "2207435.145801786", "[3, 2, 1, 0, 1, 1, 0]", "1761956.8888455457", "[4, 1, 1, 1, 0, 2, 2]", "1453095.9878387728", "[3, 2, 0, 1, 0, 3, 3]", "1290009.3401703774", "[2, 4, 1, 0, 0, 3, 3]", "1252255.714739398", "[3, 1, 1, 1, 1, 3, 3]", "1555332.3009072572", "[5, 0, 1, 1, 0, 4, 4]", "1535699.521423932", "[5, 4, 1, 2, 1, 4, 4]", "2207518.9993976974") }, /* 30 */{ new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createEntropyMetric(false)).addPrivacyModel(new KAnonymity(5)), "istatenum", "./data/fars.csv", "[0, 0, 0, 0, 0, 0, 0]", "805526.2618565465", "[0, 0, 0, 0, 1, 0, 1]", "900715.6011957505", "[0, 0, 0, 3, 0, 0, 0]", "530373.4899171471", "[0, 0, 0, 2, 0, 1, 0]", "589622.817157221", "[4, 0, 0, 1, 0, 1, 0]", "743462.935353104", "[0, 2, 0, 2, 0, 2, 0]", "610899.0454431569", "[0, 1, 1, 0, 1, 2, 1]", "850936.2476760466", "[1, 2, 1, 3, 0, 2, 2]", "1179292.4833094794", "[4, 1, 1, 2, 0, 2, 2]", "1344741.6698462092", "[5, 2, 3, 3, 1, 2, 2]", "1828114.5308318876") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createEntropyMetric(false)).addPrivacyModel(new KAnonymity(5)), "Highest level of school completed", "./data/atus.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "1259537.2231967654", "[0, 1, 0, 0, 0, 0, 0, 2]", "1705815.3474986705", "[0, 2, 0, 0, 1, 1, 0, 0]", "1754332.0014117132", "[0, 3, 0, 0, 0, 1, 1, 0]", "1831564.5939928878", "[0, 0, 0, 2, 1, 1, 0, 1]", "1608202.8920696646", "[1, 0, 0, 0, 0, 2, 1, 1]", "1721359.1869000471", "[0, 0, 0, 1, 1, 1, 0, 2]", "1573071.615685773", "[1, 4, 0, 0, 1, 2, 2, 2]", "3790189.519044233", "[1, 3, 1, 2, 2, 2, 1, 2]", "5546865.841164317", "[2, 5, 1, 2, 2, 2, 2, 2]", "7631154.350031186") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createEntropyMetric(false)).addPrivacyModel(new KAnonymity(5)), "EDUC", "./data/ihis.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "1.1187289339555768E7", "[0, 1, 1, 0, 0, 0, 0, 0]", "7731998.340235527", "[1, 0, 0, 2, 0, 0, 0, 0]", "7663802.176276546", "[1, 0, 0, 0, 2, 0, 0, 0]", "7881739.155309069", "[2, 1, 0, 0, 0, 0, 0, 1]", "7015694.546330849", "[3, 0, 0, 1, 0, 0, 0, 1]", "7019478.382462303", "[5, 0, 0, 1, 0, 0, 0, 0]", "7850659.387720069", "[0, 0, 2, 3, 3, 0, 1, 1]", "1.2711369785573479E7", "[5, 2, 2, 2, 4, 2, 1, 0]", "2.3063727989775106E7", "[5, 2, 2, 3, 4, 2, 1, 1]", "2.5025416064416602E7") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createEntropyMetric(false)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "42878.8699918206", "[1, 2, 1, 0, 0, 2, 1, 0]", "28157.088177109803", "[1, 2, 0, 0, 1, 1, 1, 1]", "29409.5003562485", "[1, 4, 1, 0, 0, 1, 1, 0]", "29540.149333398393", "[1, 4, 0, 2, 0, 0, 0, 1]", "32139.336829158896", "[0, 4, 1, 0, 2, 2, 2, 0]", "31937.8380785671", "[0, 4, 0, 0, 2, 2, 2, 1]", "32519.8197989919", "[1, 4, 1, 2, 3, 2, 2, 1]", "45489.51725469279") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createEntropyMetric(false)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "45489.51725469279", "[0, 2, 1, 0, 0, 2, 1, 0]", "42767.819075818596", "[1, 3, 1, 0, 0, 1, 0, 1]", "40354.7501225414", "[0, 3, 1, 0, 3, 2, 1, 0]", "40725.592069456696", "[1, 4, 0, 2, 1, 2, 2, 0]", "39655.00302684849", "[1, 4, 0, 2, 3, 1, 2, 1]", "42277.1702360407", "[1, 4, 0, 2, 3, 2, 2, 1]", "43142.96542848049", "[1, 4, 1, 2, 3, 2, 2, 1]", "45489.51725469279") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createEntropyMetric(false)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "449310.02427120315", "[0, 0, 1, 0, 2, 1, 0, 1]", "429011.0737318591", "[0, 0, 0, 2, 0, 2, 1, 1]", "433211.63386516273", "[0, 3, 1, 2, 2, 2, 1, 0]", "419849.80816635164", "[1, 3, 0, 2, 3, 1, 1, 1]", "386499.9082084178", "[0, 4, 1, 1, 3, 2, 2, 1]", "398400.0741806447", "[1, 4, 0, 2, 3, 2, 2, 1]", "432509.90130443755", "[1, 4, 1, 2, 3, 2, 2, 1]", "455884.9365769584") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createEntropyMetric(false)).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "44045.8432426865", "[0, 4, 0, 0, 0, 2, 0, 0]", "35165.5279474891", "[1, 3, 0, 2, 3, 0, 0, 0]", "34190.971456888", "[1, 2, 0, 2, 2, 2, 0, 0]", "32376.146259336", "[1, 1, 0, 1, 3, 1, 2, 0]", "29759.4344043658", "[0, 4, 1, 0, 2, 2, 1, 1]", "33050.0222655427", "[0, 3, 0, 1, 3, 2, 2, 1]", "33536.3829378938", "[1, 4, 1, 2, 3, 2, 2, 1]", "45489.51725469279") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createEntropyMetric(false)).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "335625.27531107684", "[1, 0, 0, 1, 0, 1, 1, 0]", "269022.15611043444", "[1, 1, 0, 2, 0, 0, 2, 0]", "265789.4550967233", "[0, 4, 0, 1, 1, 1, 2, 0]", "304474.20940700977", "[1, 3, 0, 1, 0, 2, 1, 1]", "287007.6920890993", "[0, 4, 0, 0, 2, 2, 2, 0]", "300729.7507624169", "[0, 0, 1, 2, 3, 2, 2, 0]", "237792.2725419112", "[1, 4, 1, 2, 3, 2, 2, 1]", "455884.9365769584") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createDiscernabilityMetric(false)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "6885660.0", "[1, 1, 0, 2, 3, 1, 1, 1]", "861849.0", "[0, 2, 1, 2, 3, 0, 2, 1]", "1357586.0", "[0, 2, 0, 2, 3, 2, 2, 1]", "903615.0", "[0, 4, 1, 2, 1, 2, 2, 1]", "1801778.0", "[1, 4, 1, 2, 3, 2, 0, 1]", "5077072.0", "[1, 4, 0, 2, 2, 2, 2, 1]", "3326891.0", "[1, 4, 0, 2, 3, 2, 2, 1]", "6721120.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "9096256.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createDiscernabilityMetric(false)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "8425679.0", "[1, 2, 1, 1, 3, 2, 0, 1]", "902172.0", "[1, 3, 1, 1, 0, 2, 2, 1]", "735082.0", "[0, 4, 1, 2, 1, 2, 2, 1]", "1801778.0", "[1, 3, 1, 2, 2, 2, 2, 1]", "1844009.0", "[1, 4, 1, 2, 3, 2, 2, 0]", "5706370.0", "[1, 4, 1, 2, 3, 2, 1, 1]", "6878769.0", "[1, 3, 1, 2, 3, 2, 2, 1]", "3699562.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "9096256.0") }, /* 40 */{ new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createDiscernabilityMetric(false)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "9096256.0", "[0, 0, 0, 2, 2, 2, 1, 1]", "8829545.0", "[0, 4, 1, 2, 2, 1, 1, 1]", "5450097.0", "[1, 4, 1, 0, 3, 2, 1, 1]", "3582719.0", "[0, 4, 1, 2, 3, 1, 2, 1]", "7029217.0", "[1, 4, 1, 1, 3, 2, 2, 1]", "4565056.0", "[0, 4, 1, 2, 3, 2, 2, 1]", "5135656.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "9096256.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createDiscernabilityMetric(false)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "8.91711567E8", "[1, 3, 0, 1, 0, 1, 0, 0]", "6.66887333E8", "[0, 4, 1, 2, 0, 0, 2, 0]", "6.37878686E8", "[0, 4, 0, 2, 3, 1, 2, 0]", "6.18419811E8", "[1, 4, 1, 0, 3, 2, 2, 1]", "3.12513049E8", "[1, 4, 0, 2, 3, 2, 2, 1]", "6.8139216E8", "[1, 4, 1, 2, 3, 2, 2, 1]", "9.09746244E8") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createDiscernabilityMetric(false)).addPrivacyModel(new KAnonymity(5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "4.63536157E8", "[0, 0, 1, 0, 3, 2, 0, 0]", "1.10335369E8", "[1, 2, 0, 2, 2, 1, 0, 0]", "5.4541529E7", "[1, 4, 1, 0, 0, 1, 2, 0]", "5.1345939E7", "[1, 4, 1, 0, 3, 1, 2, 0]", "1.84929052E8", "[1, 4, 1, 2, 3, 1, 2, 0]", "5.2082E8", "[0, 4, 1, 2, 3, 2, 1, 1]", "3.8959458E8", "[0, 4, 0, 2, 3, 2, 2, 1]", "3.92187826E8", "[1, 4, 0, 2, 3, 2, 2, 1]", "6.8139216E8", "[1, 4, 1, 2, 3, 2, 2, 1]", "9.09746244E8") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createDiscernabilityMetric(false)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "9096256.0", "[0, 3, 0, 0, 2, 2, 2, 0]", "6825570.0", "[0, 4, 1, 2, 3, 2, 1, 0]", "6401145.0", "[0, 4, 1, 2, 1, 2, 2, 1]", "4418089.0", "[0, 4, 1, 1, 3, 2, 2, 1]", "4653635.0", "[1, 4, 1, 1, 3, 2, 2, 1]", "4565056.0", "[0, 4, 1, 2, 3, 2, 2, 1]", "5135656.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "9096256.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createDiscernabilityMetric(false)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "8.91711567E8", "[0, 2, 1, 2, 2, 1, 1, 0]", "7.11706687E8", "[0, 4, 1, 1, 2, 1, 2, 0]", "5.87730841E8", "[0, 4, 1, 1, 2, 2, 2, 1]", "5.89242303E8", "[1, 4, 1, 2, 3, 1, 2, 1]", "8.32253403E8", "[1, 4, 0, 2, 3, 2, 2, 1]", "6.8139216E8", "[1, 4, 1, 2, 3, 2, 2, 1]", "9.09746244E8") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createDiscernabilityMetric(false)).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "8705518.0", "[1, 2, 1, 2, 2, 1, 1, 1]", "1199161.0", "[1, 2, 1, 1, 3, 1, 2, 1]", "1200926.0", "[1, 4, 1, 0, 3, 2, 2, 0]", "2183887.0", "[0, 4, 1, 1, 3, 2, 2, 0]", "2051604.0", "[0, 4, 1, 1, 3, 2, 2, 1]", "2876596.0", "[1, 4, 1, 2, 3, 2, 2, 0]", "5706370.0", "[1, 4, 1, 1, 3, 2, 2, 1]", "4565056.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "9096256.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createDiscernabilityMetric(false)).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "6.05615358E8", "[1, 1, 1, 0, 2, 1, 0, 0]", "1.72317967E8", "[0, 1, 0, 2, 3, 0, 2, 1]", "9.7194221E7", "[1, 4, 1, 2, 3, 2, 0, 0]", "3.52858084E8", "[0, 3, 1, 1, 3, 2, 2, 1]", "1.23067799E8", "[1, 1, 1, 2, 3, 2, 2, 1]", "9.786802E7", "[0, 2, 1, 2, 3, 2, 2, 1]", "1.08443178E8", "[1, 4, 1, 2, 2, 2, 2, 1]", "4.46695226E8", "[0, 4, 1, 2, 3, 2, 2, 1]", "5.11031924E8", "[1, 4, 1, 2, 3, 2, 2, 1]", "9.09746244E8") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createDiscernabilityMetric(false)).addPrivacyModel(new KAnonymity(5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "4.63536157E8", "[0, 0, 1, 0, 3, 0, 0, 0]", "1.7590937E8", "[1, 2, 0, 0, 1, 1, 0, 1]", "8.1138574E7", "[1, 1, 0, 1, 3, 0, 1, 0]", "7.7668128E7", "[1, 2, 0, 2, 0, 1, 1, 0]", "6.068664E7", "[0, 3, 1, 1, 1, 2, 0, 0]", "3.4129719E7", "[1, 0, 0, 2, 2, 2, 1, 0]", "4.7522592E7", "[1, 4, 1, 1, 0, 1, 1, 0]", "5.8151821E7", "[1, 2, 1, 1, 3, 1, 1, 1]", "7.5054871E7", "[1, 4, 1, 2, 3, 2, 2, 1]", "9.09746244E8") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createDiscernabilityMetric(false)).addPrivacyModel(new KAnonymity(5)), "RAMNTALL", "./data/cup.csv", "[0, 0, 0, 0, 0, 0, 0]", "4.024760481E9", "[0, 4, 1, 0, 1, 1, 2]", "3.493495119E9", "[4, 1, 0, 1, 0, 2, 2]", "1.80620587E8", "[3, 4, 0, 1, 1, 4, 1]", "5.9389911E7", "[0, 4, 1, 2, 1, 4, 2]", "9.78942721E8", "[3, 3, 0, 2, 0, 3, 3]", "6.3965169E7", "[2, 1, 1, 2, 0, 4, 4]", "5.37146807E8", "[2, 2, 1, 2, 1, 4, 4]", "2.34706833E8", "[4, 4, 1, 2, 0, 2, 4]", "2.64909869E8", "[5, 4, 1, 2, 1, 4, 4]", "4.024760481E9") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createDiscernabilityMetric(false)).addPrivacyModel(new KAnonymity(5)), "istatenum", "./data/fars.csv", "[0, 0, 0, 0, 0, 0, 0]", "4.361447303E9", "[0, 0, 0, 2, 1, 0, 0]", "1.416769273E9", "[0, 0, 0, 1, 0, 0, 2]", "2.836970255E9", "[0, 0, 2, 0, 1, 2, 0]", "1.758832303E9", "[0, 1, 0, 3, 0, 2, 0]", "5.34956827E8", "[1, 1, 3, 2, 0, 1, 1]", "1.94309871E8", "[4, 0, 0, 2, 0, 1, 2]", "1.125507537E9", "[4, 2, 0, 2, 1, 1, 0]", "4.93648513E8", "[4, 2, 1, 3, 0, 2, 0]", "3.76691875E8", "[5, 2, 3, 3, 1, 2, 2]", "1.0188277969E10") }, /* 50 */{ new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createDiscernabilityMetric(false)).addPrivacyModel(new KAnonymity(5)), "Highest level of school completed", "./data/atus.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "3.2756856071E10", "[0, 1, 0, 1, 1, 0, 0, 0]", "1.8309261099E10", "[0, 1, 0, 1, 1, 0, 0, 1]", "1.7413624699E10", "[0, 0, 0, 0, 1, 2, 2, 0]", "1.3879649691E10", "[0, 0, 1, 0, 1, 1, 0, 2]", "1.8970099543E10", "[0, 0, 0, 1, 0, 2, 0, 2]", "1.9759014883E10", "[0, 4, 0, 0, 0, 2, 1, 0]", "6.703138111E9", "[2, 1, 0, 2, 1, 1, 1, 0]", "1.6201432191E10", "[1, 2, 0, 1, 1, 1, 0, 2]", "1.3457931051E10", "[2, 5, 1, 2, 2, 2, 2, 2]", "2.90793798009E11") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createDiscernabilityMetric(false)).addPrivacyModel(new KAnonymity(5)), "EDUC", "./data/ihis.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "6.0229370151E11", "[1, 0, 0, 0, 2, 0, 0, 0]", "8.9751254021E10", "[1, 2, 1, 0, 0, 0, 0, 0]", "9.84448153E10", "[0, 2, 0, 1, 0, 0, 0, 1]", "8.6775063078E10", "[0, 1, 0, 1, 1, 2, 0, 0]", "6.79066454E10", "[0, 1, 0, 1, 0, 2, 1, 0]", "1.20773461676E11", "[2, 0, 1, 0, 0, 0, 1, 1]", "3.8433249494E10", "[1, 1, 0, 1, 0, 0, 1, 1]", "2.9865741737E10", "[0, 2, 1, 2, 0, 2, 0, 1]", "7.552215892E9", "[5, 2, 2, 3, 4, 2, 1, 1]", "1.424451798016E12") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createDiscernabilityMetric(false)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "8425679.0", "[0, 2, 0, 0, 2, 0, 1, 1]", "2529631.0", "[0, 4, 1, 0, 0, 2, 1, 1]", "1309104.0", "[1, 2, 1, 0, 1, 1, 2, 1]", "1098972.0", "[0, 3, 1, 1, 3, 1, 1, 0]", "997016.0", "[1, 2, 1, 2, 1, 2, 0, 1]", "1073238.0", "[1, 4, 0, 2, 3, 2, 2, 0]", "4168425.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "9096256.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createDiscernabilityMetric(false)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "9096256.0", "[1, 1, 0, 0, 2, 2, 2, 0]", "6456349.0", "[0, 3, 1, 1, 0, 2, 2, 0]", "7102183.0", "[1, 3, 0, 0, 2, 1, 1, 1]", "5832609.0", "[1, 2, 1, 2, 2, 1, 2, 0]", "4210607.0", "[1, 4, 0, 1, 3, 2, 2, 1]", "3618711.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "9096256.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createDiscernabilityMetric(false)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "8.91711567E8", "[1, 0, 1, 0, 0, 1, 1, 1]", "7.52467594E8", "[0, 1, 1, 2, 2, 0, 1, 1]", "7.30323768E8", "[1, 3, 0, 1, 2, 0, 1, 1]", "5.68438002E8", "[1, 1, 1, 1, 0, 2, 2, 1]", "4.76568155E8", "[1, 4, 0, 2, 3, 1, 2, 1]", "6.51130781E8", "[1, 4, 1, 1, 3, 2, 2, 1]", "4.56853172E8", "[1, 4, 1, 2, 3, 2, 2, 1]", "9.09746244E8") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createDiscernabilityMetric(false)).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "8705518.0", "[0, 1, 0, 2, 1, 0, 1, 1]", "3544067.0", "[1, 1, 0, 1, 3, 0, 0, 1]", "2798834.0", "[0, 1, 1, 1, 3, 2, 2, 0]", "818055.0", "[1, 1, 1, 2, 3, 1, 1, 1]", "1100292.0", "[1, 4, 1, 1, 2, 1, 2, 0]", "1950726.0", "[0, 4, 1, 2, 3, 1, 2, 0]", "3004377.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "9096256.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createDiscernabilityMetric(false)).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "6.05615358E8", "[1, 1, 1, 1, 0, 0, 1, 0]", "2.32827528E8", "[1, 0, 1, 0, 1, 2, 0, 1]", "2.66210213E8", "[1, 0, 1, 1, 3, 1, 1, 0]", "7.746044E7", "[0, 2, 1, 1, 2, 2, 0, 1]", "1.11508216E8", "[0, 1, 0, 0, 3, 2, 2, 1]", "5.1815769E7", "[1, 3, 0, 1, 3, 1, 0, 1]", "1.04882645E8", "[1, 4, 1, 2, 3, 2, 2, 1]", "9.09746244E8") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createDiscernabilityMetric(true)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "7832.0", "[0, 0, 0, 1, 2, 2, 0, 1]", "19708.0", "[1, 2, 1, 1, 0, 0, 2, 0]", "148000.0", "[0, 4, 0, 1, 0, 2, 2, 1]", "424500.0", "[0, 2, 1, 2, 3, 2, 2, 1]", "1104390.0", "[1, 4, 1, 2, 1, 2, 2, 1]", "3182632.0", "[0, 4, 0, 2, 3, 2, 2, 1]", "3916464.0", "[1, 4, 1, 1, 3, 2, 2, 1]", "4565056.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "9096256.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createDiscernabilityMetric(true)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "7832.0", "[0, 4, 0, 1, 3, 1, 2, 0]", "1362322.0", "[0, 4, 0, 2, 2, 0, 2, 1]", "1732612.0", "[0, 4, 0, 2, 3, 1, 2, 1]", "3740634.0", "[0, 4, 1, 2, 3, 2, 2, 0]", "3147790.0", "[0, 4, 1, 2, 2, 2, 2, 1]", "2507114.0", "[1, 4, 1, 0, 3, 2, 2, 1]", "3137494.0", "[1, 4, 1, 2, 3, 2, 2, 0]", "5706370.0", "[1, 4, 1, 2, 2, 2, 2, 1]", "4454190.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "9096256.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createDiscernabilityMetric(true)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "7832.0", "[0, 0, 0, 1, 2, 0, 2, 0]", "21488.0", "[1, 1, 1, 1, 2, 1, 1, 1]", "197226.0", "[0, 4, 1, 2, 3, 0, 2, 0]", "2622066.0", "[0, 4, 1, 1, 3, 2, 2, 1]", "2876596.0", "[0, 4, 1, 2, 3, 2, 2, 1]", "5135656.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "9096256.0") }, /* 60 */{ new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createDiscernabilityMetric(true)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "485542.0", "[0, 1, 0, 0, 1, 0, 0, 1]", "4544210.0", "[1, 0, 0, 1, 3, 2, 2, 1]", "8524648.0", "[0, 4, 1, 2, 1, 2, 2, 1]", "1.80221352E8", "[1, 4, 0, 2, 3, 1, 2, 1]", "6.46582034E8", "[1, 4, 1, 1, 3, 2, 2, 1]", "4.56853172E8", "[0, 4, 1, 2, 3, 2, 2, 1]", "5.11031924E8", "[1, 4, 1, 2, 3, 2, 2, 1]", "9.09746244E8") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createDiscernabilityMetric(true)).addPrivacyModel(new KAnonymity(5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "485542.0", "[1, 1, 0, 1, 0, 2, 0, 0]", "4426432.0", "[1, 0, 1, 1, 3, 2, 2, 0]", "8461812.0", "[1, 4, 1, 1, 2, 2, 0, 0]", "9.6950278E7", "[0, 4, 1, 1, 1, 2, 2, 1]", "1.01990664E8", "[1, 4, 1, 2, 2, 2, 1, 0]", "2.1530661E8", "[1, 4, 1, 1, 3, 2, 0, 1]", "2.60892746E8", "[1, 4, 1, 2, 3, 2, 2, 0]", "5.6957378E8", "[1, 3, 1, 2, 3, 2, 2, 1]", "3.6770985E8", "[1, 4, 1, 2, 3, 2, 2, 1]", "9.09746244E8") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createDiscernabilityMetric(true)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "7832.0", "[0, 3, 0, 0, 0, 1, 2, 0]", "105264.0", "[1, 0, 1, 2, 2, 1, 2, 0]", "66366.0", "[0, 3, 1, 2, 0, 2, 2, 1]", "429404.0", "[1, 4, 1, 2, 3, 1, 2, 1]", "8335032.0", "[0, 4, 1, 2, 3, 2, 2, 1]", "5135656.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "9096256.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createDiscernabilityMetric(true)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "485542.0", "[0, 0, 1, 1, 0, 0, 0, 0]", "709192.0", "[1, 0, 1, 0, 1, 0, 0, 1]", "1927858.0", "[1, 4, 1, 0, 3, 2, 1, 1]", "2.3670797E8", "[1, 4, 1, 0, 3, 2, 2, 1]", "3.11880088E8", "[1, 4, 1, 1, 3, 2, 2, 1]", "4.56853172E8", "[0, 4, 1, 2, 3, 2, 2, 1]", "5.11031924E8", "[1, 4, 1, 2, 3, 2, 2, 1]", "9.09746244E8") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createDiscernabilityMetric(true)).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "7832.0", "[1, 0, 0, 1, 0, 1, 1, 1]", "17440.0", "[0, 4, 0, 0, 3, 0, 1, 0]", "698824.0", "[0, 3, 0, 2, 2, 0, 0, 1]", "403352.0", "[1, 4, 1, 2, 3, 2, 1, 0]", "4355544.0", "[1, 4, 1, 1, 2, 2, 2, 1]", "2239008.0", "[1, 4, 1, 2, 3, 2, 2, 0]", "5706370.0", "[1, 4, 1, 1, 3, 2, 2, 1]", "4565056.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "9096256.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createDiscernabilityMetric(true)).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "485542.0", "[0, 2, 0, 1, 1, 0, 2, 0]", "1.1562268E7", "[1, 4, 0, 0, 2, 2, 0, 0]", "4.5032754E7", "[1, 3, 1, 0, 3, 2, 0, 0]", "5.8333584E7", "[1, 4, 1, 0, 2, 2, 2, 1]", "1.54396508E8", "[1, 4, 0, 0, 3, 2, 2, 1]", "2.4144756E8", "[1, 4, 1, 1, 3, 1, 2, 1]", "4.17192736E8", "[0, 4, 1, 1, 3, 2, 2, 1]", "2.90180796E8", "[1, 2, 1, 2, 3, 2, 2, 1]", "1.9061966E8", "[1, 4, 1, 2, 3, 2, 2, 1]", "9.09746244E8") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createDiscernabilityMetric(true)).addPrivacyModel(new KAnonymity(5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "485542.0", "[1, 1, 1, 2, 2, 0, 0, 0]", "1.7040684E7", "[1, 4, 0, 1, 0, 0, 0, 1]", "3.5514078E7", "[0, 1, 1, 0, 2, 2, 0, 1]", "8651570.0", "[1, 4, 0, 0, 0, 0, 1, 1]", "3.3004132E7", "[0, 3, 1, 1, 0, 0, 2, 1]", "2.1394404E7", "[0, 3, 0, 2, 2, 0, 2, 0]", "4.4390778E7", "[0, 4, 1, 1, 2, 0, 1, 1]", "9.1157482E7", "[1, 3, 1, 0, 3, 0, 2, 1]", "1.18940424E8", "[1, 4, 1, 2, 3, 2, 2, 1]", "9.09746244E8") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createDiscernabilityMetric(true)).addPrivacyModel(new KAnonymity(5)), "RAMNTALL", "./data/cup.csv", "[0, 0, 0, 0, 0, 0, 0]", "63457.0", "[0, 1, 1, 1, 0, 3, 2]", "94701.0", "[5, 3, 0, 2, 1, 0, 0]", "9939939.0", "[4, 4, 1, 1, 0, 0, 1]", "7392427.0", "[0, 3, 0, 2, 0, 3, 3]", "157897.0", "[4, 3, 0, 0, 1, 3, 1]", "1.4883871E7", "[2, 1, 1, 1, 0, 4, 3]", "736107.0", "[3, 1, 1, 2, 0, 1, 4]", "6117561.0", "[4, 4, 0, 2, 1, 0, 3]", "1.5347427E7", "[5, 4, 1, 2, 1, 4, 4]", "4.024760481E9") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createDiscernabilityMetric(true)).addPrivacyModel(new KAnonymity(5)), "istatenum", "./data/fars.csv", "[0, 0, 0, 0, 0, 0, 0]", "9306905.0", "[0, 0, 1, 2, 0, 0, 0]", "1.0125669E7", "[0, 2, 1, 0, 0, 1, 1]", "1.6050723E7", "[1, 2, 2, 0, 1, 0, 0]", "7.4340471E7", "[0, 2, 3, 0, 1, 2, 0]", "1.7055517E7", "[2, 1, 1, 0, 1, 1, 2]", "4.90226573E8", "[2, 2, 0, 3, 1, 1, 0]", "1.47217591E8", "[0, 1, 3, 0, 1, 2, 2]", "5.8048433E7", "[2, 2, 3, 3, 1, 0, 2]", "6.38369221E8", "[5, 2, 3, 3, 1, 2, 2]", "1.0188277969E10") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createDiscernabilityMetric(true)).addPrivacyModel(new KAnonymity(5)), "Highest level of school completed", "./data/atus.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "2.241709429E9", "[0, 1, 0, 0, 0, 1, 0, 0]", "2.408734021E9", "[2, 0, 0, 0, 1, 1, 0, 0]", "8.601519003E9", "[0, 0, 1, 1, 1, 1, 0, 0]", "2.575758263E9", "[0, 2, 0, 0, 1, 1, 0, 1]", "2.674947445E9", "[1, 0, 1, 1, 1, 1, 0, 1]", "4.935458395E9", "[0, 0, 1, 0, 2, 2, 0, 1]", "8.282531415E9", "[0, 3, 1, 2, 0, 1, 1, 0]", "5.294383109E9", "[1, 5, 0, 2, 0, 1, 0, 0]", "9.151549775E9", "[2, 5, 1, 2, 2, 2, 2, 2]", "2.90793798009E11") }, /* 70 */{ new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createDiscernabilityMetric(true)).addPrivacyModel(new KAnonymity(5)), "EDUC", "./data/ihis.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "9642324.0", "[0, 2, 0, 0, 0, 0, 1, 0]", "6.1794606E7", "[0, 0, 0, 1, 1, 1, 1, 0]", "1.50060262E8", "[0, 0, 0, 0, 2, 0, 1, 1]", "2.0978252E8", "[0, 1, 1, 3, 0, 0, 0, 0]", "8.103245E7", "[1, 0, 2, 0, 1, 2, 0, 0]", "9.8169505E8", "[5, 0, 0, 1, 0, 0, 1, 0]", "2.7161538E8", "[2, 1, 1, 1, 2, 1, 0, 1]", "6.56513789E9", "[1, 2, 1, 3, 0, 2, 0, 1]", "1.712344072E9", "[5, 2, 2, 3, 4, 2, 1, 1]", "1.424451798016E12") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createDiscernabilityMetric(true)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "7832.0", "[1, 4, 0, 1, 0, 1, 0, 0]", "295632.0", "[1, 3, 0, 0, 2, 0, 0, 1]", "280638.0", "[1, 2, 1, 1, 3, 1, 0, 0]", "441070.0", "[0, 2, 1, 2, 3, 1, 1, 0]", "504522.0", "[0, 2, 1, 0, 3, 2, 1, 1]", "439116.0", "[0, 4, 1, 0, 2, 2, 1, 1]", "814530.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "9096256.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createDiscernabilityMetric(true)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "7832.0", "[0, 0, 0, 0, 1, 0, 0, 0]", "10700.0", "[0, 3, 0, 0, 2, 2, 2, 0]", "260752.0", "[0, 4, 0, 2, 0, 2, 1, 1]", "598446.0", "[1, 3, 0, 2, 2, 1, 2, 1]", "1279810.0", "[1, 4, 0, 2, 3, 2, 2, 1]", "6721120.0", "[0, 4, 1, 2, 3, 2, 2, 1]", "5135656.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "9096256.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createDiscernabilityMetric(true)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "485542.0", "[1, 3, 0, 1, 0, 0, 0, 0]", "1.2523398E7", "[0, 0, 1, 1, 0, 2, 0, 1]", "996236.0", "[1, 4, 1, 0, 0, 0, 1, 0]", "2.8401414E7", "[0, 3, 0, 1, 2, 0, 1, 1]", "3.2004598E7", "[0, 4, 0, 2, 3, 2, 2, 1]", "3.92187826E8", "[1, 4, 1, 1, 3, 2, 2, 1]", "4.56853172E8", "[1, 4, 1, 2, 3, 2, 2, 1]", "9.09746244E8") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createDiscernabilityMetric(true)).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "7832.0", "[0, 0, 0, 0, 2, 2, 2, 0]", "20632.0", "[1, 4, 1, 1, 0, 1, 1, 0]", "497850.0", "[0, 4, 0, 2, 1, 0, 2, 0]", "818158.0", "[0, 3, 1, 2, 0, 2, 1, 1]", "337516.0", "[0, 1, 1, 1, 3, 2, 2, 1]", "358816.0", "[0, 4, 0, 1, 3, 2, 2, 0]", "1424494.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "9096256.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createDiscernabilityMetric(true)).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "485542.0", "[0, 0, 0, 1, 1, 1, 0, 1]", "1228344.0", "[0, 4, 0, 0, 1, 1, 0, 0]", "2.1801416E7", "[0, 0, 1, 2, 0, 2, 2, 0]", "1749754.0", "[0, 2, 0, 1, 3, 2, 0, 1]", "2.9219442E7", "[0, 3, 1, 0, 3, 2, 1, 0]", "4.78953E7", "[0, 0, 1, 1, 3, 2, 2, 1]", "7237306.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "9.09746244E8") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createEntropyMetric()).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "36572.579698609305", "[1, 3, 1, 1, 1, 0, 1, 0]", "28927.0312680049", "[0, 2, 1, 0, 3, 0, 2, 1]", "30227.382413894396", "[1, 4, 1, 1, 1, 2, 2, 1]", "37223.2491248282", "[1, 4, 0, 0, 3, 2, 2, 1]", "37657.7510667896", "[1, 1, 1, 2, 3, 2, 2, 1]", "35402.43619338381", "[1, 4, 1, 1, 3, 2, 2, 0]", "40045.962293849494", "[1, 4, 1, 1, 2, 2, 2, 1]", "39177.7411830619", "[1, 4, 1, 2, 3, 2, 2, 0]", "43053.85980251069", "[1, 4, 1, 2, 3, 2, 2, 1]", "45489.51725469279") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createEntropyMetric()).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "42878.8699918206", "[1, 1, 0, 1, 3, 1, 1, 1]", "30247.1023477311", "[0, 4, 1, 0, 1, 0, 2, 1]", "32399.566616360695", "[0, 4, 1, 1, 0, 2, 2, 0]", "29206.7308526083", "[0, 4, 0, 2, 3, 1, 2, 1]", "39483.3053759486", "[0, 2, 1, 2, 3, 2, 2, 1]", "35461.300017243804", "[1, 3, 1, 2, 3, 2, 2, 0]", "38454.461369895296", "[0, 4, 1, 2, 3, 2, 2, 1]", "42760.946661935195", "[1, 4, 1, 2, 3, 2, 2, 1]", "45489.51725469279") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createEntropyMetric()).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "45489.51725469279", "[1, 0, 1, 2, 1, 2, 1, 1]", "41163.136095841706", "[1, 4, 1, 2, 1, 1, 1, 0]", "39932.337622368796", "[0, 4, 1, 2, 1, 2, 2, 1]", "40076.1151041188", "[0, 2, 1, 2, 3, 2, 2, 1]", "37297.00754259861", "[1, 4, 1, 1, 3, 2, 2, 1]", "42481.619746031596", "[1, 4, 1, 2, 3, 2, 2, 1]", "45489.51725469279") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createEntropyMetric()).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "449310.02427120315", "[0, 2, 0, 0, 0, 1, 1, 0]", "430870.6640055294", "[0, 3, 0, 2, 2, 2, 0, 1]", "422368.6092344045", "[1, 4, 1, 2, 3, 2, 0, 1]", "423798.09760692413", "[0, 4, 1, 2, 2, 2, 2, 1]", "399549.56945871573", "[1, 4, 1, 1, 3, 2, 2, 1]", "425817.7142571098", "[0, 4, 1, 2, 3, 2, 2, 1]", "428467.2965004933", "[1, 4, 1, 2, 3, 2, 2, 1]", "455884.9365769584") }, /* 80 */{ new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createEntropyMetric()).addPrivacyModel(new KAnonymity(5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "268778.22471939825", "[0, 2, 1, 0, 2, 2, 2, 1]", "268749.92540448345", "[0, 4, 1, 0, 3, 2, 0, 1]", "331120.2523649918", "[1, 4, 1, 0, 1, 1, 2, 1]", "339228.0442261357", "[1, 1, 1, 1, 2, 2, 2, 1]", "291680.2013216374", "[1, 4, 1, 2, 3, 2, 0, 0]", "388894.9425140205", "[0, 4, 1, 2, 1, 2, 2, 1]", "376288.0867932696", "[1, 4, 1, 0, 2, 2, 2, 1]", "368037.49418958207", "[0, 4, 1, 0, 3, 2, 2, 1]", "373580.1797833488", "[1, 4, 1, 2, 3, 2, 2, 1]", "455884.9365769584") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createEntropyMetric()).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "45489.51725469279", "[0, 1, 0, 2, 1, 2, 1, 0]", "43431.9407811488", "[0, 0, 0, 1, 3, 2, 2, 0]", "43346.395041232", "[0, 4, 1, 2, 1, 2, 2, 1]", "40076.1151041188", "[0, 3, 1, 2, 3, 2, 2, 1]", "38652.87376940461", "[0, 4, 1, 2, 3, 2, 2, 1]", "42760.946661935195", "[1, 4, 1, 2, 3, 2, 2, 1]", "45489.51725469279") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createEntropyMetric()).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "449310.02427120315", "[0, 3, 0, 0, 3, 2, 1, 0]", "402664.5102383564", "[1, 3, 1, 0, 1, 1, 2, 0]", "365326.9637925289", "[0, 4, 0, 2, 3, 1, 2, 0]", "418550.82404305914", "[1, 4, 1, 2, 3, 1, 2, 1]", "445652.72997734265", "[1, 4, 1, 1, 3, 2, 2, 1]", "425817.7142571098", "[0, 4, 1, 2, 3, 2, 2, 1]", "428467.2965004933", "[1, 4, 1, 2, 3, 2, 2, 1]", "455884.9365769584") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createEntropyMetric()).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "44045.8432426865", "[0, 1, 0, 1, 2, 0, 2, 1]", "29681.843993257895", "[1, 0, 1, 1, 2, 2, 2, 0]", "28399.6985190158", "[0, 4, 1, 1, 3, 2, 2, 0]", "37317.391701091896", "[1, 4, 1, 2, 3, 2, 1, 0]", "41263.99624564949", "[1, 4, 1, 1, 3, 2, 2, 0]", "40045.962293849494", "[1, 4, 1, 1, 3, 2, 2, 1]", "42481.619746031596", "[1, 4, 0, 2, 3, 2, 2, 1]", "43097.83985133639", "[1, 4, 1, 2, 3, 2, 2, 1]", "45489.51725469279") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createEntropyMetric()).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "335625.27531107684", "[0, 0, 0, 1, 3, 2, 2, 1]", "221461.3561338566", "[1, 2, 1, 2, 2, 2, 0, 1]", "314636.9503657891", "[1, 4, 1, 2, 2, 2, 0, 1]", "380428.0099312521", "[0, 4, 0, 1, 3, 2, 2, 1]", "375025.03890812385", "[1, 2, 1, 1, 3, 2, 2, 1]", "352492.7198272997", "[1, 3, 1, 2, 2, 2, 2, 1]", "376580.1226920573", "[1, 3, 1, 1, 3, 2, 2, 1]", "379458.17719685636", "[1, 3, 1, 2, 3, 2, 2, 1]", "409525.39951670496", "[1, 4, 1, 2, 3, 2, 2, 1]", "455884.9365769584") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createEntropyMetric()).addPrivacyModel(new KAnonymity(5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "268778.22471939825", "[0, 3, 1, 0, 0, 0, 0, 1]", "225818.85565423348", "[1, 2, 0, 0, 1, 1, 1, 0]", "223416.79870184092", "[1, 2, 1, 1, 1, 1, 0, 0]", "235250.4279761534", "[1, 0, 0, 0, 3, 1, 2, 0]", "202460.270902107", "[1, 3, 0, 1, 2, 0, 0, 1]", "275372.98294157453", "[0, 4, 0, 2, 3, 0, 0, 0]", "321182.9796059437", "[0, 3, 0, 1, 3, 1, 0, 1]", "282133.44556129957", "[1, 1, 1, 0, 3, 2, 1, 1]", "282532.98778791947", "[1, 4, 1, 2, 3, 2, 2, 1]", "455884.9365769584") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createEntropyMetric()).addPrivacyModel(new KAnonymity(5)), "RAMNTALL", "./data/cup.csv", "[0, 0, 0, 0, 0, 0, 0]", "2207518.9993976387", "[0, 1, 0, 0, 1, 4, 0]", "2207518.9993976387", "[0, 0, 1, 0, 1, 4, 1]", "2207518.9993976387", "[5, 4, 1, 1, 0, 0, 0]", "1591484.6764819187", "[5, 4, 0, 1, 1, 0, 0]", "1634141.3783607204", "[4, 2, 1, 0, 1, 4, 0]", "1569890.387870711", "[4, 4, 0, 1, 1, 3, 0]", "1720732.0919352677", "[4, 0, 0, 2, 1, 2, 4]", "1591324.3745866253", "[5, 4, 1, 1, 0, 0, 4]", "1598585.7115628633", "[5, 4, 1, 2, 1, 4, 4]", "2207518.9993976974") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createEntropyMetric()).addPrivacyModel(new KAnonymity(5)), "istatenum", "./data/fars.csv", "[0, 0, 0, 0, 0, 0, 0]", "805526.2618565465", "[1, 2, 1, 0, 0, 0, 0]", "696176.3879723677", "[2, 0, 0, 3, 0, 0, 0]", "682336.4039584913", "[3, 0, 1, 0, 0, 2, 0]", "751011.6298107738", "[1, 1, 1, 0, 0, 1, 2]", "927455.5811200172", "[1, 0, 2, 2, 0, 1, 1]", "755224.4599748307", "[3, 0, 2, 0, 0, 0, 2]", "890430.8923091795", "[4, 0, 1, 0, 0, 2, 1]", "862746.9598747758", "[4, 2, 0, 1, 1, 0, 1]", "1000571.2210988334", "[5, 2, 3, 3, 1, 2, 2]", "1828114.5308318876") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createEntropyMetric()).addPrivacyModel(new KAnonymity(5)), "Highest level of school completed", "./data/atus.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "1259537.2231967654", "[0, 0, 0, 0, 2, 1, 0, 0]", "2065022.0644048576", "[0, 0, 0, 0, 0, 1, 2, 0]", "1491754.3544392074", "[0, 0, 0, 1, 0, 0, 2, 1]", "1424850.0953497512", "[1, 0, 0, 2, 2, 0, 0, 0]", "2744869.9404375413", "[1, 0, 1, 1, 0, 1, 0, 1]", "2301188.758284852", "[0, 0, 1, 1, 2, 1, 0, 1]", "2778615.8984986157", "[0, 0, 1, 0, 0, 2, 2, 2]", "2611934.8210495966", "[1, 4, 0, 1, 1, 0, 2, 1]", "3007403.196740252", "[2, 5, 1, 2, 2, 2, 2, 2]", "7631154.350031186") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createEntropyMetric()).addPrivacyModel(new KAnonymity(5)), "EDUC", "./data/ihis.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "1.1187289339555768E7", "[0, 2, 1, 1, 0, 0, 0, 0]", "7273429.38959357", "[0, 2, 0, 2, 0, 0, 0, 0]", "7472470.31885773", "[0, 1, 0, 0, 2, 0, 1, 0]", "7694333.299562954", "[0, 2, 0, 1, 0, 1, 1, 0]", "7716953.448477413", "[3, 0, 1, 0, 0, 0, 0, 1]", "7003704.403532421", "[2, 2, 0, 1, 0, 1, 0, 0]", "8997719.56829921", "[4, 2, 1, 3, 0, 1, 1, 0]", "1.3036049173402859E7", "[5, 2, 2, 1, 4, 2, 1, 1]", "2.356990577494701E7", "[5, 2, 2, 3, 4, 2, 1, 1]", "2.5025416064416602E7") }, /* 90 */{ new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createEntropyMetric()).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "42878.8699918206", "[1, 0, 1, 0, 1, 0, 0, 0]", "36255.5171692709", "[0, 0, 0, 1, 1, 0, 1, 0]", "37125.6538824248", "[1, 4, 1, 2, 0, 0, 0, 0]", "31506.958711180796", "[0, 2, 1, 1, 2, 2, 0, 1]", "28068.153249051804", "[1, 4, 0, 0, 3, 1, 1, 0]", "33498.435222782595", "[0, 3, 1, 1, 1, 2, 1, 1]", "29023.513317939298", "[1, 4, 1, 2, 3, 2, 2, 1]", "45489.51725469279") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createEntropyMetric()).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "45489.51725469279", "[0, 0, 1, 0, 2, 0, 0, 1]", "45489.51725469279", "[0, 3, 0, 0, 1, 2, 0, 1]", "43805.288183344", "[1, 2, 0, 0, 2, 1, 2, 1]", "39460.3507062129", "[0, 4, 1, 2, 1, 2, 2, 1]", "40076.1151041188", "[1, 4, 0, 1, 3, 2, 2, 1]", "40282.23779327559", "[1, 4, 0, 2, 3, 2, 2, 1]", "43142.96542848049", "[1, 4, 1, 2, 3, 2, 2, 1]", "45489.51725469279") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createEntropyMetric()).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "449310.02427120315", "[1, 3, 0, 0, 1, 0, 0, 1]", "399055.03653562465", "[0, 3, 0, 2, 1, 0, 0, 1]", "440113.8891518073", "[0, 2, 1, 1, 0, 2, 2, 1]", "415525.9167670413", "[0, 2, 1, 0, 3, 1, 2, 1]", "335104.011178721", "[0, 4, 0, 2, 3, 2, 2, 1]", "405570.22952125047", "[1, 4, 0, 2, 3, 2, 2, 1]", "432509.90130443755", "[1, 4, 1, 2, 3, 2, 2, 1]", "455884.9365769584") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createEntropyMetric()).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "44045.8432426865", "[0, 1, 1, 0, 0, 0, 2, 1]", "34685.3313578231", "[0, 0, 1, 1, 3, 0, 0, 1]", "33700.8202749148", "[0, 1, 1, 2, 1, 1, 2, 0]", "30855.697290673794", "[0, 4, 1, 2, 0, 0, 1, 1]", "35143.0132087064", "[0, 4, 0, 2, 3, 1, 2, 0]", "37516.6988701566", "[0, 4, 1, 1, 2, 2, 2, 0]", "34275.702448239404", "[1, 4, 1, 2, 3, 2, 2, 1]", "45489.51725469279") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createEntropyMetric()).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "335625.27531107684", "[0, 0, 0, 0, 3, 0, 1, 0]", "239068.8568394522", "[0, 2, 1, 0, 2, 0, 0, 1]", "268600.244387962", "[0, 4, 0, 0, 3, 0, 0, 0]", "300502.7869338805", "[1, 0, 1, 0, 2, 1, 2, 1]", "218953.2373591787", "[0, 2, 1, 0, 3, 2, 1, 0]", "268506.1743029817", "[0, 3, 0, 0, 3, 1, 2, 0]", "281442.9443513136", "[1, 4, 1, 2, 3, 2, 2, 1]", "455884.9365769584") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createHeightMetric()).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.0", "[0, 2, 1, 1, 0, 0, 1, 0]", "5.0", "[1, 0, 1, 2, 3, 1, 0, 1]", "9.0", "[1, 4, 1, 0, 3, 2, 1, 0]", "12.0", "[1, 3, 1, 1, 1, 2, 2, 1]", "12.0", "[1, 4, 0, 2, 3, 2, 2, 0]", "14.0", "[1, 4, 1, 2, 1, 2, 2, 1]", "14.0", "[1, 2, 1, 2, 3, 2, 2, 1]", "14.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "16.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createHeightMetric()).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.0", "[0, 2, 1, 0, 1, 1, 0, 0]", "5.0", "[1, 3, 0, 1, 1, 2, 1, 1]", "10.0", "[1, 3, 1, 2, 3, 2, 2, 0]", "14.0", "[1, 4, 1, 2, 1, 2, 2, 1]", "14.0", "[1, 3, 1, 2, 2, 2, 2, 1]", "14.0", "[1, 3, 0, 2, 3, 2, 2, 1]", "14.0", "[0, 3, 1, 2, 3, 2, 2, 1]", "14.0", "[0, 4, 1, 2, 3, 2, 2, 1]", "15.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "16.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createHeightMetric()).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.0", "[0, 0, 1, 0, 1, 2, 2, 1]", "7.0", "[0, 4, 0, 0, 3, 0, 1, 0]", "8.0", "[1, 4, 0, 0, 3, 2, 0, 0]", "10.0", "[0, 4, 1, 2, 2, 2, 2, 1]", "14.0", "[1, 4, 1, 1, 3, 2, 2, 1]", "15.0", "[0, 4, 1, 2, 3, 2, 2, 1]", "15.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "16.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createHeightMetric()).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.0", "[0, 2, 1, 0, 3, 0, 2, 0]", "8.0", "[1, 4, 0, 1, 1, 1, 0, 1]", "9.0", "[1, 4, 0, 2, 3, 2, 2, 0]", "14.0", "[0, 4, 1, 2, 3, 2, 2, 0]", "14.0", "[0, 4, 1, 1, 3, 2, 2, 1]", "14.0", "[1, 4, 0, 2, 3, 2, 2, 1]", "15.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "16.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createHeightMetric()).addPrivacyModel(new KAnonymity(5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.0", "[0, 3, 0, 1, 3, 2, 1, 0]", "10.0", "[0, 4, 1, 1, 3, 0, 0, 1]", "10.0", "[0, 4, 1, 1, 3, 0, 2, 0]", "11.0", "[0, 3, 1, 2, 3, 1, 2, 1]", "13.0", "[1, 4, 1, 0, 2, 2, 2, 1]", "13.0", "[1, 4, 1, 2, 3, 2, 1, 0]", "14.0", "[1, 2, 1, 2, 3, 2, 2, 1]", "14.0", "[0, 3, 1, 2, 3, 2, 2, 1]", "14.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "16.0") }, /* 100 */{ new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createHeightMetric()).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.0", "[1, 4, 0, 1, 0, 2, 0, 0]", "8.0", "[0, 3, 1, 1, 3, 0, 0, 1]", "9.0", "[0, 4, 1, 2, 3, 0, 2, 0]", "12.0", "[1, 4, 1, 2, 2, 2, 2, 1]", "15.0", "[0, 4, 1, 2, 3, 2, 2, 1]", "15.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "16.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createHeightMetric()).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.0", "[0, 3, 1, 0, 2, 0, 2, 0]", "8.0", "[0, 3, 1, 1, 0, 2, 2, 1]", "10.0", "[1, 3, 1, 2, 1, 2, 0, 1]", "11.0", "[0, 4, 1, 2, 1, 2, 2, 1]", "13.0", "[1, 4, 1, 1, 3, 2, 2, 1]", "15.0", "[1, 4, 0, 2, 3, 2, 2, 1]", "15.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "16.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createHeightMetric()).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.0", "[1, 2, 0, 0, 1, 0, 0, 0]", "4.0", "[1, 3, 1, 2, 2, 0, 2, 0]", "11.0", "[1, 4, 1, 2, 3, 2, 1, 0]", "14.0", "[0, 4, 1, 2, 3, 2, 2, 0]", "14.0", "[1, 4, 1, 0, 3, 2, 2, 1]", "14.0", "[0, 4, 1, 1, 3, 2, 2, 1]", "14.0", "[1, 4, 1, 2, 3, 2, 2, 0]", "15.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "16.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createHeightMetric()).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.0", "[1, 0, 0, 0, 0, 0, 2, 1]", "4.0", "[0, 4, 0, 2, 2, 0, 1, 1]", "10.0", "[0, 4, 1, 1, 2, 2, 2, 0]", "12.0", "[1, 3, 1, 2, 3, 2, 0, 1]", "13.0", "[1, 4, 1, 2, 2, 2, 2, 0]", "14.0", "[0, 4, 1, 2, 3, 2, 2, 0]", "14.0", "[1, 4, 1, 1, 3, 2, 2, 1]", "15.0", "[1, 4, 0, 2, 3, 2, 2, 1]", "15.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "16.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createHeightMetric()).addPrivacyModel(new KAnonymity(5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.0", "[0, 2, 1, 1, 0, 2, 0, 0]", "6.0", "[1, 2, 1, 1, 0, 0, 2, 0]", "7.0", "[1, 1, 0, 2, 2, 0, 0, 1]", "7.0", "[0, 1, 1, 1, 2, 1, 0, 1]", "7.0", "[1, 2, 0, 0, 1, 2, 0, 1]", "7.0", "[0, 2, 1, 1, 2, 1, 1, 0]", "8.0", "[0, 0, 1, 1, 3, 2, 0, 1]", "8.0", "[1, 2, 1, 2, 0, 2, 2, 1]", "11.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "16.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createHeightMetric()).addPrivacyModel(new KAnonymity(5)), "RAMNTALL", "./data/cup.csv", "[0, 0, 0, 0, 0, 0, 0]", "0.0", "[0, 4, 1, 2, 0, 0, 0]", "7.0", "[2, 4, 1, 1, 0, 0, 1]", "9.0", "[3, 3, 0, 2, 1, 0, 1]", "10.0", "[0, 3, 0, 0, 0, 3, 4]", "10.0", "[5, 4, 0, 0, 1, 2, 0]", "12.0", "[4, 4, 0, 2, 0, 3, 0]", "13.0", "[5, 3, 0, 0, 1, 0, 4]", "13.0", "[5, 2, 0, 0, 1, 3, 4]", "15.0", "[5, 4, 1, 2, 1, 4, 4]", "21.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createHeightMetric()).addPrivacyModel(new KAnonymity(5)), "istatenum", "./data/fars.csv", "[0, 0, 0, 0, 0, 0, 0]", "0.0", "[0, 0, 3, 0, 0, 1, 0]", "4.0", "[1, 0, 2, 0, 0, 1, 1]", "5.0", "[3, 1, 0, 0, 0, 2, 1]", "7.0", "[1, 0, 0, 2, 0, 2, 2]", "7.0", "[2, 1, 2, 0, 1, 0, 2]", "8.0", "[1, 2, 0, 0, 1, 2, 2]", "8.0", "[0, 0, 1, 2, 1, 2, 2]", "8.0", "[2, 2, 3, 0, 1, 2, 0]", "10.0", "[5, 2, 3, 3, 1, 2, 2]", "18.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createHeightMetric()).addPrivacyModel(new KAnonymity(5)), "Highest level of school completed", "./data/atus.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.0", "[0, 0, 0, 0, 0, 1, 1, 0]", "2.0", "[2, 0, 0, 1, 0, 0, 0, 0]", "3.0", "[0, 2, 0, 0, 1, 1, 0, 0]", "4.0", "[0, 1, 0, 0, 2, 0, 0, 1]", "4.0", "[0, 1, 0, 1, 0, 1, 0, 1]", "4.0", "[0, 0, 0, 2, 2, 2, 0, 0]", "6.0", "[1, 4, 0, 0, 2, 2, 0, 1]", "10.0", "[2, 1, 1, 2, 1, 1, 0, 2]", "10.0", "[2, 5, 1, 2, 2, 2, 2, 2]", "18.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createHeightMetric()).addPrivacyModel(new KAnonymity(5)), "EDUC", "./data/ihis.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.0", "[0, 1, 0, 1, 0, 0, 0, 0]", "2.0", "[1, 0, 0, 1, 0, 1, 1, 0]", "4.0", "[0, 1, 0, 3, 1, 0, 0, 0]", "5.0", "[1, 1, 1, 1, 0, 1, 0, 0]", "5.0", "[4, 0, 0, 2, 0, 0, 1, 0]", "7.0", "[0, 2, 0, 2, 0, 1, 1, 1]", "7.0", "[1, 1, 1, 1, 3, 0, 0, 1]", "8.0", "[5, 1, 0, 3, 0, 0, 0, 0]", "9.0", "[5, 2, 2, 3, 4, 2, 1, 1]", "20.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createHeightMetric()).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.0", "[0, 0, 0, 1, 1, 2, 0, 0]", "4.0", "[1, 4, 1, 0, 0, 1, 0, 1]", "8.0", "[1, 3, 0, 1, 1, 2, 1, 0]", "9.0", "[0, 2, 1, 1, 3, 1, 0, 1]", "9.0", "[0, 4, 0, 1, 3, 1, 1, 0]", "10.0", "[0, 4, 0, 0, 3, 2, 2, 0]", "11.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "16.0") }, /* 110 */{ new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createHeightMetric()).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.0", "[0, 0, 1, 0, 0, 0, 1, 0]", "2.0", "[1, 3, 1, 1, 1, 0, 1, 1]", "9.0", "[1, 2, 1, 2, 0, 1, 2, 1]", "10.0", "[0, 3, 1, 1, 3, 2, 0, 1]", "11.0", "[1, 4, 0, 2, 3, 1, 2, 1]", "14.0", "[1, 4, 0, 2, 3, 2, 2, 1]", "15.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "16.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createHeightMetric()).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.0", "[0, 1, 0, 2, 0, 1, 1, 0]", "5.0", "[0, 1, 0, 1, 0, 2, 0, 1]", "5.0", "[1, 2, 0, 1, 0, 1, 1, 1]", "7.0", "[1, 0, 1, 2, 2, 1, 1, 1]", "9.0", "[0, 4, 0, 2, 3, 2, 2, 1]", "14.0", "[1, 4, 0, 2, 3, 2, 2, 1]", "15.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "16.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createHeightMetric()).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.0", "[0, 2, 1, 0, 0, 0, 0, 0]", "3.0", "[0, 2, 1, 0, 1, 1, 1, 0]", "6.0", "[1, 2, 1, 0, 3, 0, 1, 1]", "9.0", "[1, 1, 1, 2, 3, 1, 0, 1]", "10.0", "[0, 4, 1, 0, 2, 2, 1, 1]", "11.0", "[0, 4, 0, 2, 3, 1, 2, 0]", "12.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "16.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createHeightMetric()).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.0", "[0, 0, 0, 0, 2, 2, 0, 1]", "5.0", "[1, 3, 1, 0, 1, 0, 0, 0]", "6.0", "[0, 2, 0, 2, 1, 0, 2, 0]", "7.0", "[1, 0, 0, 1, 3, 1, 0, 1]", "7.0", "[0, 1, 1, 0, 3, 1, 2, 0]", "8.0", "[0, 4, 0, 0, 3, 0, 2, 0]", "9.0", "[1, 4, 1, 2, 3, 2, 2, 1]", "16.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createLossMetric(AggregateFunction.RANK)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "[0.7566312997, 0.7566312997, 0.7566312997, 0.7566312997, 0.7566312997, 0.7566312997, 0.7566312997, 0.7566312997]", "[1, 1, 0, 2, 0, 2, 0, 0]", "[1.0, 1.0, 1.0, 0.2993931356, 0.2698938992, 0.2698938992, 0.2698938992, 0.2698938992]", "[0, 4, 0, 1, 1, 0, 2, 0]", "[1.0, 1.0, 0.4791666666, 0.2588196286, 0.0805702917, 0.0805702917, 0.0805702917, 0.0805702917]", "[0, 4, 0, 1, 2, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 0.4363947833, 0.3728337754, 0.0089522546, 0.0089522546]", "[0, 4, 1, 2, 1, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.1915119363, 0.0]", "[1, 4, 1, 1, 2, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.431918656, 0.3663793103]", "[1, 3, 1, 2, 2, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.3663793103, 0.1919191919]", "[1, 4, 0, 1, 3, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.431918656, 0.0]", "[1, 4, 1, 2, 3, 2, 2, 0]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0]", "[1, 4, 1, 2, 3, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createLossMetric(AggregateFunction.RANK)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "[0.9260610079, 0.9260610079, 0.9260610079, 0.9260610079, 0.9260610079, 0.9260610079, 0.9260610079, 0.9260610079]", "[0, 1, 0, 1, 2, 2, 1, 0]", "[1.0, 0.5769230769, 0.5276304155, 0.4642857142, 0.2803030303, 0.25, 0.25, 0.25]", "[1, 4, 0, 1, 3, 1, 1, 0]", "[1.0, 1.0, 1.0, 0.4462312113, 0.3025293671, 0.2911472148, 0.023541114, 0.023541114]", "[0, 4, 1, 2, 3, 0, 2, 0]", "[1.0, 1.0, 1.0, 1.0, 1.0, 0.0636604774, 0.0636604774, 0.0636604774]", "[1, 4, 1, 1, 1, 2, 2, 0]", "[1.0, 1.0, 1.0, 1.0, 1.0, 0.4324712643, 0.1920866489, 6.631299E-4]", "[0, 4, 1, 2, 3, 2, 2, 0]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0]", "[0, 4, 1, 2, 2, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.3663793103, 0.0]", "[1, 4, 1, 2, 3, 2, 2, 0]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0]", "[1, 4, 1, 2, 2, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.3663793103]", "[1, 4, 1, 2, 3, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createLossMetric(AggregateFunction.RANK)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]", "[0, 3, 0, 0, 0, 1, 1, 1]", "[1.0, 0.920187571, 0.9189903846, 0.909707151, 0.8882625994, 0.8882625994, 0.8882625994, 0.8882625994]", "[0, 4, 0, 0, 3, 0, 1, 0]", "[1.0, 1.0, 0.7811671087, 0.6936339522, 0.6936339522, 0.6936339522, 0.6936339522, 0.6936339522]", "[1, 2, 1, 0, 2, 1, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 0.7311450044, 0.6939903846, 0.6162888835, 0.5779177718]", "[1, 4, 1, 2, 2, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.3804597701]", "[0, 4, 1, 2, 3, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0]", "[1, 4, 1, 2, 3, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createLossMetric(AggregateFunction.RANK)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "[0.9801405742, 0.9801405742, 0.9801405742, 0.9801405742, 0.9801405742, 0.9801405742, 0.9801405742, 0.9801405742]", "[1, 0, 0, 1, 0, 0, 1, 1]", "[1.0, 1.0, 0.9050626616, 0.8700588252, 0.8180823552, 0.8180823552, 0.8180823552, 0.8180823552]", "[0, 4, 0, 0, 3, 0, 1, 0]", "[1.0, 1.0, 0.6857682798, 0.5600755918, 0.5600755918, 0.5600755918, 0.5600755918, 0.5600755918]", "[0, 3, 1, 0, 3, 2, 2, 0]", "[1.0, 1.0, 1.0, 1.0, 0.6055776919, 0.5119023937, 0.5119023937, 0.5119023937]", "[1, 4, 1, 0, 3, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 6.962403E-4]", "[0, 4, 1, 1, 3, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.4331609309, 0.0]", "[1, 4, 1, 2, 3, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createLossMetric(AggregateFunction.RANK)).addPrivacyModel(new KAnonymity(5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "[0.5090179696, 0.5090179696, 0.5090179696, 0.5090179696, 0.5090179696, 0.5090179696, 0.5090179696, 0.5090179696]", "[0, 0, 0, 2, 0, 0, 0, 0]", "[1.0, 0.3843909555, 0.3843909555, 0.3843909555, 0.3843909555, 0.3843909555, 0.3843909555, 0.3843909555]", "[0, 3, 1, 1, 1, 1, 0, 0]", "[1.0, 0.4535066198, 0.299545786, 0.220264444, 0.2196339765, 0.0350772495, 0.0350772495, 0.0350772495]", "[1, 4, 1, 0, 1, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.1899012001, 6.63086E-5]", "[0, 4, 1, 2, 3, 2, 1, 0]", "[1.0, 1.0, 1.0, 1.0, 1.0, 0.2856479771, 0.0, 0.0]", "[0, 4, 1, 1, 3, 1, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 0.4331609309, 0.2728756382, 0.0]", "[0, 4, 1, 2, 1, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.1898437327, 0.0]", "[0, 3, 0, 2, 3, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 0.1924014362, 5.967774E-4, 5.967774E-4]", "[0, 4, 0, 2, 3, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0]", "[1, 4, 1, 2, 3, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createLossMetric(AggregateFunction.RANK)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]", "[0, 3, 1, 2, 1, 1, 1, 1]", "[1.0, 1.0, 1.0, 0.8197707464, 0.8170673076, 0.8040229885, 0.7961042788, 0.747679045]", "[1, 4, 1, 1, 2, 0, 1, 1]", "[1.0, 1.0, 1.0, 1.0, 0.7254641909, 0.6292219274, 0.5879120879, 0.423076923]", "[0, 4, 1, 2, 3, 0, 2, 0]", "[1.0, 1.0, 1.0, 1.0, 1.0, 0.5709549071, 0.5709549071, 0.5709549071]", "[1, 4, 1, 0, 3, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0702917771]", "[1, 4, 1, 1, 3, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.431918656]", "[1, 4, 1, 2, 3, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]") }, /* 120 */{ new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createLossMetric(AggregateFunction.RANK)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "[0.9801405742, 0.9801405742, 0.9801405742, 0.9801405742, 0.9801405742, 0.9801405742, 0.9801405742, 0.9801405742]", "[0, 0, 0, 1, 2, 0, 2, 1]", "[1.0, 1.0, 0.9042614327, 0.882043631, 0.808666534, 0.808666534, 0.808666534, 0.808666534]", "[0, 2, 0, 2, 2, 0, 2, 0]", "[1.0, 1.0, 0.8175054704, 0.729792454, 0.7027716994, 0.7027716994, 0.7027716994, 0.7027716994]", "[0, 4, 0, 2, 3, 1, 2, 0]", "[1.0, 1.0, 1.0, 1.0, 0.6536685233, 0.5231417014, 0.5231417014, 0.5231417014]", "[1, 4, 1, 0, 3, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 6.962403E-4]", "[0, 4, 1, 2, 3, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0]", "[1, 4, 1, 2, 3, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createLossMetric(AggregateFunction.RANK)).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "[0.9568965517, 0.9568965517, 0.9568965517, 0.9568965517, 0.9568965517, 0.9568965517, 0.9568965517, 0.9568965517]", "[0, 1, 1, 2, 1, 0, 0, 1]", "[1.0, 1.0, 1.0, 0.5344827586, 0.4381145674, 0.4144562334, 0.4144562334, 0.4144562334]", "[1, 2, 0, 2, 3, 0, 2, 0]", "[1.0, 1.0, 1.0, 1.0, 0.1759102965, 0.0935013262, 0.0935013262, 0.0935013262]", "[1, 4, 1, 1, 3, 2, 2, 0]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.431918656, 0.0]", "[1, 3, 0, 2, 3, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.1948664362, 0.0036472148]", "[1, 4, 1, 2, 3, 2, 2, 0]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0]", "[1, 4, 1, 1, 3, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.431918656]", "[1, 4, 1, 2, 3, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createLossMetric(AggregateFunction.RANK)).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "[0.665274186, 0.665274186, 0.665274186, 0.665274186, 0.665274186, 0.665274186, 0.665274186, 0.665274186]", "[0, 1, 0, 1, 1, 2, 2, 0]", "[1.0, 1.0, 0.5110735362, 0.3079835554, 0.1690628183, 0.1340759896, 0.1340759896, 0.1340759896]", "[1, 4, 1, 0, 3, 2, 0, 0]", "[1.0, 1.0, 1.0, 1.0, 1.0, 0.0257608911, 0.0257608911, 0.0257608911]", "[0, 4, 1, 0, 3, 2, 2, 0]", "[1.0, 1.0, 1.0, 1.0, 1.0, 8.951661E-4, 8.951661E-4, 8.951661E-4]", "[1, 4, 1, 2, 2, 2, 0, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.3676281413, 0.0010277833]", "[0, 4, 0, 1, 3, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 0.4331609309, 0.0, 0.0]", "[1, 2, 1, 2, 3, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0909090909]", "[1, 4, 1, 2, 3, 2, 1, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.2856479771]", "[1, 4, 1, 2, 2, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.3667727604]", "[1, 4, 1, 2, 3, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createLossMetric(AggregateFunction.RANK)).addPrivacyModel(new KAnonymity(5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "[0.5090179696, 0.5090179696, 0.5090179696, 0.5090179696, 0.5090179696, 0.5090179696, 0.5090179696, 0.5090179696]", "[1, 1, 1, 0, 1, 0, 1, 1]", "[1.0, 1.0, 1.0, 0.3444921234, 0.258026656, 0.1193682062, 0.0822889728, 0.0822889728]", "[1, 3, 1, 0, 1, 0, 1, 0]", "[1.0, 1.0, 0.3280807449, 0.2398489235, 0.2391132329, 0.0593130429, 0.0593130429, 0.0593130429]", "[1, 0, 1, 0, 1, 2, 2, 0]", "[1.0, 1.0, 1.0, 1.0, 0.2449218663, 0.0648166567, 0.0648166567, 0.0648166567]", "[0, 2, 1, 1, 1, 1, 1, 1]", "[1.0, 1.0, 0.4441902614, 0.2991180956, 0.287697268, 0.2057865305, 0.1079684853, 0.0187653338]", "[0, 0, 0, 2, 2, 2, 1, 1]", "[1.0, 1.0, 1.0, 0.4042592224, 0.3257599439, 0.0560639214, 0.0560639214, 0.0560639214]", "[1, 2, 1, 0, 3, 0, 1, 1]", "[1.0, 1.0, 1.0, 1.0, 0.3107694639, 0.1227974995, 0.0350772495, 0.0350772495]", "[1, 4, 1, 2, 3, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createLossMetric(AggregateFunction.RANK)).addPrivacyModel(new KAnonymity(5)), "RAMNTALL", "./data/cup.csv", "[0, 0, 0, 0, 0, 0, 0]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]", "[1, 3, 1, 2, 0, 1, 0]", "[1.0, 1.0, 0.8155607556, 0.7900544424, 0.7717769772, 0.7717564351, 0.7717564351]", "[4, 1, 0, 1, 1, 0, 1]", "[1.0, 0.5678688335, 0.4077183524, 0.3165912649, 0.2713447744, 0.2406645544, 0.2406645544]", "[3, 2, 0, 2, 0, 1, 1]", "[1.0, 0.2561838558, 0.133081417, 0.122839341, 0.0559162223, 0.0463895588, 0.0463895588]", "[3, 3, 1, 0, 1, 0, 4]", "[1.0, 1.0, 1.0, 0.6716013399, 0.5976665682, 0.5936066581, 0.5936066581]", "[1, 4, 1, 1, 0, 2, 4]", "[1.0, 1.0, 1.0, 0.4964691603, 0.2630597271, 0.1179842143, 0.1179048249]", "[5, 1, 1, 2, 1, 3, 2]", "[1.0, 1.0, 1.0, 1.0, 0.4423541032, 0.3334909601, 0.0406309274]", "[5, 4, 1, 2, 1, 4, 4]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createLossMetric(AggregateFunction.RANK)).addPrivacyModel(new KAnonymity(5)), "istatenum", "./data/fars.csv", "[0, 0, 0, 0, 0, 0, 0]", "[0.4271773482, 0.4271773482, 0.4271773482, 0.4271773482, 0.4271773482, 0.4271773482, 0.4271773482]", "[1, 2, 0, 0, 0, 2, 1]", "[1.0, 1.0, 0.2640778131, 0.2055385482, 0.1720875397, 0.1720875397, 0.1720875397]", "[0, 0, 2, 1, 1, 0, 2]", "[1.0, 1.0, 0.481537989, 0.2883475583, 0.0653774136, 0.0653774136, 0.0653774136]", "[3, 2, 0, 0, 1, 1, 1]", "[1.0, 1.0, 0.2977005458, 0.2442050311, 0.1686255342, 0.064703726, 0.064703726]", "[0, 2, 1, 2, 0, 1, 2]", "[1.0, 1.0, 0.5152545647, 0.2875501, 0.248361316, 0.0525872573, 0.0525872573]", "[5, 2, 1, 1, 0, 1, 2]", "[1.0, 1.0, 1.0, 0.2421488431, 0.2372804323, 0.2051942529, 7.925735E-4]", "[4, 2, 2, 3, 1, 2, 2]", "[1.0, 1.0, 1.0, 1.0, 1.0, 0.4431713307, 0.3835298605]", "[5, 2, 3, 3, 1, 2, 2]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createLossMetric(AggregateFunction.RANK)).addPrivacyModel(new KAnonymity(5)), "Highest level of school completed", "./data/atus.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "[0.1049377564, 0.1049377564, 0.1049377564, 0.1049377564, 0.1049377564, 0.1049377564, 0.1049377564, 0.1049377564]", "[2, 0, 0, 1, 0, 0, 0, 0]", "[1.0, 0.4663832105, 0.0605893708, 0.0605893708, 0.0605893708, 0.0605893708, 0.0605893708, 0.0605893708]", "[0, 1, 0, 1, 1, 0, 0, 0]", "[0.4621624729, 0.1522278658, 0.0725907876, 0.0536390154, 0.0536390154, 0.0536390154, 0.0536390154, 0.0536390154]", "[0, 0, 1, 1, 1, 2, 0, 0]", "[1.0, 1.0, 0.4662037535, 0.1571136368, 0.0593654555, 0.0593654555, 0.0593654555, 0.0593654555]", "[0, 0, 1, 0, 0, 2, 0, 2]", "[1.0, 1.0, 1.0, 0.0559588912, 0.0559588912, 0.0559588912, 0.0559588912, 0.0559588912]", "[0, 1, 1, 1, 1, 1, 1, 1]", "[1.0, 0.4372318576, 0.3869979397, 0.1178219376, 0.0916104218, 0.0612183891, 0.0337957137, 0.0135798966]", "[2, 3, 0, 2, 1, 2, 2, 2]", "[1.0, 1.0, 1.0, 1.0, 1.0, 0.1063322781, 0.0984749458, 0.0]", "[2, 5, 1, 2, 2, 2, 2, 2]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createLossMetric(AggregateFunction.RANK)).addPrivacyModel(new KAnonymity(5)), "EDUC", "./data/ihis.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "[0.4228188594, 0.4228188594, 0.4228188594, 0.4228188594, 0.4228188594, 0.4228188594, 0.4228188594, 0.4228188594]", "[0, 0, 0, 3, 0, 0, 0, 0]", "[1.0, 0.2376891908, 0.2376891908, 0.2376891908, 0.2376891908, 0.2376891908, 0.2376891908, 0.2376891908]", "[1, 1, 0, 0, 1, 0, 0, 0]", "[0.3735594239, 0.0983052313, 0.0942007886, 0.0603391358, 0.0603391358, 0.0603391358, 0.0603391358, 0.0603391358]", "[4, 0, 0, 1, 0, 0, 0, 0]", "[0.35111862, 0.13719054, 0.0996770852, 0.0996770852, 0.0996770852, 0.0996770852, 0.0996770852, 0.0996770852]", "[0, 1, 2, 1, 0, 0, 1, 0]", "[1.0, 1.0, 0.3812225737, 0.1105074497, 0.0718338606, 0.0718338606, 0.0718338606, 0.0718338606]", "[0, 0, 2, 1, 0, 2, 0, 1]", "[1.0, 1.0, 1.0, 0.0582084, 0.0172609392, 0.0172609392, 0.0172609392, 0.0172609392]", "[3, 0, 1, 0, 2, 2, 0, 1]", "[1.0, 1.0, 0.3341952212, 0.1182913716, 0.0920843926, 0.0012928318, 0.0012928318, 0.0012928318]", "[5, 2, 2, 3, 4, 2, 1, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createLossMetric(AggregateFunction.RANK)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "[0.9260610079, 0.9260610079, 0.9260610079, 0.9260610079, 0.9260610079, 0.9260610079, 0.9260610079, 0.9260610079]", "[0, 4, 0, 2, 1, 0, 0, 1]", "[1.0, 1.0, 1.0, 0.2968611847, 0.1266578249, 0.1266578249, 0.1266578249, 0.1266578249]", "[0, 3, 1, 1, 2, 2, 0, 0]", "[1.0, 1.0, 0.4899425287, 0.4378426171, 0.2811403156, 0.1104111405, 0.1104111405, 0.1104111405]", "[1, 2, 1, 1, 1, 1, 2, 0]", "[1.0, 1.0, 1.0, 0.4808797524, 0.3309598806, 0.2568744473, 0.1611405835, 0.0772546419]", "[1, 3, 0, 2, 2, 0, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 0.422877984, 0.2610454679, 0.0855437665, 0.0855437665]", "[0, 3, 0, 0, 3, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 0.2286257803, 0.0454244031, 0.0454244031, 0.0454244031]", "[1, 3, 1, 0, 2, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 0.3797966401, 0.2077271387, 0.0195623342]", "[1, 4, 1, 2, 3, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createLossMetric(AggregateFunction.RANK)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]", "[0, 2, 1, 1, 0, 1, 1, 0]", "[1.0, 0.9586096374, 0.9322660098, 0.93125, 0.9137931034, 0.9051724137, 0.9051724137, 0.9051724137]", "[0, 3, 1, 0, 3, 0, 0, 1]", "[1.0, 1.0, 1.0, 0.6447230929, 0.5603448275, 0.5603448275, 0.5603448275, 0.5603448275]", "[1, 4, 0, 0, 2, 2, 0, 1]", "[1.0, 1.0, 1.0, 1.0, 0.7070954907, 0.5417771883, 0.5417771883, 0.5417771883]", "[1, 3, 0, 2, 3, 1, 2, 0]", "[1.0, 1.0, 1.0, 1.0, 0.5584134615, 0.5078101974, 0.3909151193, 0.3909151193]", "[1, 4, 1, 2, 2, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.3804597701]", "[0, 4, 1, 2, 3, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0]", "[1, 4, 1, 2, 3, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]") }, /* 130 */{ new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createLossMetric(AggregateFunction.RANK)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "[0.9801405742, 0.9801405742, 0.9801405742, 0.9801405742, 0.9801405742, 0.9801405742, 0.9801405742, 0.9801405742]", "[1, 2, 1, 1, 0, 0, 2, 0]", "[1.0, 1.0, 1.0, 0.7703733174, 0.6082065934, 0.5690272528, 0.5690272528, 0.5690272528]", "[0, 1, 1, 2, 0, 0, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 0.8050075049, 0.7967972946, 0.7967972946, 0.7967972946]", "[0, 2, 0, 2, 1, 0, 2, 1]", "[1.0, 1.0, 1.0, 0.7246402758, 0.7177363449, 0.6895099794, 0.6895099794, 0.6895099794]", "[1, 3, 0, 2, 3, 0, 1, 0]", "[1.0, 1.0, 1.0, 0.6148417592, 0.5642654246, 0.4607784629, 0.4607784629, 0.4607784629]", "[1, 4, 0, 2, 3, 1, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.2774036867, 0.0050062993]", "[1, 4, 1, 1, 2, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.4423391463, 0.3806798841]", "[1, 4, 1, 2, 3, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createLossMetric(AggregateFunction.RANK)).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "[0.9568965517, 0.9568965517, 0.9568965517, 0.9568965517, 0.9568965517, 0.9568965517, 0.9568965517, 0.9568965517]", "[0, 0, 0, 1, 1, 1, 1, 0]", "[0.9084328028, 0.8716369837, 0.8697115384, 0.8622458001, 0.8202917771, 0.8202917771, 0.8202917771, 0.8202917771]", "[0, 0, 0, 1, 0, 1, 2, 0]", "[1.0, 0.9552387267, 0.9300480769, 0.9035145888, 0.9035145888, 0.9035145888, 0.9035145888, 0.9035145888]", "[1, 4, 1, 0, 2, 2, 1, 0]", "[1.0, 1.0, 1.0, 1.0, 0.4005083996, 0.3240810913, 0.0537135278, 0.0537135278]", "[1, 2, 0, 2, 2, 2, 1, 1]", "[1.0, 1.0, 1.0, 1.0, 0.416489832, 0.3399488442, 0.1599348926, 0.0759283819]", "[1, 4, 1, 2, 3, 1, 0, 0]", "[1.0, 1.0, 1.0, 1.0, 1.0, 0.3053547745, 0.0431034482, 0.0431034482]", "[1, 4, 1, 1, 3, 2, 0, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.4349580017, 0.0086206896]", "[1, 4, 1, 2, 3, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createLossMetric(AggregateFunction.RANK)).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "[0.665274186, 0.665274186, 0.665274186, 0.665274186, 0.665274186, 0.665274186, 0.665274186, 0.665274186]", "[1, 0, 1, 0, 0, 0, 0, 0]", "[1.0, 1.0, 0.5243684105, 0.5243684105, 0.5243684105, 0.5243684105, 0.5243684105, 0.5243684105]", "[1, 1, 0, 0, 0, 2, 2, 0]", "[1.0, 1.0, 1.0, 0.2377190109, 0.2056229692, 0.2056229692, 0.2056229692, 0.2056229692]", "[1, 2, 1, 1, 1, 0, 2, 0]", "[1.0, 1.0, 1.0, 0.5086256437, 0.2996684569, 0.2049900235, 0.1254890259, 0.1254890259]", "[0, 3, 0, 0, 1, 1, 2, 1]", "[1.0, 1.0, 0.3623085339, 0.2966735185, 0.2898415894, 0.1211789669, 0.1211789669, 0.1211789669]", "[1, 1, 0, 1, 3, 2, 1, 0]", "[1.0, 1.0, 1.0, 0.4476604115, 0.3038544242, 0.0647741254, 0.0253961938, 0.0253961938]", "[1, 4, 0, 1, 2, 0, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 0.4496220409, 0.3849634197, 0.0276506862, 0.0276506862]", "[1, 4, 1, 2, 3, 2, 2, 1]", "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createPrecisionMetric(false)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.7566312997347479", "[1, 3, 0, 1, 3, 1, 0, 0]", "0.4986944628647215", "[1, 3, 0, 1, 3, 1, 1, 1]", "0.6640003315649867", "[0, 4, 1, 0, 3, 2, 2, 1]", "0.7501657824933687", "[1, 4, 1, 2, 3, 2, 0, 1]", "0.875", "[1, 4, 1, 1, 3, 2, 1, 1]", "0.875", "[1, 4, 1, 2, 1, 2, 2, 1]", "0.9166666666666666", "[1, 4, 1, 0, 3, 2, 2, 1]", "0.875", "[1, 3, 1, 2, 3, 2, 2, 1]", "0.96875", "[1, 4, 1, 2, 3, 2, 2, 1]", "1.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createPrecisionMetric(false)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.9260610079575596", "[1, 2, 1, 1, 2, 1, 0, 1]", "0.6841152740937223", "[0, 0, 1, 2, 3, 2, 2, 1]", "0.7560510610079576", "[0, 4, 1, 1, 1, 2, 2, 1]", "0.7295258620689655", "[0, 4, 0, 2, 3, 1, 2, 1]", "0.690090351458886", "[0, 2, 1, 2, 3, 2, 2, 1]", "0.8125", "[1, 4, 1, 1, 3, 2, 2, 0]", "0.8125", "[0, 4, 1, 2, 3, 2, 2, 0]", "0.75", "[0, 4, 1, 2, 3, 2, 2, 1]", "0.875", "[1, 4, 1, 2, 3, 2, 2, 1]", "1.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createPrecisionMetric(false)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "1.0", "[0, 3, 1, 1, 2, 0, 1, 0]", "0.8833651083112289", "[1, 3, 0, 2, 1, 0, 2, 1]", "0.7682671584880636", "[1, 4, 1, 2, 3, 2, 0, 1]", "0.8969247347480106", "[1, 4, 1, 1, 3, 2, 2, 1]", "0.9375", "[0, 4, 1, 2, 3, 2, 2, 1]", "0.875", "[1, 4, 1, 2, 3, 2, 2, 1]", "1.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createPrecisionMetric(false)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.9801405742324779", "[0, 3, 1, 1, 0, 0, 2, 1]", "0.8704651133877064", "[0, 1, 1, 2, 2, 1, 1, 1]", "0.9181299455164336", "[1, 4, 1, 0, 3, 2, 2, 1]", "0.875087030037796", "[1, 4, 1, 2, 3, 1, 2, 1]", "0.9376471222067502", "[0, 4, 1, 2, 3, 2, 2, 1]", "0.875", "[1, 4, 1, 2, 3, 2, 2, 1]", "1.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createPrecisionMetric(false)).addPrivacyModel(new KAnonymity(5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.5090179696306611", "[0, 0, 0, 2, 1, 2, 0, 0]", "0.45063186570298164", "[1, 0, 0, 1, 2, 1, 2, 1]", "0.6099534734655084", "[0, 0, 1, 2, 3, 2, 2, 1]", "0.75018234865062", "[0, 4, 1, 1, 1, 2, 2, 1]", "0.7291666666666667", "[1, 4, 1, 2, 2, 2, 1, 0]", "0.7708713226355458", "[1, 4, 1, 0, 3, 2, 2, 0]", "0.75", "[1, 1, 1, 2, 3, 2, 2, 1]", "0.90625", "[1, 4, 1, 2, 3, 2, 0, 1]", "0.875", "[1, 4, 1, 2, 3, 2, 2, 1]", "1.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createPrecisionMetric(false)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "1.0", "[0, 2, 1, 2, 1, 0, 1, 0]", "0.9096761715296199", "[0, 4, 1, 1, 0, 1, 1, 1]", "0.9122388925729443", "[0, 3, 1, 2, 0, 2, 2, 1]", "0.8949042606100795", "[1, 4, 1, 0, 3, 2, 0, 1]", "0.8099303713527851", "[0, 4, 1, 2, 3, 2, 2, 1]", "0.875", "[1, 4, 1, 2, 3, 2, 2, 1]", "1.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createPrecisionMetric(false)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.9801405742324779", "[0, 1, 0, 0, 3, 2, 2, 0]", "0.7387161411710098", "[0, 4, 0, 0, 3, 0, 1, 1]", "0.6548761686890789", "[0, 4, 1, 1, 3, 2, 2, 1]", "0.8125", "[1, 4, 1, 2, 2, 2, 2, 1]", "0.9590019450522733", "[1, 4, 0, 2, 3, 2, 2, 1]", "0.875", "[1, 3, 1, 2, 3, 2, 2, 1]", "0.9708200716132882", "[1, 4, 1, 2, 3, 2, 2, 1]", "1.0") }, /* 140 */{ new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createPrecisionMetric(false)).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.9568965517241379", "[1, 4, 1, 0, 2, 1, 1, 0]", "0.6196673297966402", "[1, 4, 1, 1, 1, 0, 2, 0]", "0.6596830791335102", "[1, 4, 1, 0, 3, 2, 1, 0]", "0.6975505636604775", "[0, 4, 0, 2, 3, 1, 2, 0]", "0.5765707891246685", "[0, 4, 1, 2, 3, 2, 2, 0]", "0.75", "[1, 4, 0, 1, 3, 2, 2, 1]", "0.8125", "[1, 4, 1, 2, 3, 2, 2, 0]", "0.875", "[1, 4, 1, 1, 3, 2, 2, 1]", "0.9375", "[1, 4, 1, 2, 3, 2, 2, 1]", "1.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createPrecisionMetric(false)).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.6652741860619322", "[0, 0, 1, 1, 2, 1, 0, 1]", "0.6121665229980329", "[0, 3, 0, 1, 0, 2, 0, 1]", "0.5515279988064452", "[1, 2, 0, 2, 2, 2, 2, 0]", "0.6502483809650111", "[1, 1, 1, 1, 3, 2, 2, 1]", "0.84375", "[0, 4, 1, 2, 2, 2, 2, 0]", "0.7168526070331322", "[0, 4, 1, 1, 3, 2, 2, 0]", "0.6875", "[1, 4, 1, 2, 3, 2, 2, 0]", "0.875", "[1, 3, 1, 2, 3, 2, 2, 1]", "0.96875", "[1, 4, 1, 2, 3, 2, 2, 1]", "1.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createPrecisionMetric(false)).addPrivacyModel(new KAnonymity(5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.5090179696306611", "[0, 1, 0, 0, 0, 0, 1, 0]", "0.30136844373715277", "[1, 0, 0, 1, 2, 0, 0, 0]", "0.4293488771743695", "[0, 1, 0, 0, 3, 0, 0, 0]", "0.27206211458126117", "[0, 3, 0, 0, 0, 2, 1, 0]", "0.34258752735229764", "[0, 4, 0, 2, 1, 0, 0, 0]", "0.3254370841898194", "[0, 4, 0, 1, 1, 1, 0, 0]", "0.31510399398802025", "[1, 4, 0, 2, 1, 0, 1, 0]", "0.4917894757200008", "[0, 4, 1, 1, 3, 1, 0, 1]", "0.6261686890789736", "[1, 4, 1, 2, 3, 2, 2, 1]", "1.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createPrecisionMetric(false)).addPrivacyModel(new KAnonymity(5)), "RAMNTALL", "./data/cup.csv", "[0, 0, 0, 0, 0, 0, 0]", "0.9999999999999998", "[0, 4, 0, 0, 1, 1, 0]", "0.999475890985325", "[0, 1, 1, 0, 0, 2, 2]", "0.9995400675993668", "[5, 0, 0, 0, 1, 1, 1]", "0.3854042113369678", "[1, 2, 0, 1, 0, 2, 2]", "0.8729438150632646", "[0, 3, 0, 0, 0, 2, 3]", "0.9968249464631931", "[5, 4, 0, 0, 0, 1, 2]", "0.4076718075512231", "[4, 1, 0, 2, 1, 4, 1]", "0.6171797418073485", "[3, 4, 0, 0, 0, 3, 3]", "0.4522890784913767", "[5, 4, 1, 2, 1, 4, 4]", "0.9999999999999998") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createPrecisionMetric(false)).addPrivacyModel(new KAnonymity(5)), "istatenum", "./data/fars.csv", "[0, 0, 0, 0, 0, 0, 0]", "0.4271773482469264", "[1, 0, 1, 0, 0, 0, 0]", "0.25870639724826006", "[0, 0, 0, 0, 0, 2, 0]", "0.5027761305142245", "[3, 0, 1, 0, 0, 0, 0]", "0.20897787728979464", "[2, 0, 0, 2, 0, 0, 0]", "0.19319283079450308", "[4, 0, 1, 0, 0, 0, 0]", "0.21082693259397545", "[4, 0, 0, 1, 0, 0, 0]", "0.19111525010650207", "[1, 2, 2, 1, 0, 0, 2]", "0.4655381928473064", "[5, 1, 1, 3, 1, 2, 1]", "0.7619141973045893", "[5, 2, 3, 3, 1, 2, 2]", "0.9999999999999998") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createPrecisionMetric(false)).addPrivacyModel(new KAnonymity(5)), "Highest level of school completed", "./data/atus.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.10493775648906913", "[1, 0, 0, 0, 0, 0, 0, 0]", "0.14170853013335116", "[0, 0, 0, 0, 0, 0, 0, 1]", "0.15372689164455272", "[0, 0, 0, 1, 0, 0, 0, 1]", "0.20063170719495305", "[0, 0, 0, 0, 0, 0, 0, 2]", "0.19309790580673636", "[1, 2, 0, 0, 0, 0, 0, 0]", "0.1551047003910966", "[0, 3, 0, 0, 1, 0, 0, 0]", "0.17668935082419565", "[1, 4, 0, 0, 0, 0, 1, 2]", "0.3551529615968757", "[0, 2, 0, 1, 2, 1, 2, 1]", "0.4879837478882825", "[2, 5, 1, 2, 2, 2, 2, 2]", "1.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createPrecisionMetric(false)).addPrivacyModel(new KAnonymity(5)), "EDUC", "./data/ihis.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.42281885942569103", "[1, 0, 1, 0, 0, 0, 0, 0]", "0.2251765599444996", "[0, 0, 0, 2, 0, 0, 0, 0]", "0.3262034870990518", "[0, 0, 1, 1, 1, 0, 0, 0]", "0.2200354394148099", "[1, 0, 0, 0, 1, 0, 0, 1]", "0.20622333481915434", "[1, 0, 0, 0, 2, 1, 0, 0]", "0.18861415629943426", "[5, 1, 0, 0, 0, 0, 0, 0]", "0.2650919582171488", "[3, 0, 1, 1, 3, 2, 1, 0]", "0.5238516429354237", "[4, 2, 2, 0, 1, 2, 0, 1]", "0.631319207979194", "[5, 2, 2, 3, 4, 2, 1, 1]", "1.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createPrecisionMetric(false)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.9260610079575596", "[1, 3, 0, 0, 0, 0, 0, 0]", "0.5415077917771882", "[1, 4, 0, 0, 1, 0, 0, 0]", "0.43046805923961107", "[0, 2, 0, 1, 1, 2, 0, 1]", "0.5901580459770115", "[0, 3, 0, 1, 3, 2, 0, 0]", "0.47771261604774534", "[0, 4, 0, 0, 3, 2, 2, 0]", "0.5182360742705571", "[0, 4, 0, 2, 3, 1, 2, 0]", "0.5727992374005305", "[1, 4, 1, 2, 3, 2, 2, 1]", "1.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createPrecisionMetric(false)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "1.0", "[1, 1, 0, 0, 0, 0, 0, 0]", "0.9353759118037137", "[1, 0, 0, 0, 2, 1, 2, 0]", "0.9645432692307693", "[1, 4, 0, 1, 2, 0, 2, 1]", "0.7811118479221927", "[0, 4, 0, 2, 2, 2, 2, 0]", "0.7517407161803713", "[1, 4, 0, 1, 3, 2, 2, 1]", "0.8176599801061009", "[1, 4, 0, 2, 3, 2, 2, 1]", "0.8769479442970822", "[1, 4, 1, 2, 3, 2, 2, 1]", "1.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createPrecisionMetric(false)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.9801405742324779", "[1, 1, 0, 2, 1, 0, 1, 0]", "0.7172818861481335", "[1, 2, 1, 0, 1, 0, 0, 1]", "0.8463505404150917", "[0, 2, 1, 1, 2, 1, 0, 0]", "0.8721238644652213", "[1, 2, 1, 0, 1, 1, 0, 1]", "0.8264192803306589", "[0, 4, 0, 2, 3, 2, 2, 1]", "0.7623168224918773", "[1, 4, 0, 2, 3, 2, 2, 1]", "0.875", "[1, 4, 1, 2, 3, 2, 2, 1]", "1.0") }, /* 150 */{ new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createPrecisionMetric(false)).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.9568965517241379", "[0, 0, 1, 0, 3, 2, 0, 0]", "0.7882128647214854", "[1, 3, 1, 1, 1, 1, 1, 0]", "0.6533488063660478", "[0, 0, 1, 1, 3, 2, 2, 0]", "0.6860908488063662", "[0, 3, 0, 1, 3, 0, 1, 1]", "0.5552366545092838", "[0, 4, 0, 2, 3, 2, 1, 0]", "0.5826632957559681", "[0, 4, 0, 1, 3, 2, 2, 0]", "0.583098474801061", "[1, 4, 1, 2, 3, 2, 2, 1]", "1.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createPrecisionMetric(false)).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.6652741860619322", "[0, 1, 1, 1, 0, 0, 0, 1]", "0.566024716530734", "[0, 0, 1, 0, 3, 0, 0, 1]", "0.5379741064916119", "[0, 3, 0, 1, 1, 0, 1, 0]", "0.40084481300974734", "[0, 4, 0, 0, 1, 1, 2, 0]", "0.41885277833034945", "[0, 4, 0, 0, 3, 0, 2, 0]", "0.4049631987268748", "[1, 4, 1, 2, 3, 2, 2, 1]", "1.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createPrecisionMetric(true)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.0", "[0, 4, 0, 0, 0, 2, 2, 1]", "0.5", "[1, 1, 0, 1, 3, 2, 2, 1]", "0.71875", "[1, 4, 1, 2, 2, 2, 0, 0]", "0.7083333333333334", "[0, 4, 1, 2, 0, 2, 2, 1]", "0.75", "[1, 4, 1, 2, 3, 2, 1, 0]", "0.8125", "[1, 4, 1, 2, 3, 2, 0, 1]", "0.875", "[0, 4, 1, 2, 2, 2, 2, 1]", "0.8333333333333333", "[1, 4, 1, 2, 3, 2, 2, 1]", "1.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createPrecisionMetric(true)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.0", "[1, 0, 1, 1, 3, 0, 1, 0]", "0.5", "[1, 4, 1, 1, 3, 1, 0, 0]", "0.625", "[0, 4, 1, 1, 1, 2, 2, 1]", "0.7291666666666667", "[0, 4, 1, 2, 2, 2, 2, 0]", "0.7083333333333333", "[0, 4, 1, 1, 3, 2, 2, 1]", "0.8125", "[0, 3, 1, 2, 3, 2, 2, 1]", "0.84375", "[1, 4, 1, 1, 3, 2, 2, 1]", "0.9375", "[1, 4, 1, 2, 3, 2, 2, 1]", "1.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createPrecisionMetric(true)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.0", "[0, 0, 1, 0, 0, 0, 1, 0]", "0.1875", "[1, 0, 0, 2, 0, 2, 1, 1]", "0.5625", "[1, 4, 1, 2, 3, 2, 2, 0]", "0.875", "[1, 4, 1, 2, 3, 1, 2, 1]", "0.9375", "[1, 4, 1, 1, 3, 2, 2, 1]", "0.9375", "[1, 4, 1, 2, 3, 2, 2, 1]", "1.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createPrecisionMetric(true)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.0", "[0, 1, 0, 1, 0, 0, 1, 1]", "0.28125", "[0, 1, 1, 0, 0, 2, 1, 0]", "0.34375", "[0, 4, 1, 2, 3, 0, 2, 0]", "0.625", "[1, 4, 1, 1, 3, 2, 2, 1]", "0.9375", "[1, 4, 0, 2, 3, 2, 2, 1]", "0.875", "[1, 3, 1, 2, 3, 2, 2, 1]", "0.96875", "[1, 4, 1, 2, 3, 2, 2, 1]", "1.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createPrecisionMetric(true)).addPrivacyModel(new KAnonymity(5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.0", "[0, 4, 1, 1, 1, 1, 0, 1]", "0.5416666666666667", "[1, 3, 1, 0, 1, 2, 2, 0]", "0.6354166666666667", "[0, 4, 1, 0, 2, 2, 2, 1]", "0.7083333333333333", "[0, 4, 1, 2, 3, 2, 1, 0]", "0.6875", "[0, 4, 1, 1, 3, 2, 2, 0]", "0.6875", "[1, 4, 1, 2, 2, 2, 0, 1]", "0.8333333333333334", "[1, 4, 0, 2, 2, 2, 2, 1]", "0.8333333333333333", "[1, 4, 1, 2, 3, 2, 2, 1]", "1.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createPrecisionMetric(true)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.0", "[0, 2, 0, 1, 0, 1, 1, 1]", "0.375", "[0, 1, 1, 0, 1, 2, 1, 1]", "0.5104166666666666", "[0, 4, 0, 0, 3, 0, 1, 0]", "0.3125", "[0, 4, 1, 2, 2, 2, 2, 1]", "0.8333333333333333", "[1, 4, 1, 1, 3, 2, 2, 1]", "0.9375", "[0, 4, 1, 2, 3, 2, 2, 1]", "0.875", "[1, 4, 1, 2, 3, 2, 2, 1]", "1.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createPrecisionMetric(true)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.0", "[1, 0, 0, 0, 1, 2, 1, 0]", "0.35416666666666663", "[0, 1, 0, 2, 1, 0, 1, 1]", "0.38541666666666663", "[0, 4, 1, 1, 2, 2, 2, 1]", "0.7708333333333333", "[1, 4, 1, 2, 3, 2, 0, 1]", "0.875", "[0, 4, 1, 1, 3, 2, 2, 1]", "0.8125", "[1, 4, 0, 2, 3, 2, 2, 1]", "0.875", "[1, 4, 1, 2, 3, 2, 2, 1]", "1.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createPrecisionMetric(true)).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.0", "[1, 0, 0, 0, 0, 2, 0, 0]", "0.25", "[0, 4, 0, 0, 3, 0, 1, 0]", "0.3125", "[0, 3, 0, 2, 3, 1, 0, 1]", "0.53125", "[0, 4, 1, 2, 3, 0, 2, 0]", "0.625", "[1, 4, 1, 1, 2, 2, 2, 1]", "0.8958333333333334", "[1, 4, 1, 2, 3, 2, 2, 0]", "0.875", "[1, 4, 1, 1, 3, 2, 2, 1]", "0.9375", "[0, 4, 1, 2, 3, 2, 2, 1]", "0.875", "[1, 4, 1, 2, 3, 2, 2, 1]", "1.0") }, /* 160 */{ new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.0d, Metric.createPrecisionMetric(true)).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.0", "[1, 2, 1, 0, 0, 0, 1, 0]", "0.375", "[0, 2, 0, 1, 0, 2, 1, 0]", "0.3125", "[0, 4, 0, 2, 3, 1, 2, 0]", "0.5625", "[0, 4, 1, 2, 2, 1, 2, 1]", "0.7708333333333333", "[1, 2, 1, 1, 3, 2, 2, 1]", "0.875", "[1, 4, 1, 0, 3, 2, 2, 1]", "0.875", "[1, 4, 1, 2, 3, 1, 2, 1]", "0.9375", "[1, 3, 1, 2, 3, 2, 2, 1]", "0.96875", "[1, 4, 1, 2, 3, 2, 2, 1]", "1.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createPrecisionMetric(true)).addPrivacyModel(new KAnonymity(5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.0", "[0, 0, 1, 0, 0, 1, 2, 0]", "0.3125", "[1, 1, 1, 0, 0, 0, 2, 0]", "0.40625", "[1, 0, 0, 1, 3, 2, 1, 0]", "0.5", "[1, 3, 0, 0, 2, 0, 2, 0]", "0.4270833333333333", "[0, 2, 1, 1, 1, 2, 0, 1]", "0.5416666666666667", "[0, 2, 1, 1, 1, 0, 2, 1]", "0.5416666666666667", "[0, 2, 0, 2, 2, 1, 2, 0]", "0.4583333333333333", "[0, 4, 0, 0, 1, 1, 2, 1]", "0.47916666666666663", "[1, 4, 1, 2, 3, 2, 2, 1]", "1.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createPrecisionMetric(true)).addPrivacyModel(new KAnonymity(5)), "RAMNTALL", "./data/cup.csv", "[0, 0, 0, 0, 0, 0, 0]", "0.0", "[2, 2, 0, 0, 1, 1, 1]", "0.3428571428571428", "[4, 0, 0, 2, 1, 1, 0]", "0.43571428571428567", "[5, 1, 0, 1, 1, 1, 0]", "0.4285714285714285", "[0, 2, 1, 1, 1, 1, 3]", "0.5714285714285714", "[5, 0, 1, 2, 0, 1, 1]", "0.49999999999999994", "[4, 0, 1, 2, 0, 4, 1]", "0.5785714285714285", "[5, 2, 1, 1, 0, 1, 4]", "0.607142857142857", "[3, 3, 1, 2, 1, 1, 4]", "0.8", "[5, 4, 1, 2, 1, 4, 4]", "0.9999999999999998") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createPrecisionMetric(true)).addPrivacyModel(new KAnonymity(5)), "istatenum", "./data/fars.csv", "[0, 0, 0, 0, 0, 0, 0]", "0.0", "[1, 0, 0, 1, 1, 2, 0]", "0.3619047619047619", "[1, 0, 2, 0, 1, 0, 2]", "0.4095238095238095", "[2, 1, 2, 0, 0, 1, 1]", "0.3666666666666666", "[2, 1, 2, 0, 0, 0, 2]", "0.36666666666666664", "[2, 1, 0, 1, 0, 1, 2]", "0.3904761904761904", "[2, 1, 2, 0, 1, 2, 0]", "0.5095238095238095", "[2, 2, 1, 0, 0, 2, 1]", "0.46190476190476193", "[3, 1, 3, 2, 0, 0, 1]", "0.4666666666666667", "[5, 2, 3, 3, 1, 2, 2]", "0.9999999999999998") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createPrecisionMetric(true)).addPrivacyModel(new KAnonymity(5)), "Highest level of school completed", "./data/atus.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.0", "[0, 0, 1, 0, 0, 0, 1, 0]", "0.1875", "[0, 3, 0, 0, 0, 0, 0, 0]", "0.075", "[0, 0, 0, 0, 2, 0, 1, 0]", "0.1875", "[0, 2, 0, 1, 1, 1, 1, 0]", "0.3", "[1, 0, 0, 1, 1, 2, 0, 1]", "0.375", "[0, 1, 0, 0, 2, 2, 0, 1]", "0.3375", "[1, 1, 0, 0, 2, 2, 0, 1]", "0.4", "[2, 2, 1, 2, 2, 1, 2, 1]", "0.8", "[2, 5, 1, 2, 2, 2, 2, 2]", "1.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createPrecisionMetric(true)).addPrivacyModel(new KAnonymity(5)), "EDUC", "./data/ihis.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.0", "[1, 0, 1, 1, 0, 0, 1, 0]", "0.25416666666666665", "[0, 0, 0, 3, 2, 0, 0, 0]", "0.1875", "[0, 0, 0, 3, 0, 1, 1, 0]", "0.3125", "[0, 1, 1, 2, 0, 0, 0, 1]", "0.3333333333333333", "[2, 0, 0, 1, 1, 0, 0, 1]", "0.24791666666666667", "[3, 0, 1, 1, 0, 1, 0, 0]", "0.24166666666666667", "[0, 1, 2, 1, 0, 1, 0, 1]", "0.41666666666666663", "[2, 1, 2, 3, 2, 2, 1, 0]", "0.675", "[5, 2, 2, 3, 4, 2, 1, 1]", "1.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createPrecisionMetric(true)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.0", "[1, 1, 1, 0, 0, 1, 0, 0]", "0.34375", "[1, 0, 0, 2, 0, 0, 0, 1]", "0.375", "[0, 0, 1, 1, 2, 0, 0, 1]", "0.3958333333333333", "[1, 1, 0, 0, 2, 0, 1, 1]", "0.4270833333333333", "[0, 4, 0, 1, 3, 1, 1, 0]", "0.4375", "[0, 4, 0, 2, 3, 1, 2, 0]", "0.5625", "[1, 4, 1, 2, 3, 2, 2, 1]", "1.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createPrecisionMetric(true)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.0", "[1, 0, 1, 2, 2, 0, 1, 0]", "0.5208333333333333", "[1, 1, 1, 2, 3, 0, 0, 1]", "0.65625", "[1, 1, 1, 0, 3, 2, 2, 0]", "0.65625", "[0, 1, 1, 2, 3, 2, 1, 1]", "0.71875", "[1, 4, 0, 2, 3, 1, 2, 1]", "0.8125", "[1, 4, 0, 2, 3, 2, 2, 1]", "0.875", "[1, 4, 1, 2, 3, 2, 2, 1]", "1.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createPrecisionMetric(true)).addPrivacyModel(new KAnonymity(5)).addPrivacyModel(new HierarchicalDistanceTCloseness("occupation", 0.2, Hierarchy.create("./data/adult_hierarchy_occupation.csv", StandardCharsets.UTF_8, ';'))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.0", "[1, 1, 0, 1, 0, 0, 2, 0]", "0.34375", "[1, 1, 1, 1, 0, 0, 0, 1]", "0.46875", "[0, 4, 0, 0, 2, 1, 0, 1]", "0.3958333333333333", "[1, 4, 1, 0, 1, 1, 0, 1]", "0.6041666666666667", "[0, 4, 0, 2, 3, 2, 2, 1]", "0.75", "[1, 4, 0, 2, 3, 2, 2, 1]", "0.875", "[1, 4, 1, 2, 3, 2, 2, 1]", "1.0") }, { new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createPrecisionMetric(true)).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)).addPrivacyModel(new DPresence(0.05, 0.15, DataSubset.create(Data.create("./data/adult.csv", StandardCharsets.UTF_8, ';'), Data.create("./data/adult_subset.csv", StandardCharsets.UTF_8, ';')))), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.0", "[1, 2, 0, 1, 0, 1, 1, 0]", "0.375", "[1, 0, 0, 1, 2, 0, 2, 0]", "0.3958333333333333", "[1, 3, 1, 0, 0, 0, 1, 1]", "0.53125", "[0, 2, 1, 0, 3, 1, 2, 0]", "0.5", "[0, 4, 0, 2, 3, 1, 2, 0]", "0.5625", "[1, 4, 1, 2, 3, 2, 2, 1]", "1.0") }, /* 170 */{ new ARXUtilityMetricsTestCase(ARXConfiguration.create(0.05d, Metric.createPrecisionMetric(true)).addPrivacyModel(new RecursiveCLDiversity("occupation", 4.0, 5)), "occupation", "./data/adult.csv", "[0, 0, 0, 0, 0, 0, 0, 0]", "0.0", "[0, 0, 0, 0, 0, 0, 2, 0]", "0.125", "[0, 1, 0, 0, 0, 0, 0, 1]", "0.15625", "[0, 2, 0, 0, 0, 2, 0, 1]", "0.3125", "[1, 4, 0, 0, 1, 0, 0, 0]", "0.2916666666666667", "[0, 4, 0, 0, 3, 0, 2, 0]", "0.375", "[1, 4, 1, 2, 3, 2, 2, 1]", "1.0") }, }); } /** * Creates a new instance * @param testCase */ public TestUtilityMetrics(final ARXUtilityMetricsTestCase testCase) { super(testCase); } }