<?xml version="1.0"?>
<!-- 

    Copyright (C) 2006 W3C (R) (MIT ERCIM Keio), All Rights Reserved.
    W3C liability, trademark and document use rules apply.

    http://www.w3.org/Consortium/Legal/ipr-notice
    http://www.w3.org/Consortium/Legal/copyright-documents

    $Id: collapse.xsl,v 1.1 2007/05/08 00:00:19 pdowney Exp $

-->

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:p="http://www.w3.org/2002/ws/databinding/patterns/6/09/" 
    version="1.0">

   <xsl:output method="xml" indent="yes" encoding="UTF-8"/>

   <xsl:template match="/">
   <xsl:variable name="root" select="."/>
    <report>
	<xsl:for-each select="document('../patterns/patterns.xml')//p:pattern/@xml:id">
	   <xsl:variable name="pattern" select="."/>
	   <xsl:variable name="results" select="$root/report/results[@pattern=$pattern]"/>

	   <results pattern="{$pattern}">
		<xsl:for-each select="document('toolkits.xml')//toolkit/@id">

		    <xsl:variable name="toolkit" select="."/>
		    <xsl:variable name="result" select="$results/result[@toolkit=$toolkit]"/>

		    <xsl:variable name="status">
			<xsl:choose>
			    <xsl:when test="$results/result[@toolkit=$toolkit and @result = 'failed']">failed</xsl:when>
			    <xsl:when test="count($results) = count($results/result[@toolkit=$toolkit and @result = 'passed'])">passed</xsl:when>
			    <xsl:when test="count($results) = count($results/result[@toolkit=$toolkit])">failed</xsl:when>
			    <xsl:when test="count($results) != count($results/result[@toolkit=$toolkit])">skipped</xsl:when>
			    <xsl:otherwise>error</xsl:otherwise>
			</xsl:choose>
		    </xsl:variable>

		    <result toolkit="{$toolkit}" result="{$status}"/>

		</xsl:for-each>
	   </results>
	</xsl:for-each>
    </report>
   </xsl:template>

</xsl:stylesheet>

