@@ -92,6 +92,18 @@ public void zaddWithParams() {
9292 status = jedis .zadd ("foo" , scoreMembers , ZAddParams .zAddParams ().ch ());
9393 assertEquals (2L , status );
9494
95+ // lt: only update existing elements if the new score is less than the current score.
96+ jedis .zadd ("foo" , 3d , "a" , ZAddParams .zAddParams ().lt ());
97+ assertEquals (Double .valueOf (2d ), jedis .zscore ("foo" , "a" ));
98+ jedis .zadd ("foo" , 1d , "a" , ZAddParams .zAddParams ().lt ());
99+ assertEquals (Double .valueOf (1d ), jedis .zscore ("foo" , "a" ));
100+
101+ // gt: only update existing elements if the new score is greater than the current score.
102+ jedis .zadd ("foo" , 0d , "b" , ZAddParams .zAddParams ().gt ());
103+ assertEquals (Double .valueOf (1d ), jedis .zscore ("foo" , "b" ));
104+ jedis .zadd ("foo" , 2d , "b" , ZAddParams .zAddParams ().gt ());
105+ assertEquals (Double .valueOf (2d ), jedis .zscore ("foo" , "b" ));
106+
95107 // binary
96108 jedis .del (bfoo );
97109
@@ -111,6 +123,18 @@ public void zaddWithParams() {
111123 // ch: return count of members not only added, but also updated
112124 status = jedis .zadd (bfoo , binaryScoreMembers , ZAddParams .zAddParams ().ch ());
113125 assertEquals (2L , status );
126+
127+ // lt: only update existing elements if the new score is less than the current score.
128+ jedis .zadd (bfoo , 3d , ba , ZAddParams .zAddParams ().lt ());
129+ assertEquals (Double .valueOf (2d ), jedis .zscore (bfoo , ba ));
130+ jedis .zadd (bfoo , 1d , ba , ZAddParams .zAddParams ().lt ());
131+ assertEquals (Double .valueOf (1d ), jedis .zscore (bfoo , ba ));
132+
133+ // gt: only update existing elements if the new score is greater than the current score.
134+ jedis .zadd (bfoo , 0d , bb , ZAddParams .zAddParams ().gt ());
135+ assertEquals (Double .valueOf (1d ), jedis .zscore (bfoo , bb ));
136+ jedis .zadd (bfoo , 2d , bb , ZAddParams .zAddParams ().gt ());
137+ assertEquals (Double .valueOf (2d ), jedis .zscore (bfoo , bb ));
114138 }
115139
116140 @ Test
@@ -568,48 +592,48 @@ public void zpopmax() {
568592 jedis .zadd ("foo" , 10d , "b" );
569593 jedis .zadd ("foo" , 0.1d , "c" );
570594 jedis .zadd ("foo" , 2d , "d" );
571-
595+
572596 Tuple actual = jedis .zpopmax ("foo" );
573597 Tuple expected = new Tuple ("b" , 10d );
574598 assertEquals (expected , actual );
575-
599+
576600 actual = jedis .zpopmax ("foo" );
577601 expected = new Tuple ("d" , 2d );
578602 assertEquals (expected , actual );
579-
603+
580604 actual = jedis .zpopmax ("foo" );
581605 expected = new Tuple ("a" , 1d );
582606 assertEquals (expected , actual );
583-
607+
584608 actual = jedis .zpopmax ("foo" );
585609 expected = new Tuple ("c" , 0.1d );
586610 assertEquals (expected , actual );
587-
611+
588612 // Empty
589613 actual = jedis .zpopmax ("foo" );
590614 assertNull (actual );
591-
615+
592616 // Binary
593617 jedis .zadd (bfoo , 1d , ba );
594618 jedis .zadd (bfoo , 10d , bb );
595619 jedis .zadd (bfoo , 0.1d , bc );
596620 jedis .zadd (bfoo , 2d , ba );
597-
621+
598622 // First
599623 actual = jedis .zpopmax (bfoo );
600624 expected = new Tuple (bb , 10d );
601625 assertEquals (expected , actual );
602-
626+
603627 // Second
604628 actual = jedis .zpopmax (bfoo );
605629 expected = new Tuple (ba , 2d );
606630 assertEquals (expected , actual );
607-
631+
608632 // Third
609633 actual = jedis .zpopmax (bfoo );
610634 expected = new Tuple (bc , 0.1d );
611635 assertEquals (expected , actual );
612-
636+
613637 // Empty
614638 actual = jedis .zpopmax (bfoo );
615639 assertNull (actual );
@@ -622,35 +646,35 @@ public void zpopmaxWithCount() {
622646 jedis .zadd ("foo" , 0.1d , "c" );
623647 jedis .zadd ("foo" , 2d , "d" );
624648 jedis .zadd ("foo" , 0.03 , "e" );
625-
649+
626650 Set <Tuple > actual = jedis .zpopmax ("foo" , 2 );
627651 assertEquals (2 , actual .size ());
628-
652+
629653 Set <Tuple > expected = new LinkedHashSet <Tuple >();
630654 expected .add (new Tuple ("b" , 10d ));
631655 expected .add (new Tuple ("d" , 2d ));
632656 assertEquals (expected , actual );
633-
657+
634658 actual = jedis .zpopmax ("foo" , 3 );
635659 assertEquals (3 , actual .size ());
636-
660+
637661 expected .clear ();
638662 expected .add (new Tuple ("a" , 1d ));
639663 expected .add (new Tuple ("c" , 0.1d ));
640664 expected .add (new Tuple ("e" , 0.03d ));
641665 assertEquals (expected , actual );
642-
666+
643667 // Empty
644668 actual = jedis .zpopmax ("foo" , 1 );
645669 expected .clear ();
646670 assertEquals (expected , actual );
647-
671+
648672 // Binary
649673 jedis .zadd (bfoo , 1d , ba );
650674 jedis .zadd (bfoo , 10d , bb );
651675 jedis .zadd (bfoo , 0.1d , bc );
652676 jedis .zadd (bfoo , 2d , ba );
653-
677+
654678 // First
655679 actual = jedis .zpopmax (bfoo , 1 );
656680 expected .clear ();
@@ -662,19 +686,19 @@ public void zpopmaxWithCount() {
662686 expected .clear ();
663687 expected .add (new Tuple (ba , 2d ));
664688 assertEquals (expected , actual );
665-
689+
666690 // Last 2 (just 1, because 1 was overwritten)
667691 actual = jedis .zpopmax (bfoo , 1 );
668692 expected .clear ();
669693 expected .add (new Tuple (bc , 0.1d ));
670694 assertEquals (expected , actual );
671-
695+
672696 // Empty
673697 actual = jedis .zpopmax (bfoo , 1 );
674698 expected .clear ();
675699 assertEquals (expected , actual );
676700 }
677-
701+
678702 @ Test
679703 public void zpopmin () {
680704
0 commit comments