@@ -260,6 +260,7 @@ public function isSubsetOfProvider()
260260 array ('2.3.0 ' , '>1.0 ' , true ),
261261 array ('2.3.0 ' , '>2.3 ' , false ),
262262 array ('2.3.0 ' , '>2.5 ' , false ),
263+ array ('=1.0.0.0 ' , '>1.0.0.0 ' , false ),
263264
264265 array ('1.0.0 ' , '>=1.0 ' , true ),
265266 array ('2.3.0 ' , '>=1.0 ' , true ),
@@ -476,4 +477,252 @@ public function isSubsetOfProvider()
476477 );
477478 }
478479
480+ /**
481+ * @dataProvider matchesProvider
482+ * @param $constraint1
483+ * @param $constraint2
484+ * @param $expected
485+ */
486+ public function testMatches ($ constraint1 , $ constraint2 , $ expected )
487+ {
488+ $ constraint1 = Constraint::parse ($ constraint1 );
489+ $ constraint2 = Constraint::parse ($ constraint2 );
490+
491+ $ this ->assertSame (
492+ $ expected ,
493+ $ constraint1 ->matches ($ constraint2 ),
494+ (string ) $ constraint1 . ($ expected ? '' : ' does \'nt ' ) .
495+ ' matches ' . (string ) $ constraint2
496+ );
497+ }
498+
499+ public function matchesProvider ()
500+ {
501+ return array (
502+ array ('1.0 ' , '1.0 ' , true ),
503+ array ('1.5.8 ' , '1.5.8 ' , true ),
504+ array ('1.0.0 ' , '1.0 ' , true ),
505+ array ('1.5.0 ' , '2.5 ' , false ),
506+ array ('2.3.0 ' , '1.5.8 ' , false ),
507+
508+ array ('2.3.0 ' , '>1.0 ' , true ),
509+ array ('2.3.0 ' , '>2.3 ' , false ),
510+ array ('2.3.0 ' , '>2.5 ' , false ),
511+ array ('=1.0.0.0 ' , '>1.0.0.0 ' , false ),
512+
513+ array ('1.0.0 ' , '>=1.0 ' , true ),
514+ array ('2.3.0 ' , '>=1.0 ' , true ),
515+ array ('2.3.0 ' , '>=5.2.0 ' , false ),
516+
517+ array ('2.3.0 ' , '<3.5.8 ' , true ),
518+ array ('2.3.0 ' , '<2.3 ' , false ),
519+ array ('2.3.0 ' , '<1.5.8 ' , false ),
520+
521+ array ('2.3.0 ' , '<=2.3 ' , true ),
522+ array ('2.3.0 ' , '<=2.3.0.0 ' , true ),
523+ array ('2.3.0 ' , '<=0.3.0.0 ' , false ),
524+
525+ array ('1.5.0 ' , '!=2.5 ' , true ),
526+ array ('3.5.0 ' , '!=2.5 ' , true ),
527+ array ('2.3.0 ' , '!=2.3 ' , false ),
528+
529+ array ('1.5.0 ' , '<>2.5 ' , true ),
530+ array ('3.5.0 ' , '<>2.5 ' , true ),
531+ array ('2.3.0 ' , '<>2.3 ' , false ),
532+
533+ array ('2.5.0 ' , '~2.5 ' , true ),
534+ array ('2.5.1 ' , '~2.5 ' , true ),
535+ array ('2.7.0 ' , '~2.5 ' , true ),
536+ array ('3.0.0 ' , '~2.5 ' , false ),
537+
538+ array ('2.5.0 ' , '~2.5.3 ' , false ),
539+ array ('2.5.1 ' , '~2.5.3 ' , false ),
540+ array ('2.5.3 ' , '~2.5.3 ' , true ),
541+ array ('2.5.4 ' , '~2.5.3 ' , true ),
542+ array ('2.5.4.5 ' , '~2.5.3 ' , true ),
543+ array ('2.7.0 ' , '~2.5.3 ' , false ),
544+ array ('3.0.0 ' , '~2.5.3 ' , false ),
545+
546+ array ('>2.3.0 ' , '1.5.8 ' , false ),
547+
548+ array ('>2.3.0 ' , '>1.5.8 ' , true ),
549+ array ('>2.3.0 ' , '>2.3.0 ' , true ),
550+ array ('>2.3.0 ' , '>2.3.0.1 ' , true ),
551+
552+ array ('>2.3.0 ' , '>=1.5.8 ' , true ),
553+ array ('>2.3.0 ' , '>=2.3.0 ' , true ),
554+ array ('>2.3.0 ' , '>=2.3.0.1 ' , true ),
555+
556+ array ('>2.3.0 ' , '<1.5.8 ' , false ),
557+ array ('>2.3.0 ' , '<2.3.0 ' , false ),
558+ array ('>2.3.0 ' , '<2.3.2 ' , true ),
559+
560+ array ('>2.3.0 ' , '<=1.5.8 ' , false ),
561+ array ('>2.3.0 ' , '<=2.3.0 ' , false ),
562+ array ('>2.3.0 ' , '<=2.3.0.1 ' , true ),
563+
564+ array ('>2.3.0 ' , '!=1.5.8 ' , true ),
565+ array ('>2.3.0 ' , '!=2.3.0 ' , true ),
566+ array ('>2.3.0 ' , '!=2.3.0.1 ' , true ),
567+
568+ array ('>2.3.0 ' , '<>1.5.8 ' , true ),
569+ array ('>2.3.0 ' , '<>2.3.0 ' , true ),
570+ array ('>2.3.0 ' , '<>2.3.0.1 ' , true ),
571+
572+ array ('>2.3.0 ' , '~1.5.8 ' , false ),
573+ array ('>2.3.0 ' , '~2.3 ' , true ),
574+ array ('>2.3.0 ' , '~2.4 ' , true ),
575+
576+ array ('>=2.3.0 ' , '1.5.8 ' , false ),
577+
578+ array ('>=2.3.0 ' , '>1.5.8 ' , true ),
579+ array ('>=2.3.0 ' , '>2.3 ' , true ),
580+ array ('>=2.3.0 ' , '>2.3.0.1 ' , true ),
581+
582+ array ('>=2.3.0 ' , '>=1.5.8 ' , true ),
583+ array ('>=2.3.0 ' , '>=2.3 ' , true ),
584+ array ('>=2.3.0 ' , '>=2.3.0.1 ' , true ),
585+
586+ array ('>=2.3.0 ' , '<1.5.8 ' , false ),
587+ array ('>=2.3.0 ' , '<2.3 ' , false ),
588+ array ('>=2.3.0 ' , '<2.3.0.1 ' , true ),
589+
590+ array ('>=2.3.0 ' , '<=1.5.8 ' , false ),
591+ array ('>=2.3.0 ' , '<=2.3 ' , true ),
592+ array ('>=2.3.0 ' , '<=2.3.0.1 ' , true ),
593+
594+ array ('>=2.3.0 ' , '!=1.5.8 ' , true ),
595+ array ('>=2.3.0 ' , '!=2.3 ' , true ),
596+ array ('>=2.3.0 ' , '!=2.3.0.1 ' , true ),
597+
598+ array ('>=2.3.0 ' , '<>1.5.8 ' , true ),
599+ array ('>=2.3.0 ' , '<>2.3 ' , true ),
600+ array ('>=2.3.0 ' , '<>2.3.0.1 ' , true ),
601+
602+ array ('>=2.3.0 ' , '~1.5.8 ' , false ),
603+ array ('>=2.3.0 ' , '~2.3 ' , true ),
604+ array ('>=2.3.0 ' , '~2.4. ' , true ),
605+
606+ array ('<2.3.0 ' , '1.5.8 ' , true ),
607+
608+ array ('<2.3.0 ' , '>1.5.8 ' , true ),
609+ array ('<2.3.0 ' , '>2.3.0 ' , false ),
610+ array ('<2.3.0 ' , '>2.3.0.1 ' , false ),
611+
612+ array ('<2.3.0 ' , '>=1.5.8 ' , true ),
613+ array ('<2.3.0 ' , '>=2.3.0 ' , false ),
614+ array ('<2.3.0 ' , '>=2.3.0.1 ' , false ),
615+
616+ array ('<2.3.0 ' , '<1.5.8 ' , true ),
617+ array ('<2.3.0 ' , '<2.3.0 ' , true ),
618+ array ('<2.3.0 ' , '<2.3.0.1 ' , true ),
619+
620+ array ('<2.3.0 ' , '<=1.5.8 ' , true ),
621+ array ('<2.3.0 ' , '<=2.3.0 ' , true ),
622+ array ('<2.3.0 ' , '<=2.3.0.1 ' , true ),
623+
624+ array ('<2.3.0 ' , '!=1.5.8 ' , true ),
625+ array ('<2.3.0 ' , '!=2.3.0 ' , true ),
626+ array ('<2.3.0 ' , '!=2.3.0.1 ' , true ),
627+
628+ array ('<2.3.0 ' , '<>1.5.8 ' , true ),
629+ array ('<2.3.0 ' , '<>2.3.0 ' , true ),
630+ array ('<2.3.0 ' , '<>2.3.0.1 ' , true ),
631+
632+ array ('<2.3.0 ' , '~1.5.8 ' , true ),
633+ array ('<2.3.0 ' , '~2.3 ' , false ),
634+ array ('<2.3.0 ' , '~2.4. ' , false ),
635+
636+ array ('<=2.3.0 ' , '1.5.8 ' , true ),
637+
638+ array ('<=2.3.0 ' , '>1.5.8 ' , true ),
639+ array ('<=2.3.0 ' , '>2.3.0 ' , false ),
640+ array ('<=2.3.0 ' , '>2.3.0.1 ' , false ),
641+
642+ array ('<=2.3.0 ' , '>=1.5.8 ' , true ),
643+ array ('<=2.3.0 ' , '>=2.3.0 ' , true ),
644+ array ('<=2.3.0 ' , '>=2.3.0.1 ' , false ),
645+
646+ array ('<=2.3.0 ' , '<1.5.8 ' , true ),
647+ array ('<=2.3.0 ' , '<2.3.0 ' , true ),
648+ array ('<=2.3.0 ' , '<2.3.0.1 ' , true ),
649+
650+ array ('<=2.3.0 ' , '<=1.5.8 ' , true ),
651+ array ('<=2.3.0 ' , '<=2.3.0 ' , true ),
652+ array ('<=2.3.0 ' , '<=2.3.0.1 ' , true ),
653+
654+ array ('<=2.3.0 ' , '!=1.5.8 ' , true ),
655+ array ('<=2.3.0 ' , '!=2.3.0 ' , true ),
656+ array ('<=2.3.0 ' , '!=2.3.0.1 ' , true ),
657+
658+ array ('<=2.3.0 ' , '<>1.5.8 ' , true ),
659+ array ('<=2.3.0 ' , '<>2.3.0 ' , true ),
660+ array ('<=2.3.0 ' , '<>2.3.0.1 ' , true ),
661+
662+ array ('<=2.3.0 ' , '~1.5.8 ' , true ),
663+ array ('<=2.3.0 ' , '~2.3 ' , true ),
664+ array ('<=2.3.0 ' , '~2.4. ' , false ),
665+
666+ array ('!=2.3.0 ' , '1.5.8 ' , true ),
667+
668+ array ('<>2.3.0 ' , '>1.5.8 ' , true ),
669+ array ('!=2.3.0 ' , '>2.3.0 ' , true ),
670+ array ('<>2.3.0 ' , '>2.3.0.1 ' , true ),
671+
672+ array ('!=2.3.0 ' , '>=1.5.8 ' , true ),
673+ array ('<>2.3.0 ' , '>=2.3.0 ' , true ),
674+ array ('!=2.3.0 ' , '>=2.3.0.1 ' , true ),
675+
676+ array ('<>2.3.0 ' , '<1.5.8 ' , true ),
677+ array ('!=2.3.0 ' , '<2.3.0 ' , true ),
678+ array ('<>2.3.0 ' , '<2.3.0.1 ' , true ),
679+
680+ array ('!=2.3.0 ' , '<=1.5.8 ' , true ),
681+ array ('<>2.3.0 ' , '<=2.3.0 ' , true ),
682+ array ('!=2.3.0 ' , '<=2.3.0.1 ' , true ),
683+
684+ array ('<>2.3.0 ' , '!=1.5.8 ' , true ),
685+ array ('!=2.3.0 ' , '!=2.3.0.0 ' , true ),
686+ array ('<>2.3.0 ' , '!=2.3.0.1 ' , true ),
687+
688+ array ('!=2.3.0 ' , '<>1.5.8 ' , true ),
689+ array ('<>2.3.0 ' , '<>2.3 ' , true ),
690+ array ('!=2.3.0 ' , '<>2.3.0.1 ' , true ),
691+
692+ array ('!=2.3.0 ' , '~1.5.8 ' , true ),
693+ array ('!=2.3.0 ' , '~2.3 ' , true ),
694+ array ('!=2.3.0 ' , '~2.4. ' , true ),
695+
696+ array ('~2.3.0 ' , '1.5.8 ' , false ),
697+
698+ array ('~2.3.5 ' , '>2.3.0 ' , true ),
699+ array ('~2.3.5 ' , '>2.3.5 ' , true ),
700+ array ('~2.3.5 ' , '>2.3.6 ' , true ),
701+
702+ array ('~2.3.5 ' , '>=2.3.0 ' , true ),
703+ array ('~2.3.5 ' , '>=2.3.5 ' , true ),
704+ array ('~2.3.5 ' , '>=2.3.6 ' , true ),
705+
706+ array ('~2.3.5 ' , '<2.3.5 ' , false ),
707+ array ('~2.3.5 ' , '<2.3.6 ' , true ),
708+ array ('~2.3.5 ' , '<2.4.0 ' , true ),
709+
710+ array ('~2.3.5 ' , '<=2.3.5 ' , true ),
711+ array ('~2.3.5 ' , '<=2.3.6 ' , true ),
712+ array ('~2.3.5 ' , '<=2.4.0 ' , true ),
713+
714+ array ('~2.3.5 ' , '!=2.3.0 ' , true ),
715+ array ('~2.3.5 ' , '!=2.3.6 ' , true ),
716+ array ('~2.3.5 ' , '<>2.4.0 ' , true ),
717+
718+ array ('~2.3.5 ' , '~2.3 ' , true ),
719+ array ('~2.3.5 ' , '~2.4 ' , false ),
720+ array ('~2.3.5 ' , '~2.3 ' , true ),
721+ array ('~2.4.5 ' , '~2.3 ' , true ),
722+ array ('~2.3 ' , '~2.3.2 ' , true ),
723+ array ('~2.4 ' , '~2.3.4 ' , false ),
724+ array ('~2.3.5 ' , '~2.3.5 ' , true ),
725+ );
726+ }
727+
479728}
0 commit comments