Running: ./testmodel.py --libraries=/home/hudson/saved_omc/libraries/.openmodelica/libraries --ompython_omhome=/usr PNlib_PNlib.Examples.DisTest.TEnoInput.conf.json loadFile("/home/hudson/saved_omc/libraries/.openmodelica/libraries/ModelicaServices 4.0.0+maint.om/package.mo", uses=false) loadFile("/home/hudson/saved_omc/libraries/.openmodelica/libraries/Complex 4.0.0+maint.om/package.mo", uses=false) loadFile("/home/hudson/saved_omc/libraries/.openmodelica/libraries/Modelica 4.0.0+maint.om/package.mo", uses=false) loadFile("/home/hudson/saved_omc/libraries/.openmodelica/libraries/PNlib 3.0.0-master/package.mo", uses=false) Using package PNlib with version 3.0.0 (/home/hudson/saved_omc/libraries/.openmodelica/libraries/PNlib 3.0.0-master/package.mo) Using package Modelica with version 4.0.0 (/home/hudson/saved_omc/libraries/.openmodelica/libraries/Modelica 4.0.0+maint.om/package.mo) Using package Complex with version 4.0.0 (/home/hudson/saved_omc/libraries/.openmodelica/libraries/Complex 4.0.0+maint.om/package.mo) Using package ModelicaServices with version 4.0.0 (/home/hudson/saved_omc/libraries/.openmodelica/libraries/ModelicaServices 4.0.0+maint.om/package.mo) Running command: translateModel(PNlib.Examples.DisTest.TEnoInput,tolerance=1e-06,outputFormat="mat",numberOfIntervals=5000,variableFilter="P1.t|T2.active|T2.fire|time",fileNamePrefix="PNlib_PNlib.Examples.DisTest.TEnoInput") translateModel(PNlib.Examples.DisTest.TEnoInput,tolerance=1e-06,outputFormat="mat",numberOfIntervals=5000,variableFilter="P1.t|T2.active|T2.fire|time",fileNamePrefix="PNlib_PNlib.Examples.DisTest.TEnoInput") Notification: Performance of loadFile(/home/hudson/saved_omc/libraries/.openmodelica/libraries/ModelicaServices 4.0.0+maint.om/package.mo): time 0.001382/0.001382, allocations: 110.1 kB / 16.42 MB, free: 6.453 MB / 14.72 MB Notification: Performance of loadFile(/home/hudson/saved_omc/libraries/.openmodelica/libraries/Complex 4.0.0+maint.om/package.mo): time 0.001221/0.001221, allocations: 187.9 kB / 17.35 MB, free: 5.715 MB / 14.72 MB Notification: Performance of loadFile(/home/hudson/saved_omc/libraries/.openmodelica/libraries/Modelica 4.0.0+maint.om/package.mo): time 1.317/1.317, allocations: 222.9 MB / 241 MB, free: 15.15 MB / 206.1 MB Notification: Performance of loadFile(/home/hudson/saved_omc/libraries/.openmodelica/libraries/PNlib 3.0.0-master/package.mo): time 0.0759/0.0759, allocations: 16.73 MB / 307.9 MB, free: 14.21 MB / 254.1 MB Notification: Performance of FrontEnd - loaded program: time 0.00131/0.00131, allocations: 59.89 kB / 427 MB, free: 10.46 MB / 302.1 MB Notification: Performance of FrontEnd - Absyn->SCode: time 0.09336/0.09468, allocations: 53.48 MB / 480.5 MB, free: 4.934 MB / 350.1 MB Notification: Performance of NFInst.instantiate(PNlib.Examples.DisTest.TEnoInput): time 0.003137/0.09786, allocations: 1.862 MB / 482.4 MB, free: 3.066 MB / 350.1 MB Notification: Performance of NFInst.instExpressions: time 0.003751/0.1016, allocations: 1.963 MB / 484.3 MB, free: 1.102 MB / 350.1 MB Notification: Performance of NFInst.updateImplicitVariability: time 0.0004177/0.1021, allocations: 4 kB / 484.3 MB, free: 1.098 MB / 350.1 MB Notification: Performance of NFTyping.typeComponents: time 0.000643/0.1028, allocations: 123 kB / 484.4 MB, free: 0.9766 MB / 350.1 MB Notification: Performance of NFTyping.typeBindings: time 0.0004241/0.1032, allocations: 115.1 kB / 484.6 MB, free: 0.8633 MB / 350.1 MB Notification: Performance of NFTyping.typeClassSections: time 0.002055/0.1053, allocations: 0.9123 MB / 485.5 MB, free: 15.95 MB / 366.1 MB Notification: Performance of NFFlatten.flatten: time 0.001828/0.1071, allocations: 1.431 MB / 486.9 MB, free: 14.51 MB / 366.1 MB Notification: Performance of NFFlatten.resolveConnections: time 0.00028/0.1074, allocations: 135.8 kB / 487 MB, free: 14.38 MB / 366.1 MB Notification: Performance of NFEvalConstants.evaluate: time 0.0008177/0.1082, allocations: 0.526 MB / 487.6 MB, free: 13.85 MB / 366.1 MB Notification: Performance of NFSimplifyModel.simplify: time 0.0006065/0.1089, allocations: 318.4 kB / 487.9 MB, free: 13.54 MB / 366.1 MB Notification: Performance of NFPackage.collectConstants: time 0.000212/0.1091, allocations: 76 kB / 487.9 MB, free: 13.46 MB / 366.1 MB Notification: Performance of NFFlatten.collectFunctions: time 0.0008763/0.11, allocations: 0.5189 MB / 488.5 MB, free: 12.94 MB / 366.1 MB Notification: Performance of NFScalarize.scalarize: time 0.000223/0.1102, allocations: 135.5 kB / 488.6 MB, free: 12.81 MB / 366.1 MB Notification: Performance of NFVerifyModel.verify: time 0.0003944/0.1106, allocations: 346.4 kB / 488.9 MB, free: 12.47 MB / 366.1 MB Notification: Performance of NFConvertDAE.convert: time 0.001282/0.1119, allocations: 1.075 MB / 490 MB, free: 11.39 MB / 366.1 MB Notification: Performance of FrontEnd - DAE generated: time 5.66e-06/0.1119, allocations: 0 / 490 MB, free: 11.39 MB / 366.1 MB Notification: Performance of FrontEnd: time 1.844e-06/0.1119, allocations: 0 / 490 MB, free: 11.39 MB / 366.1 MB Notification: Performance of Transformations before backend: time 9.958e-06/0.1119, allocations: 0 / 490 MB, free: 11.39 MB / 366.1 MB Notification: Model statistics after passing the front-end and creating the data structures used by the back-end: * Number of equations: 156 * Number of variables: 156 Notification: Performance of Generate backend data structure: time 0.001686/0.1136, allocations: 1.248 MB / 491.3 MB, free: 10.03 MB / 366.1 MB Notification: Performance of prepare preOptimizeDAE: time 4.256e-05/0.1137, allocations: 19.77 kB / 491.3 MB, free: 10.01 MB / 366.1 MB Notification: Performance of preOpt normalInlineFunction (simulation): time 0.0003194/0.114, allocations: 84.17 kB / 491.4 MB, free: 9.93 MB / 366.1 MB Notification: Performance of preOpt evaluateParameters (simulation): time 0.0005636/0.1146, allocations: 418.8 kB / 491.8 MB, free: 9.48 MB / 366.1 MB Notification: Performance of preOpt simplifyIfEquations (simulation): time 0.0001034/0.1147, allocations: 74.69 kB / 491.8 MB, free: 9.402 MB / 366.1 MB Notification: Performance of preOpt expandDerOperator (simulation): time 0.0001001/0.1148, allocations: 64 kB / 491.9 MB, free: 9.34 MB / 366.1 MB Notification: Performance of preOpt clockPartitioning (simulation): time 0.001683/0.1165, allocations: 1.151 MB / 493.1 MB, free: 8.117 MB / 366.1 MB Notification: Performance of preOpt findStateOrder (simulation): time 1.68e-05/0.1165, allocations: 4 kB / 493.1 MB, free: 8.113 MB / 366.1 MB Notification: Performance of preOpt replaceEdgeChange (simulation): time 9.301e-05/0.1166, allocations: 35.97 kB / 493.1 MB, free: 8.078 MB / 366.1 MB Notification: Performance of preOpt inlineArrayEqn (simulation): time 8.952e-05/0.1167, allocations: 52.97 kB / 493.1 MB, free: 8.027 MB / 366.1 MB Notification: Performance of preOpt removeEqualRHS (simulation): time 0.001231/0.118, allocations: 0.761 MB / 493.9 MB, free: 7.266 MB / 366.1 MB Notification: Performance of preOpt removeSimpleEquations (simulation): time 0.003743/0.1217, allocations: 3.017 MB / 496.9 MB, free: 4.109 MB / 366.1 MB Notification: Performance of preOpt comSubExp (simulation): time 0.001429/0.1232, allocations: 1.298 MB / 498.2 MB, free: 2.793 MB / 366.1 MB Notification: Performance of preOpt resolveLoops (simulation): time 0.001424/0.1246, allocations: 1.198 MB / 499.4 MB, free: 1.59 MB / 366.1 MB Notification: Performance of preOpt evalFunc (simulation): time 8.455e-05/0.1247, allocations: 85.09 kB / 499.5 MB, free: 1.488 MB / 366.1 MB Notification: Performance of preOpt encapsulateWhenConditions (simulation): time 0.001284/0.126, allocations: 0.8364 MB / 0.4886 GB, free: 0.6016 MB / 366.1 MB Notification: Performance of pre-optimization done (n=79): time 2.695e-06/0.126, allocations: 0 / 0.4886 GB, free: 0.6016 MB / 366.1 MB Notification: Performance of matching and sorting (n=79): time 0.003404/0.1294, allocations: 2.261 MB / 0.4908 GB, free: 14.29 MB / 382.1 MB Notification: Performance of inlineWhenForInitialization (initialization): time 0.0003401/0.1298, allocations: 0.6117 MB / 0.4914 GB, free: 13.55 MB / 382.1 MB Notification: Performance of selectInitializationVariablesDAE (initialization): time 0.0003942/0.1302, allocations: 384.1 kB / 0.4918 GB, free: 13.17 MB / 382.1 MB Notification: Performance of collectPreVariables (initialization): time 8.148e-05/0.1303, allocations: 69.62 kB / 0.4918 GB, free: 13.1 MB / 382.1 MB Notification: Performance of collectInitialEqns (initialization): time 0.0002543/0.1305, allocations: 244.6 kB / 0.4921 GB, free: 12.85 MB / 382.1 MB Notification: Performance of collectInitialBindings (initialization): time 0.0001701/0.1307, allocations: 197.6 kB / 0.4923 GB, free: 12.66 MB / 382.1 MB Notification: Performance of simplifyInitialFunctions (initialization): time 0.0003408/0.131, allocations: 218.5 kB / 0.4925 GB, free: 12.44 MB / 382.1 MB Notification: Performance of setup shared object (initialization): time 0.0001876/0.1312, allocations: 370.8 kB / 0.4928 GB, free: 12.07 MB / 382.1 MB Notification: Performance of preBalanceInitialSystem (initialization): time 0.0005642/0.1318, allocations: 326.1 kB / 0.4931 GB, free: 11.75 MB / 382.1 MB Notification: Performance of partitionIndependentBlocks (initialization): time 0.0008108/0.1326, allocations: 0.6863 MB / 0.4938 GB, free: 10.9 MB / 382.1 MB Notification: Performance of analyzeInitialSystem (initialization): time 0.002466/0.1351, allocations: 2.127 MB / 0.4959 GB, free: 8.445 MB / 382.1 MB Notification: Performance of solveInitialSystemEqSystem (initialization): time 9.958e-06/0.1351, allocations: 0 / 0.4959 GB, free: 8.445 MB / 382.1 MB Notification: Performance of matching and sorting (n=145) (initialization): time 0.002147/0.1373, allocations: 1.559 MB / 0.4974 GB, free: 6.812 MB / 382.1 MB Notification: Performance of prepare postOptimizeDAE: time 0.0001943/0.1375, allocations: 346.7 kB / 0.4977 GB, free: 6.406 MB / 382.1 MB Notification: Performance of postOpt simplifyComplexFunction (initialization): time 1.753e-05/0.1375, allocations: 8 kB / 0.4977 GB, free: 6.398 MB / 382.1 MB Notification: Performance of postOpt tearingSystem (initialization): time 3.249e-05/0.1375, allocations: 20.78 kB / 0.4978 GB, free: 6.379 MB / 382.1 MB Notification: Performance of postOpt solveSimpleEquations (initialization): time 0.0003565/0.1379, allocations: 115.6 kB / 0.4979 GB, free: 6.266 MB / 382.1 MB Notification: Performance of postOpt calculateStrongComponentJacobians (initialization): time 2.692e-05/0.1379, allocations: 27.92 kB / 0.4979 GB, free: 6.238 MB / 382.1 MB Notification: Performance of postOpt simplifyAllExpressions (initialization): time 0.000403/0.1384, allocations: 107 kB / 0.498 GB, free: 6.133 MB / 382.1 MB Notification: Performance of postOpt collapseArrayExpressions (initialization): time 8.827e-05/0.1385, allocations: 56 kB / 0.4981 GB, free: 6.078 MB / 382.1 MB Warning: Assuming fixed start value for the following 25 variables: P1.enableIn.valid:DISCRETE(fixed = true protected = true ) "valid solution" type: Boolean P1.enableIn.benefitLimit:DISCRETE(fixed = true protected = true ) "best valid benefit" type: Real P1.enableIn.benefitMax:DISCRETE(fixed = true protected = true ) "theoretical benefit" type: Real P1.enableIn.posTE:DISCRETE(fixed = true protected = true ) "possible enabled transition" type: Integer P1.enableIn.k:DISCRETE(fixed = true protected = true ) "iteration index" type: Integer P1.enableIn.endWhile:DISCRETE(fixed = true protected = true ) type: Boolean P1.enableIn.sumEnablingProbTAin:DISCRETE(fixed = true protected = true ) "sum of the enabling probabilities of the active input transitions" type: Real P1.enableIn.nTAin:DISCRETE(fixed = true protected = true ) "number ofactive input transitions" type: Integer P1.enableIn.nremTAin:DISCRETE(fixed = true protected = true ) "number of remaining active input transitions" type: Integer P1.enableIn.Index:DISCRETE(fixed = true protected = true ) "priority Index" type: Integer T2.ani:DISCRETE(fixed = true protected = true ) "for transition animation" type: Boolean T2.fireTime:DISCRETE(fixed = true protected = true ) "for transition animation" type: Real P1.firingSumOut.firingSum:DISCRETE(fixed = true protected = true ) "firing sum" type: Integer P1.firingSumIn.firingSum:DISCRETE(fixed = true protected = true ) "firing sum" type: Integer P1.enableOut.benefitLimit:DISCRETE(fixed = true protected = true ) "best valid benefit" type: Real P1.enableOut.valid:DISCRETE(fixed = true protected = true ) "valid solution" type: Boolean P1.enableOut.benefitMax:DISCRETE(fixed = true protected = true ) "theoretical benefit" type: Real P1.enableOut.Index:DISCRETE(fixed = true protected = true ) "priority Index" type: Integer P1.enableOut.endWhile:DISCRETE(fixed = true protected = true ) type: Boolean P1.enableOut.sumEnablingProbTAout:DISCRETE(fixed = true protected = true ) "sum of the enabling probabilities of the active output transitions" type: Real P1.enableOut.posTE:DISCRETE(fixed = true protected = true ) "possible enabled transition" type: Integer P1.enableOut.k:DISCRETE(fixed = true protected = true ) "iteration index" type: Integer P1.enableOut.nTAout:DISCRETE(fixed = true protected = true ) "number of active output transitions" type: Integer P1.enableOut.nremTAout:DISCRETE(fixed = true protected = true ) "number of remaining active output transitions" type: Integer T2.firingTime:DISCRETE(fixed = true protected = true ) "next putative firing time" type: Real Notification: Model statistics after passing the back-end for initialization: * Number of independent subsystems: 49 * Number of states: 0 () * Number of discrete variables: 121 ($PRE.P1.enableIn.valid,P1.enableIn.valid,$PRE.P1.enableIn.benefitLimit,P1.enableIn.benefitLimit,$PRE.P1.enableIn.benefitMax,P1.enableIn.benefitMax,$PRE.P1.enableIn.posTE,P1.enableIn.posTE,$PRE.P1.enableIn.k,P1.enableIn.k,$PRE.P1.enableIn.endWhile,P1.enableIn.endWhile,P1.enableIn.randNum,$PRE.P1.enableIn.randNum,P1.enableIn.state128[4],$PRE.P1.enableIn.state128[4],P1.enableIn.state128[3],$PRE.P1.enableIn.state128[3],P1.enableIn.state128[2],$PRE.P1.enableIn.state128[2],P1.enableIn.state128[1],$PRE.P1.enableIn.state128[1],P1.enableIn.cumEnablingProb[1],$PRE.P1.enableIn.cumEnablingProb[1],$PRE.P1.enableIn.sumEnablingProbTAin,P1.enableIn.sumEnablingProbTAin,$PRE.P1.enableIn.nTAin,P1.enableIn.nTAin,$PRE.P1.enableIn.nremTAin,P1.enableIn.nremTAin,P1.enableIn.remTAin[1],$PRE.P1.enableIn.remTAin[1],$PRE.P1.enableIn.Index,P1.enableIn.Index,$PRE.P1.reStart,$whenCondition8,$PRE.T2.ani,$PRE.T2.fireTime,T2.ani,T2.fireTime,$PRE.P1.firingSumOut.firingSum,$PRE.P1.firingSumIn.firingSum,P1.tokeninout,$whenCondition6,$whenCondition7,T2.eventIndex,$PRE.T2.eventIndex,$whenCondition3,P1.firingSumOut.firingSum,$PRE.P1.enableOut.benefitLimit,P1.enableOut.benefitLimit,$PRE.P1.enableOut.valid,P1.enableOut.valid,$PRE.P1.enableOut.benefitMax,P1.enableOut.benefitMax,$PRE.P1.enableOut.Index,P1.enableOut.Index,$PRE.P1.enableOut.endWhile,P1.enableOut.endWhile,$PRE.P1.enableOut.sumEnablingProbTAout,P1.enableOut.sumEnablingProbTAout,P1.enableOut.randNum,$PRE.P1.enableOut.randNum,P1.enableOut.state128[4],$PRE.P1.enableOut.state128[4],P1.enableOut.state128[3],$PRE.P1.enableOut.state128[3],P1.enableOut.state128[2],$PRE.P1.enableOut.state128[2],P1.enableOut.state128[1],$PRE.P1.enableOut.state128[1],$PRE.P1.enableOut.posTE,P1.enableOut.posTE,$PRE.P1.enableOut.k,P1.enableOut.k,$PRE.P1.enableOut.nTAout,P1.enableOut.nTAout,$PRE.P1.enableOut.nremTAout,P1.enableOut.nremTAout,P1.enableOut.arcWeightSum,$PRE.P1.enableOut.arcWeightSum,P1.delayPassedOut.numtrue,P1.delayPassedOut.anytrue,P1.activeConOut.anychange,$whenCondition1,T2.firingCon,T2.outPlaces[1].disTransition,P1.inTransition[1].disPlace,P1.reStart,P1.enableIn.disTransition[1],$PRE.T2.firingTime,$PRE.P1.enableIn.arcWeightSum,$PRE.P1.enableIn.TEin[1],T2.enabledByInPlaces,P1.enableIn.arcWeight[1],T2.activation.disPlaceOut[1],T2.activation.active,T2.activation.maxTokensInt[1],T2.activation.arcWeightIntOut[1],T2.activation.tIntOut[1],T2.eventPassed,$PRE.T2.eventPassed,T2.firingTime,T2.active,P1.enableIn.arcWeightSum,P1.enableIn.TEin[1],P1.enableIn.TEin_[1],P1.enableIn.active[1],P1.enableIn.TAein[1],P1.firingSumIn.firingSum,P1.firingSumIn.arcWeight[1],P1.firingSumIn.fire[1],P1.delayPassedIn.numtrue,P1.delayPassedIn.anytrue,P1.delayPassedIn.vec[1],P1.t,$PRE.P1.t,$whenCondition2,$whenCondition4,$whenCondition5,P1.inTransition[1].emptied) * Number of discrete states: 0 () * Number of clocked states: 0 () * Top-level inputs: 0 Notification: Strong component statistics for initialization (128): * Single equations (assignments): 116 * Array equations: 1 * Algorithm blocks: 11 * Record equations: 0 * When equations: 0 * If-equations: 0 * Equation systems (not torn): 0 * Torn equation systems: 0 * Mixed (continuous/discrete) equation systems: 0 Notification: Performance of prepare postOptimizeDAE: time 0.0008961/0.1394, allocations: 0.7313 MB / 0.4988 GB, free: 5.273 MB / 382.1 MB Notification: Performance of postOpt lateInlineFunction (simulation): time 0.0001374/0.1395, allocations: 71.38 kB / 0.4988 GB, free: 5.203 MB / 382.1 MB Notification: Performance of postOpt wrapFunctionCalls (simulation): time 0.002526/0.142, allocations: 1.722 MB / 0.5005 GB, free: 3.438 MB / 382.1 MB Notification: Performance of postOpt simplifysemiLinear (simulation): time 9.437e-06/0.1421, allocations: 3.938 kB / 0.5005 GB, free: 3.434 MB / 382.1 MB Notification: Performance of postOpt simplifyComplexFunction (simulation): time 3.787e-06/0.1421, allocations: 4 kB / 0.5005 GB, free: 3.43 MB / 382.1 MB Notification: Performance of postOpt removeConstants (simulation): time 0.0001062/0.1422, allocations: 128.4 kB / 0.5007 GB, free: 3.285 MB / 382.1 MB Notification: Performance of postOpt simplifyTimeIndepFuncCalls (simulation): time 0.0001709/0.1424, allocations: 75.97 kB / 0.5007 GB, free: 3.211 MB / 382.1 MB Notification: Performance of postOpt simplifyAllExpressions (simulation): time 0.0003425/0.1427, allocations: 55.95 kB / 0.5008 GB, free: 3.156 MB / 382.1 MB Notification: Performance of postOpt findZeroCrossings (simulation): time 0.0001849/0.1429, allocations: 79.92 kB / 0.5009 GB, free: 3.078 MB / 382.1 MB Notification: Performance of postOpt createDAEmodeBDAE (simulation): time 0.003217/0.1461, allocations: 2.721 MB / 0.5035 GB, free: 188 kB / 382.1 MB Notification: Performance of postOpt symbolicJacobianDAE (simulation): time 0.2242/0.3703, allocations: 2.265 MB / 0.5057 GB, free: 34.03 MB / 382.1 MB Notification: Performance of postOpt setEvaluationStage (simulation): time 0.001609/0.372, allocations: 2.21 MB / 0.5079 GB, free: 33.02 MB / 382.1 MB Notification: Performance of sorting global known variables: time 0.0002558/0.3723, allocations: 234.4 kB / 0.5081 GB, free: 32.89 MB / 382.1 MB Notification: Performance of Backend: time 7.52e-07/0.3723, allocations: 0 / 0.5081 GB, free: 32.89 MB / 382.1 MB Notification: Performance of simCode: created initialization part: time 0.002354/0.3746, allocations: 1.588 MB / 0.5097 GB, free: 31.91 MB / 382.1 MB Notification: Performance of SimCode: time 0.001714/0.3764, allocations: 1.876 MB / 0.5115 GB, free: 30.41 MB / 382.1 MB Notification: Performance of Templates: time 0.02998/0.4063, allocations: 12.42 MB / 0.5236 GB, free: 26.7 MB / 382.1 MB make -j1 -f PNlib_PNlib.Examples.DisTest.TEnoInput.makefile (rm -f PNlib_PNlib.Examples.DisTest.TEnoInput.pipe ; mkfifo PNlib_PNlib.Examples.DisTest.TEnoInput.pipe ; head -c 1048576 < PNlib_PNlib.Examples.DisTest.TEnoInput.pipe >> ../files/PNlib_PNlib.Examples.DisTest.TEnoInput.sim & ./PNlib_PNlib.Examples.DisTest.TEnoInput -abortSlowSimulation -alarm=480 -emit_protected -lv LOG_STATS > PNlib_PNlib.Examples.DisTest.TEnoInput.pipe 2>&1) diffSimulationResults("PNlib_PNlib.Examples.DisTest.TEnoInput_res.mat","/mnt/ReferenceFiles/PNlib/ReferenceFiles/PNlib.Examples.DisTest.TEnoInput.mat","/var/lib/jenkins1/ws/OpenModelicaLibraryTestingWork/OpenModelicaLibraryTesting/files/PNlib_PNlib.Examples.DisTest.TEnoInput.diff",relTol=0.003,relTolDiffMinMax=0.003,rangeDelta=0.001) Reference file matches