public static double getColumnWidth(String expressionIdentifierName) {
        ExpressionIdentifier.NAME expressionName = ExpressionIdentifier.NAME.Other;
        try {
            expressionName = ExpressionIdentifier.NAME.valueOf(expressionIdentifierName);
        } catch (IllegalArgumentException e) {
            // ColumnId not recognized
        }
        switch (expressionName) {
            case Index:
                return 70;
            case Description:
                return 300;
            default:
                return 114;
        }
    }
@Test
    public void migrateIfNecessary_1_6_to_1_7() throws Exception {
        String toMigrate = getFileContent("scesim-1-6-rule.scesim");
        Document document = DOMParserUtil.getDocument(toMigrate);
        
        migrationInstance.from1_6to1_7().accept(document);
        
        List<Node> factMappingsNodes = getNestedChildrenNodesList(document, SIMULATION_NODE, SIMULATION_DESCRIPTOR_NODE, FACT_MAPPINGS_NODE);
        assertThat(factMappingsNodes).isNotNull().hasSize(1);
        
        List<Node> factMappingNodes = getChildrenNodesList(factMappingsNodes.get(0), FACT_MAPPING_NODE);
        for (Node factMappingNode : factMappingNodes) {
            List<Node> expressionIdentifierNamesNodes = getNestedChildrenNodesList(factMappingNode, "expressionIdentifier", "name");
            String expressionIdentifierName = expressionIdentifierNamesNodes.get(0).getTextContent();
            assertThat(expressionIdentifierName).isNotNull();
            
            List<Node> columnWidthNodes = getChildrenNodesList(factMappingNode, "columnWidth");
            assertThat(columnWidthNodes).hasSize(1);
            
            String columnWidth = columnWidthNodes.get(0).getTextContent();
            assertThat(columnWidth).isNotNull().isNotEmpty();
            
            double columnWidthDouble = Double.parseDouble(columnWidth);
            assertThat(columnWidthDouble).isCloseTo(getColumnWidth(expressionIdentifierName), within(0.0));
        }
        commonCheck(toMigrate, document, "1.7");
        
        toMigrate = getFileContent("scesim-1-6-dmn.scesim");
        document = DOMParserUtil.getDocument(toMigrate);
        
        migrationInstance.from1_6to1_7().accept(document);
        
        factMappingsNodes = getNestedChildrenNodesList(document, SIMULATION_NODE, SIMULATION_DESCRIPTOR_NODE, FACT_MAPPINGS_NODE);
        assertThat(factMappingsNodes).isNotNull().hasSize(1);
        
        factMappingNodes = getChildrenNodesList(factMappingsNodes.get(0), FACT_MAPPING_NODE);
        for (Node factMappingNode : factMappingNodes) {
            List<Node> expressionIdentifierNamesNodes = getNestedChildrenNodesList(factMappingNode, "expressionIdentifier", "name");
            String expressionIdentifierName = expressionIdentifierNamesNodes.get(0).getTextContent();
            assertThat(expressionIdentifierName).isNotNull();
            
            List<Node> columnWidthNodes = getChildrenNodesList(factMappingNode, "columnWidth");
            assertThat(columnWidthNodes).hasSize(1);
            
            String columnWidth = columnWidthNodes.get(0).getTextContent();
            assertThat(columnWidth).isNotNull().isNotEmpty();
            double columnWidthDouble = Double.parseDouble(columnWidth);
            assertThat(columnWidthDouble).isCloseTo(getColumnWidth(expressionIdentifierName), within(0.0));
        }
        commonCheck(toMigrate, document, "1.7");
    }