/* * Copyright 2014 Goldman Sachs. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.gs.collections.impl.block.factory; import java.util.Collections; import com.gs.collections.impl.factory.Lists; import com.gs.collections.impl.factory.Sets; import com.gs.collections.impl.test.Verify; import org.junit.Test; public class PredicatesSerializationTest { @Test public void throwing() { Verify.assertSerializedForm( 1L, "rO0ABXNyAEljb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "VGhyb3dpbmdQcmVkaWNhdGVBZGFwdGVyAAAAAAAAAAECAAFMABF0aHJvd2luZ1ByZWRpY2F0ZXQA\n" + "Q0xjb20vZ3MvY29sbGVjdGlvbnMvaW1wbC9ibG9jay9wcmVkaWNhdGUvY2hlY2tlZC9UaHJvd2lu\n" + "Z1ByZWRpY2F0ZTt4cgBAY29tLmdzLmNvbGxlY3Rpb25zLmltcGwuYmxvY2sucHJlZGljYXRlLmNo\n" + "ZWNrZWQuQ2hlY2tlZFByZWRpY2F0ZQAAAAAAAAABAgAAeHBw", Predicates.throwing(null)); } @Test public void alwaysTrue() { Verify.assertSerializedForm( 1L, "rO0ABXNyADtjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "QWx3YXlzVHJ1ZQAAAAAAAAABAgAAeHIAMGNvbS5ncy5jb2xsZWN0aW9ucy5pbXBsLmJsb2NrLmZh\n" + "Y3RvcnkuUHJlZGljYXRlcwAAAAAAAAABAgAAeHA=", Predicates.alwaysTrue()); } @Test public void alwaysFalse() { Verify.assertSerializedForm( 1L, "rO0ABXNyADxjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "QWx3YXlzRmFsc2UAAAAAAAAAAQIAAHhyADBjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5m\n" + "YWN0b3J5LlByZWRpY2F0ZXMAAAAAAAAAAQIAAHhw", Predicates.alwaysFalse()); } @Test public void adapt() { Verify.assertSerializedForm( 1L, "rO0ABXNyAEFjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "UHJlZGljYXRlQWRhcHRlcgAAAAAAAAABAgABTAAJcHJlZGljYXRldAAyTGNvbS9ncy9jb2xsZWN0\n" + "aW9ucy9hcGkvYmxvY2svcHJlZGljYXRlL1ByZWRpY2F0ZTt4cgAwY29tLmdzLmNvbGxlY3Rpb25z\n" + "LmltcGwuYmxvY2suZmFjdG9yeS5QcmVkaWNhdGVzAAAAAAAAAAECAAB4cHA=", Predicates.adapt(null)); } @Test public void attributePredicate() { Verify.assertSerializedForm( 1L, "rO0ABXNyAENjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "QXR0cmlidXRlUHJlZGljYXRlAAAAAAAAAAECAAJMAAhmdW5jdGlvbnQAMExjb20vZ3MvY29sbGVj\n" + "dGlvbnMvYXBpL2Jsb2NrL2Z1bmN0aW9uL0Z1bmN0aW9uO0wACXByZWRpY2F0ZXQAMkxjb20vZ3Mv\n" + "Y29sbGVjdGlvbnMvYXBpL2Jsb2NrL3ByZWRpY2F0ZS9QcmVkaWNhdGU7eHIAMGNvbS5ncy5jb2xs\n" + "ZWN0aW9ucy5pbXBsLmJsb2NrLmZhY3RvcnkuUHJlZGljYXRlcwAAAAAAAAABAgAAeHBwcA==", Predicates.attributePredicate(null, null)); } @Test public void ifTrue() { Verify.assertSerializedForm( 1L, "rO0ABXNyAD5jb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "QXR0cmlidXRlVHJ1ZQAAAAAAAAABAgAAeHIAQ2NvbS5ncy5jb2xsZWN0aW9ucy5pbXBsLmJsb2Nr\n" + "LmZhY3RvcnkuUHJlZGljYXRlcyRBdHRyaWJ1dGVQcmVkaWNhdGUAAAAAAAAAAQIAAkwACGZ1bmN0\n" + "aW9udAAwTGNvbS9ncy9jb2xsZWN0aW9ucy9hcGkvYmxvY2svZnVuY3Rpb24vRnVuY3Rpb247TAAJ\n" + "cHJlZGljYXRldAAyTGNvbS9ncy9jb2xsZWN0aW9ucy9hcGkvYmxvY2svcHJlZGljYXRlL1ByZWRp\n" + "Y2F0ZTt4cgAwY29tLmdzLmNvbGxlY3Rpb25zLmltcGwuYmxvY2suZmFjdG9yeS5QcmVkaWNhdGVz\n" + "AAAAAAAAAAECAAB4cHBzcgA7Y29tLmdzLmNvbGxlY3Rpb25zLmltcGwuYmxvY2suZmFjdG9yeS5Q\n" + "cmVkaWNhdGVzJFRydWVFcXVhbHMAAAAAAAAAAQIAAHhw", Predicates.ifTrue(null)); } @Test public void ifFalse() { Verify.assertSerializedForm( 1L, "rO0ABXNyAD9jb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "QXR0cmlidXRlRmFsc2UAAAAAAAAAAQIAAHhyAENjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9j\n" + "ay5mYWN0b3J5LlByZWRpY2F0ZXMkQXR0cmlidXRlUHJlZGljYXRlAAAAAAAAAAECAAJMAAhmdW5j\n" + "dGlvbnQAMExjb20vZ3MvY29sbGVjdGlvbnMvYXBpL2Jsb2NrL2Z1bmN0aW9uL0Z1bmN0aW9uO0wA\n" + "CXByZWRpY2F0ZXQAMkxjb20vZ3MvY29sbGVjdGlvbnMvYXBpL2Jsb2NrL3ByZWRpY2F0ZS9QcmVk\n" + "aWNhdGU7eHIAMGNvbS5ncy5jb2xsZWN0aW9ucy5pbXBsLmJsb2NrLmZhY3RvcnkuUHJlZGljYXRl\n" + "cwAAAAAAAAABAgAAeHBwc3IAPGNvbS5ncy5jb2xsZWN0aW9ucy5pbXBsLmJsb2NrLmZhY3Rvcnku\n" + "UHJlZGljYXRlcyRGYWxzZUVxdWFscwAAAAAAAAABAgAAeHA=", Predicates.ifFalse(null)); } @Test public void anySatisfy() { Verify.assertSerializedForm( 1L, "rO0ABXNyADtjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "QW55U2F0aXNmeQAAAAAAAAABAgABTAAJcHJlZGljYXRldAAyTGNvbS9ncy9jb2xsZWN0aW9ucy9h\n" + "cGkvYmxvY2svcHJlZGljYXRlL1ByZWRpY2F0ZTt4cgAwY29tLmdzLmNvbGxlY3Rpb25zLmltcGwu\n" + "YmxvY2suZmFjdG9yeS5QcmVkaWNhdGVzAAAAAAAAAAECAAB4cHA=", Predicates.anySatisfy(null)); } @Test public void allSatisfy() { Verify.assertSerializedForm( 1L, "rO0ABXNyADtjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "QWxsU2F0aXNmeQAAAAAAAAABAgABTAAJcHJlZGljYXRldAAyTGNvbS9ncy9jb2xsZWN0aW9ucy9h\n" + "cGkvYmxvY2svcHJlZGljYXRlL1ByZWRpY2F0ZTt4cgAwY29tLmdzLmNvbGxlY3Rpb25zLmltcGwu\n" + "YmxvY2suZmFjdG9yeS5QcmVkaWNhdGVzAAAAAAAAAAECAAB4cHA=", Predicates.allSatisfy(null)); } @Test public void assignableFrom() { Verify.assertSerializedForm( 1L, "rO0ABXNyAEhjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "QXNzaWduYWJsZUZyb21QcmVkaWNhdGUAAAAAAAAAAQIAAUwABWNsYXp6dAARTGphdmEvbGFuZy9D\n" + "bGFzczt4cgAwY29tLmdzLmNvbGxlY3Rpb25zLmltcGwuYmxvY2suZmFjdG9yeS5QcmVkaWNhdGVz\n" + "AAAAAAAAAAECAAB4cHZyABBqYXZhLmxhbmcuT2JqZWN0AAAAAAAAAAAAAAB4cA==", Predicates.assignableFrom(Object.class)); } @Test public void instanceOf() { Verify.assertSerializedForm( 1L, "rO0ABXNyAERjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "SW5zdGFuY2VPZlByZWRpY2F0ZQAAAAAAAAABAgABTAAFY2xhenp0ABFMamF2YS9sYW5nL0NsYXNz\n" + "O3hyADBjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMAAAAA\n" + "AAAAAQIAAHhwdnIAEGphdmEubGFuZy5PYmplY3QAAAAAAAAAAAAAAHhw", Predicates.instanceOf(Object.class)); } @Test public void notInstanceOf() { Verify.assertSerializedForm( 1L, "rO0ABXNyAEdjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "Tm90SW5zdGFuY2VPZlByZWRpY2F0ZQAAAAAAAAABAgABTAAFY2xhenp0ABFMamF2YS9sYW5nL0Ns\n" + "YXNzO3hyADBjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMA\n" + "AAAAAAAAAQIAAHhwdnIAEGphdmEubGFuZy5PYmplY3QAAAAAAAAAAAAAAHhw", Predicates.notInstanceOf(Object.class)); } @Test public void lessThan() { Verify.assertSerializedForm( 1L, "rO0ABXNyAEJjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "TGVzc1RoYW5QcmVkaWNhdGUAAAAAAAAAAQIAAHhyAENjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5i\n" + "bG9jay5mYWN0b3J5LlByZWRpY2F0ZXMkQ29tcGFyZVRvUHJlZGljYXRlAAAAAAAAAAECAAFMAAlj\n" + "b21wYXJlVG90ABZMamF2YS9sYW5nL0NvbXBhcmFibGU7eHIAMGNvbS5ncy5jb2xsZWN0aW9ucy5p\n" + "bXBsLmJsb2NrLmZhY3RvcnkuUHJlZGljYXRlcwAAAAAAAAABAgAAeHBw", Predicates.lessThan((String) null)); } @Test public void lessThanOrEqualTo() { Verify.assertSerializedForm( 1L, "rO0ABXNyAEljb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "TGVzc1RoYW5PckVxdWFsUHJlZGljYXRlAAAAAAAAAAECAAB4cgBDY29tLmdzLmNvbGxlY3Rpb25z\n" + "LmltcGwuYmxvY2suZmFjdG9yeS5QcmVkaWNhdGVzJENvbXBhcmVUb1ByZWRpY2F0ZQAAAAAAAAAB\n" + "AgABTAAJY29tcGFyZVRvdAAWTGphdmEvbGFuZy9Db21wYXJhYmxlO3hyADBjb20uZ3MuY29sbGVj\n" + "dGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMAAAAAAAAAAQIAAHhwcA==", Predicates.lessThanOrEqualTo((String) null)); } @Test public void greaterThan() { Verify.assertSerializedForm( 1L, "rO0ABXNyAEVjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "R3JlYXRlclRoYW5QcmVkaWNhdGUAAAAAAAAAAQIAAHhyAENjb20uZ3MuY29sbGVjdGlvbnMuaW1w\n" + "bC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMkQ29tcGFyZVRvUHJlZGljYXRlAAAAAAAAAAECAAFM\n" + "AAljb21wYXJlVG90ABZMamF2YS9sYW5nL0NvbXBhcmFibGU7eHIAMGNvbS5ncy5jb2xsZWN0aW9u\n" + "cy5pbXBsLmJsb2NrLmZhY3RvcnkuUHJlZGljYXRlcwAAAAAAAAABAgAAeHBw", Predicates.greaterThan((String) null)); } @Test public void greaterThanOrEqualTo() { Verify.assertSerializedForm( 1L, "rO0ABXNyAExjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "R3JlYXRlclRoYW5PckVxdWFsUHJlZGljYXRlAAAAAAAAAAECAAB4cgBDY29tLmdzLmNvbGxlY3Rp\n" + "b25zLmltcGwuYmxvY2suZmFjdG9yeS5QcmVkaWNhdGVzJENvbXBhcmVUb1ByZWRpY2F0ZQAAAAAA\n" + "AAABAgABTAAJY29tcGFyZVRvdAAWTGphdmEvbGFuZy9Db21wYXJhYmxlO3hyADBjb20uZ3MuY29s\n" + "bGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMAAAAAAAAAAQIAAHhwcA==", Predicates.greaterThanOrEqualTo((String) null)); } @Test public void equal() { Verify.assertSerializedForm( 1L, "rO0ABXNyAD9jb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "RXF1YWxQcmVkaWNhdGUAAAAAAAAAAQIAAUwADWNvbXBhcmVPYmplY3R0ABJMamF2YS9sYW5nL09i\n" + "amVjdDt4cgAwY29tLmdzLmNvbGxlY3Rpb25zLmltcGwuYmxvY2suZmFjdG9yeS5QcmVkaWNhdGVz\n" + "AAAAAAAAAAECAAB4cHNyABFqYXZhLmxhbmcuSW50ZWdlchLioKT3gYc4AgABSQAFdmFsdWV4cgAQ\n" + "amF2YS5sYW5nLk51bWJlcoaslR0LlOCLAgAAeHAAAAAA", Predicates.equal(0)); } @Test public void notEqual() { Verify.assertSerializedForm( 1L, "rO0ABXNyAEJjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "Tm90RXF1YWxQcmVkaWNhdGUAAAAAAAAAAQIAAUwADWNvbXBhcmVPYmplY3R0ABJMamF2YS9sYW5n\n" + "L09iamVjdDt4cgAwY29tLmdzLmNvbGxlY3Rpb25zLmltcGwuYmxvY2suZmFjdG9yeS5QcmVkaWNh\n" + "dGVzAAAAAAAAAAECAAB4cHNyABFqYXZhLmxhbmcuSW50ZWdlchLioKT3gYc4AgABSQAFdmFsdWV4\n" + "cgAQamF2YS5sYW5nLk51bWJlcoaslR0LlOCLAgAAeHAAAAAA", Predicates.notEqual(0)); } @Test public void betweenExclusive() { Verify.assertSerializedForm( 1L, "rO0ABXNyAEFjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "QmV0d2VlbkV4Y2x1c2l2ZQAAAAAAAAABAgAAeHIAP2NvbS5ncy5jb2xsZWN0aW9ucy5pbXBsLmJs\n" + "b2NrLmZhY3RvcnkuUHJlZGljYXRlcyRSYW5nZVByZWRpY2F0ZQAAAAAAAAABAgABTAALY29tcGFy\n" + "ZUZyb210ABZMamF2YS9sYW5nL0NvbXBhcmFibGU7eHIAQ2NvbS5ncy5jb2xsZWN0aW9ucy5pbXBs\n" + "LmJsb2NrLmZhY3RvcnkuUHJlZGljYXRlcyRDb21wYXJlVG9QcmVkaWNhdGUAAAAAAAAAAQIAAUwA\n" + "CWNvbXBhcmVUb3EAfgACeHIAMGNvbS5ncy5jb2xsZWN0aW9ucy5pbXBsLmJsb2NrLmZhY3Rvcnku\n" + "UHJlZGljYXRlcwAAAAAAAAABAgAAeHB0AABxAH4ABg==", Predicates.betweenExclusive("", "")); } @Test public void betweenInclusive() { Verify.assertSerializedForm( 1L, "rO0ABXNyAEFjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "QmV0d2VlbkluY2x1c2l2ZQAAAAAAAAABAgAAeHIAP2NvbS5ncy5jb2xsZWN0aW9ucy5pbXBsLmJs\n" + "b2NrLmZhY3RvcnkuUHJlZGljYXRlcyRSYW5nZVByZWRpY2F0ZQAAAAAAAAABAgABTAALY29tcGFy\n" + "ZUZyb210ABZMamF2YS9sYW5nL0NvbXBhcmFibGU7eHIAQ2NvbS5ncy5jb2xsZWN0aW9ucy5pbXBs\n" + "LmJsb2NrLmZhY3RvcnkuUHJlZGljYXRlcyRDb21wYXJlVG9QcmVkaWNhdGUAAAAAAAAAAQIAAUwA\n" + "CWNvbXBhcmVUb3EAfgACeHIAMGNvbS5ncy5jb2xsZWN0aW9ucy5pbXBsLmJsb2NrLmZhY3Rvcnku\n" + "UHJlZGljYXRlcwAAAAAAAAABAgAAeHB0AABxAH4ABg==", Predicates.betweenInclusive("", "")); } @Test public void betweenInclusiveFrom() { Verify.assertSerializedForm( 1L, "rO0ABXNyAEVjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "QmV0d2VlbkluY2x1c2l2ZUZyb20AAAAAAAAAAQIAAHhyAD9jb20uZ3MuY29sbGVjdGlvbnMuaW1w\n" + "bC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMkUmFuZ2VQcmVkaWNhdGUAAAAAAAAAAQIAAUwAC2Nv\n" + "bXBhcmVGcm9tdAAWTGphdmEvbGFuZy9Db21wYXJhYmxlO3hyAENjb20uZ3MuY29sbGVjdGlvbnMu\n" + "aW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMkQ29tcGFyZVRvUHJlZGljYXRlAAAAAAAAAAEC\n" + "AAFMAAljb21wYXJlVG9xAH4AAnhyADBjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0\n" + "b3J5LlByZWRpY2F0ZXMAAAAAAAAAAQIAAHhwdAAAcQB+AAY=", Predicates.betweenInclusiveFrom("", "")); } @Test public void betweenInclusiveTo() { Verify.assertSerializedForm( 1L, "rO0ABXNyAENjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "QmV0d2VlbkluY2x1c2l2ZVRvAAAAAAAAAAECAAB4cgA/Y29tLmdzLmNvbGxlY3Rpb25zLmltcGwu\n" + "YmxvY2suZmFjdG9yeS5QcmVkaWNhdGVzJFJhbmdlUHJlZGljYXRlAAAAAAAAAAECAAFMAAtjb21w\n" + "YXJlRnJvbXQAFkxqYXZhL2xhbmcvQ29tcGFyYWJsZTt4cgBDY29tLmdzLmNvbGxlY3Rpb25zLmlt\n" + "cGwuYmxvY2suZmFjdG9yeS5QcmVkaWNhdGVzJENvbXBhcmVUb1ByZWRpY2F0ZQAAAAAAAAABAgAB\n" + "TAAJY29tcGFyZVRvcQB+AAJ4cgAwY29tLmdzLmNvbGxlY3Rpb25zLmltcGwuYmxvY2suZmFjdG9y\n" + "eS5QcmVkaWNhdGVzAAAAAAAAAAECAAB4cHQAAHEAfgAG", Predicates.betweenInclusiveTo("", "")); } @Test public void and() { Verify.assertSerializedForm( 1L, "rO0ABXNyAD1jb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "QW5kUHJlZGljYXRlAAAAAAAAAAECAAJMAARsZWZ0dAAyTGNvbS9ncy9jb2xsZWN0aW9ucy9hcGkv\n" + "YmxvY2svcHJlZGljYXRlL1ByZWRpY2F0ZTtMAAVyaWdodHEAfgABeHIAMGNvbS5ncy5jb2xsZWN0\n" + "aW9ucy5pbXBsLmJsb2NrLmZhY3RvcnkuUHJlZGljYXRlcwAAAAAAAAABAgAAeHBwcA==", Predicates.and(null, null)); } @Test public void andCollection() { Verify.assertSerializedForm( 1L, "rO0ABXNyAEVjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "QW5kSXRlcmFibGVQcmVkaWNhdGUAAAAAAAAAAQIAAHhyAEpjb20uZ3MuY29sbGVjdGlvbnMuaW1w\n" + "bC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMkQWJzdHJhY3RJdGVyYWJsZVByZWRpY2F0ZQAAAAAA\n" + "AAABAgABTAAKcHJlZGljYXRlc3QAFExqYXZhL2xhbmcvSXRlcmFibGU7eHIAMGNvbS5ncy5jb2xs\n" + "ZWN0aW9ucy5pbXBsLmJsb2NrLmZhY3RvcnkuUHJlZGljYXRlcwAAAAAAAAABAgAAeHBzcgAaamF2\n" + "YS51dGlsLkFycmF5cyRBcnJheUxpc3TZpDy+zYgG0gIAAVsAAWF0ABNbTGphdmEvbGFuZy9PYmpl\n" + "Y3Q7eHB1cgAzW0xjb20uZ3MuY29sbGVjdGlvbnMuYXBpLmJsb2NrLnByZWRpY2F0ZS5QcmVkaWNh\n" + "dGU7Q7YSGUSRPkwCAAB4cAAAAANwcHA=", Predicates.and(null, null, null)); } @Test public void or() { Verify.assertSerializedForm( 1L, "rO0ABXNyADxjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "T3JQcmVkaWNhdGUAAAAAAAAAAQIAAkwABGxlZnR0ADJMY29tL2dzL2NvbGxlY3Rpb25zL2FwaS9i\n" + "bG9jay9wcmVkaWNhdGUvUHJlZGljYXRlO0wABXJpZ2h0cQB+AAF4cgAwY29tLmdzLmNvbGxlY3Rp\n" + "b25zLmltcGwuYmxvY2suZmFjdG9yeS5QcmVkaWNhdGVzAAAAAAAAAAECAAB4cHBw", Predicates.or(null, null)); } @Test public void orCollection() { Verify.assertSerializedForm( 1L, "rO0ABXNyAERjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "T3JJdGVyYWJsZVByZWRpY2F0ZQAAAAAAAAABAgAAeHIASmNvbS5ncy5jb2xsZWN0aW9ucy5pbXBs\n" + "LmJsb2NrLmZhY3RvcnkuUHJlZGljYXRlcyRBYnN0cmFjdEl0ZXJhYmxlUHJlZGljYXRlAAAAAAAA\n" + "AAECAAFMAApwcmVkaWNhdGVzdAAUTGphdmEvbGFuZy9JdGVyYWJsZTt4cgAwY29tLmdzLmNvbGxl\n" + "Y3Rpb25zLmltcGwuYmxvY2suZmFjdG9yeS5QcmVkaWNhdGVzAAAAAAAAAAECAAB4cHNyABpqYXZh\n" + "LnV0aWwuQXJyYXlzJEFycmF5TGlzdNmkPL7NiAbSAgABWwABYXQAE1tMamF2YS9sYW5nL09iamVj\n" + "dDt4cHVyADNbTGNvbS5ncy5jb2xsZWN0aW9ucy5hcGkuYmxvY2sucHJlZGljYXRlLlByZWRpY2F0\n" + "ZTtDthIZRJE+TAIAAHhwAAAAA3BwcA==", Predicates.or(null, null, null)); } @Test public void neither() { Verify.assertSerializedForm( 1L, "rO0ABXNyAEFjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "TmVpdGhlclByZWRpY2F0ZQAAAAAAAAABAgACTAAEbGVmdHQAMkxjb20vZ3MvY29sbGVjdGlvbnMv\n" + "YXBpL2Jsb2NrL3ByZWRpY2F0ZS9QcmVkaWNhdGU7TAAFcmlnaHRxAH4AAXhyADBjb20uZ3MuY29s\n" + "bGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMAAAAAAAAAAQIAAHhwcHA=", Predicates.neither(null, null)); } @Test public void noneOf() { Verify.assertSerializedForm( 1L, "rO0ABXNyAEhjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "Tm9uZU9mSXRlcmFibGVQcmVkaWNhdGUAAAAAAAAAAQIAAHhyAEpjb20uZ3MuY29sbGVjdGlvbnMu\n" + "aW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMkQWJzdHJhY3RJdGVyYWJsZVByZWRpY2F0ZQAA\n" + "AAAAAAABAgABTAAKcHJlZGljYXRlc3QAFExqYXZhL2xhbmcvSXRlcmFibGU7eHIAMGNvbS5ncy5j\n" + "b2xsZWN0aW9ucy5pbXBsLmJsb2NrLmZhY3RvcnkuUHJlZGljYXRlcwAAAAAAAAABAgAAeHBzcgAa\n" + "amF2YS51dGlsLkFycmF5cyRBcnJheUxpc3TZpDy+zYgG0gIAAVsAAWF0ABNbTGphdmEvbGFuZy9P\n" + "YmplY3Q7eHB1cgAzW0xjb20uZ3MuY29sbGVjdGlvbnMuYXBpLmJsb2NrLnByZWRpY2F0ZS5QcmVk\n" + "aWNhdGU7Q7YSGUSRPkwCAAB4cAAAAANwcHA=", Predicates.noneOf(null, null, null)); } @Test public void not() { Verify.assertSerializedForm( 1L, "rO0ABXNyAD1jb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "Tm90UHJlZGljYXRlAAAAAAAAAAECAAFMAAlwcmVkaWNhdGV0ADJMY29tL2dzL2NvbGxlY3Rpb25z\n" + "L2FwaS9ibG9jay9wcmVkaWNhdGUvUHJlZGljYXRlO3hyADBjb20uZ3MuY29sbGVjdGlvbnMuaW1w\n" + "bC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMAAAAAAAAAAQIAAHhwcA==", Predicates.not(null)); } @Test public void in_SetIterable() { Verify.assertSerializedForm( 1L, "rO0ABXNyAEdjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "SW5TZXRJdGVyYWJsZVByZWRpY2F0ZQAAAAAAAAABAgABTAALc2V0SXRlcmFibGV0AChMY29tL2dz\n" + "L2NvbGxlY3Rpb25zL2FwaS9zZXQvU2V0SXRlcmFibGU7eHIAMGNvbS5ncy5jb2xsZWN0aW9ucy5p\n" + "bXBsLmJsb2NrLmZhY3RvcnkuUHJlZGljYXRlcwAAAAAAAAABAgAAeHBzcgBEY29tLmdzLmNvbGxl\n" + "Y3Rpb25zLmltcGwuc2V0LmltbXV0YWJsZS5JbW11dGFibGVTZXRTZXJpYWxpemF0aW9uUHJveHkA\n" + "AAAAAAAAAQwAAHhwdwQAAAAAeA==", Predicates.in(Sets.immutable.with())); } @Test public void notIn_SetIterable() { Verify.assertSerializedForm( 1L, "rO0ABXNyAEpjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "Tm90SW5TZXRJdGVyYWJsZVByZWRpY2F0ZQAAAAAAAAABAgABTAALc2V0SXRlcmFibGV0AChMY29t\n" + "L2dzL2NvbGxlY3Rpb25zL2FwaS9zZXQvU2V0SXRlcmFibGU7eHIAMGNvbS5ncy5jb2xsZWN0aW9u\n" + "cy5pbXBsLmJsb2NrLmZhY3RvcnkuUHJlZGljYXRlcwAAAAAAAAABAgAAeHBzcgBEY29tLmdzLmNv\n" + "bGxlY3Rpb25zLmltcGwuc2V0LmltbXV0YWJsZS5JbW11dGFibGVTZXRTZXJpYWxpemF0aW9uUHJv\n" + "eHkAAAAAAAAAAQwAAHhwdwQAAAAAeA==", Predicates.notIn(Sets.immutable.with())); } @Test public void in_Set() { Verify.assertSerializedForm( 1L, "rO0ABXNyAD9jb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "SW5TZXRQcmVkaWNhdGUAAAAAAAAAAQIAAUwAA3NldHQAD0xqYXZhL3V0aWwvU2V0O3hyADBjb20u\n" + "Z3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMAAAAAAAAAAQIAAHhw\n" + "c3IAIGphdmEudXRpbC5Db2xsZWN0aW9ucyRDaGVja2VkU2V0QSSbonrZ/6sCAAB4cgAnamF2YS51\n" + "dGlsLkNvbGxlY3Rpb25zJENoZWNrZWRDb2xsZWN0aW9uFelt/RjmzG8CAANMAAFjdAAWTGphdmEv\n" + "dXRpbC9Db2xsZWN0aW9uO0wABHR5cGV0ABFMamF2YS9sYW5nL0NsYXNzO1sAFnplcm9MZW5ndGhF\n" + "bGVtZW50QXJyYXl0ABNbTGphdmEvbGFuZy9PYmplY3Q7eHBzcgAuY29tLmdzLmNvbGxlY3Rpb25z\n" + "LmltcGwuc2V0Lm11dGFibGUuVW5pZmllZFNldAAAAAAAAAABDAAAeHB3CAAAAAA/QAAAeHZyABBq\n" + "YXZhLmxhbmcuT2JqZWN0AAAAAAAAAAAAAAB4cHA=", Predicates.in(Collections.checkedSet(Sets.mutable.with(), Object.class))); } @Test public void notIn_Set() { Verify.assertSerializedForm( 1L, "rO0ABXNyAEJjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "Tm90SW5TZXRQcmVkaWNhdGUAAAAAAAAAAQIAAUwAA3NldHQAD0xqYXZhL3V0aWwvU2V0O3hyADBj\n" + "b20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMAAAAAAAAAAQIA\n" + "AHhwc3IAIGphdmEudXRpbC5Db2xsZWN0aW9ucyRDaGVja2VkU2V0QSSbonrZ/6sCAAB4cgAnamF2\n" + "YS51dGlsLkNvbGxlY3Rpb25zJENoZWNrZWRDb2xsZWN0aW9uFelt/RjmzG8CAANMAAFjdAAWTGph\n" + "dmEvdXRpbC9Db2xsZWN0aW9uO0wABHR5cGV0ABFMamF2YS9sYW5nL0NsYXNzO1sAFnplcm9MZW5n\n" + "dGhFbGVtZW50QXJyYXl0ABNbTGphdmEvbGFuZy9PYmplY3Q7eHBzcgAuY29tLmdzLmNvbGxlY3Rp\n" + "b25zLmltcGwuc2V0Lm11dGFibGUuVW5pZmllZFNldAAAAAAAAAABDAAAeHB3CAAAAAA/QAAAeHZy\n" + "ABBqYXZhLmxhbmcuT2JqZWN0AAAAAAAAAAAAAAB4cHA=", Predicates.notIn(Collections.checkedSet(Sets.mutable.with(), Object.class))); } @Test public void in_small_Collection() { Verify.assertSerializedForm( 1L, "rO0ABXNyAEZjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "SW5Db2xsZWN0aW9uUHJlZGljYXRlAAAAAAAAAAECAAFMAApjb2xsZWN0aW9udAAWTGphdmEvdXRp\n" + "bC9Db2xsZWN0aW9uO3hyADBjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlBy\n" + "ZWRpY2F0ZXMAAAAAAAAAAQIAAHhwc3IALWNvbS5ncy5jb2xsZWN0aW9ucy5pbXBsLmxpc3QubXV0\n" + "YWJsZS5GYXN0TGlzdAAAAAAAAAABDAAAeHB3BAAAAAB4", Predicates.in(Lists.mutable.with())); } @Test public void notIn_small_Collection() { Verify.assertSerializedForm( 1L, "rO0ABXNyAEljb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "Tm90SW5Db2xsZWN0aW9uUHJlZGljYXRlAAAAAAAAAAECAAFMAApjb2xsZWN0aW9udAAWTGphdmEv\n" + "dXRpbC9Db2xsZWN0aW9uO3hyADBjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5\n" + "LlByZWRpY2F0ZXMAAAAAAAAAAQIAAHhwc3IALWNvbS5ncy5jb2xsZWN0aW9ucy5pbXBsLmxpc3Qu\n" + "bXV0YWJsZS5GYXN0TGlzdAAAAAAAAAABDAAAeHB3BAAAAAB4", Predicates.notIn(Lists.mutable.with())); } @Test public void isNull() { Verify.assertSerializedForm( 1L, "rO0ABXNyADdjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "SXNOdWxsAAAAAAAAAAECAAB4cgAwY29tLmdzLmNvbGxlY3Rpb25zLmltcGwuYmxvY2suZmFjdG9y\n" + "eS5QcmVkaWNhdGVzAAAAAAAAAAECAAB4cA==", Predicates.isNull()); } @Test public void notNull() { Verify.assertSerializedForm( 1L, "rO0ABXNyADhjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "Tm90TnVsbAAAAAAAAAABAgAAeHIAMGNvbS5ncy5jb2xsZWN0aW9ucy5pbXBsLmJsb2NrLmZhY3Rv\n" + "cnkuUHJlZGljYXRlcwAAAAAAAAABAgAAeHA=", Predicates.notNull()); } @Test public void sameAs() { Verify.assertSerializedForm( 1L, "rO0ABXNyAEJjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "SWRlbnRpdHlQcmVkaWNhdGUAAAAAAAAAAQIAAUwABHR3aW50ABJMamF2YS9sYW5nL09iamVjdDt4\n" + "cgAwY29tLmdzLmNvbGxlY3Rpb25zLmltcGwuYmxvY2suZmFjdG9yeS5QcmVkaWNhdGVzAAAAAAAA\n" + "AAECAAB4cHA=", Predicates.sameAs(null)); } @Test public void notSameAs() { Verify.assertSerializedForm( 1L, "rO0ABXNyAEVjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "Tm90SWRlbnRpdHlQcmVkaWNhdGUAAAAAAAAAAQIAAUwABHR3aW50ABJMamF2YS9sYW5nL09iamVj\n" + "dDt4cgAwY29tLmdzLmNvbGxlY3Rpb25zLmltcGwuYmxvY2suZmFjdG9yeS5QcmVkaWNhdGVzAAAA\n" + "AAAAAAECAAB4cHA=", Predicates.notSameAs(null)); } @Test public void synchronizedEach() { Verify.assertSerializedForm( 1L, "rO0ABXNyAEZjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "U3luY2hyb25pemVkUHJlZGljYXRlAAAAAAAAAAECAAFMAAlwcmVkaWNhdGV0ADJMY29tL2dzL2Nv\n" + "bGxlY3Rpb25zL2FwaS9ibG9jay9wcmVkaWNhdGUvUHJlZGljYXRlO3hwcA==", Predicates.synchronizedEach(null)); } @Test public void subClass() { Verify.assertSerializedForm( 1L, "rO0ABXNyAEJjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "U3ViY2xhc3NQcmVkaWNhdGUAAAAAAAAAAQIAAUwABmFDbGFzc3QAEUxqYXZhL2xhbmcvQ2xhc3M7\n" + "eHIAMGNvbS5ncy5jb2xsZWN0aW9ucy5pbXBsLmJsb2NrLmZhY3RvcnkuUHJlZGljYXRlcwAAAAAA\n" + "AAABAgAAeHB2cgAQamF2YS5sYW5nLk9iamVjdAAAAAAAAAAAAAAAeHA=", Predicates.subClass(Object.class)); } @Test public void superClass() { Verify.assertSerializedForm( 1L, "rO0ABXNyAERjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "U3VwZXJjbGFzc1ByZWRpY2F0ZQAAAAAAAAABAgABTAAGYUNsYXNzdAARTGphdmEvbGFuZy9DbGFz\n" + "czt4cgAwY29tLmdzLmNvbGxlY3Rpb25zLmltcGwuYmxvY2suZmFjdG9yeS5QcmVkaWNhdGVzAAAA\n" + "AAAAAAECAAB4cHZyABBqYXZhLmxhbmcuT2JqZWN0AAAAAAAAAAAAAAB4cA==", Predicates.superClass(Object.class)); } @Test public void bind() { Verify.assertSerializedForm( 1L, "rO0ABXNyAD9jb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlByZWRpY2F0ZXMk\n" + "QmluZFByZWRpY2F0ZTIAAAAAAAAAAQIAAkwACXBhcmFtZXRlcnQAEkxqYXZhL2xhbmcvT2JqZWN0\n" + "O0wACXByZWRpY2F0ZXQAM0xjb20vZ3MvY29sbGVjdGlvbnMvYXBpL2Jsb2NrL3ByZWRpY2F0ZS9Q\n" + "cmVkaWNhdGUyO3hwcHNyADdjb20uZ3MuY29sbGVjdGlvbnMuaW1wbC5ibG9jay5mYWN0b3J5LlBy\n" + "ZWRpY2F0ZXMyJEVxdWFsAAAAAAAAAAECAAB4cgAxY29tLmdzLmNvbGxlY3Rpb25zLmltcGwuYmxv\n" + "Y2suZmFjdG9yeS5QcmVkaWNhdGVzMgAAAAAAAAABAgAAeHA=", Predicates.bind(Predicates2.equal(), null)); } }