public void PropertyManipulation(int propertyCount) { var data = new InternalEntityEntry.StateData(propertyCount); Assert.False(data.AnyPropertiesFlagged()); for (var i = 0; i < propertyCount; i++) { data.FlagProperty(i, true); for (var j = 0; j < propertyCount; j++) { Assert.Equal(j <= i, data.IsPropertyFlagged(j)); } Assert.True(data.AnyPropertiesFlagged()); } for (var i = 0; i < propertyCount; i++) { data.FlagProperty(i, false); for (var j = 0; j < propertyCount; j++) { Assert.Equal(j > i, data.IsPropertyFlagged(j)); } Assert.Equal(i < propertyCount - 1, data.AnyPropertiesFlagged()); } for (var i = 0; i < propertyCount; i++) { Assert.False(data.IsPropertyFlagged(i)); } data.FlagAllProperties(propertyCount, isFlagged: true); Assert.Equal(propertyCount > 0, data.AnyPropertiesFlagged()); for (var i = 0; i < propertyCount; i++) { Assert.True(data.IsPropertyFlagged(i)); } data.FlagAllProperties(propertyCount, isFlagged: false); Assert.False(data.AnyPropertiesFlagged()); for (var i = 0; i < propertyCount; i++) { Assert.False(data.IsPropertyFlagged(i)); } }
private void PropertyManipulation( int propertyCount, InternalEntityEntry.PropertyFlag propertyFlag, InternalEntityEntry.PropertyFlag unusedFlag1, InternalEntityEntry.PropertyFlag unusedFlag2) { var data = new InternalEntityEntry.StateData(propertyCount); Assert.False(data.AnyPropertiesFlagged(propertyFlag)); Assert.False(data.AnyPropertiesFlagged(unusedFlag1)); Assert.False(data.AnyPropertiesFlagged(unusedFlag2)); for (var i = 0; i < propertyCount; i++) { data.FlagProperty(i, propertyFlag, true); for (var j = 0; j < propertyCount; j++) { Assert.Equal(j <= i, data.IsPropertyFlagged(j, propertyFlag)); Assert.False(data.IsPropertyFlagged(j, unusedFlag1)); Assert.False(data.IsPropertyFlagged(j, unusedFlag2)); } Assert.True(data.AnyPropertiesFlagged(propertyFlag)); Assert.False(data.AnyPropertiesFlagged(unusedFlag1)); Assert.False(data.AnyPropertiesFlagged(unusedFlag2)); } for (var i = 0; i < propertyCount; i++) { data.FlagProperty(i, propertyFlag, false); for (var j = 0; j < propertyCount; j++) { Assert.Equal(j > i, data.IsPropertyFlagged(j, propertyFlag)); Assert.False(data.IsPropertyFlagged(j, unusedFlag1)); Assert.False(data.IsPropertyFlagged(j, unusedFlag2)); } Assert.Equal(i < propertyCount - 1, data.AnyPropertiesFlagged(propertyFlag)); Assert.False(data.AnyPropertiesFlagged(unusedFlag1)); Assert.False(data.AnyPropertiesFlagged(unusedFlag2)); } for (var i = 0; i < propertyCount; i++) { Assert.False(data.IsPropertyFlagged(i, propertyFlag)); Assert.False(data.IsPropertyFlagged(i, unusedFlag1)); Assert.False(data.IsPropertyFlagged(i, unusedFlag2)); } data.FlagAllProperties(propertyCount, propertyFlag, flagged: true); Assert.Equal(propertyCount > 0, data.AnyPropertiesFlagged(propertyFlag)); Assert.False(data.AnyPropertiesFlagged(unusedFlag1)); Assert.False(data.AnyPropertiesFlagged(unusedFlag2)); for (var i = 0; i < propertyCount; i++) { Assert.True(data.IsPropertyFlagged(i, propertyFlag)); Assert.False(data.IsPropertyFlagged(i, unusedFlag1)); Assert.False(data.IsPropertyFlagged(i, unusedFlag2)); } data.FlagAllProperties(propertyCount, propertyFlag, flagged: false); Assert.False(data.AnyPropertiesFlagged(propertyFlag)); Assert.False(data.AnyPropertiesFlagged(unusedFlag1)); Assert.False(data.AnyPropertiesFlagged(unusedFlag2)); for (var i = 0; i < propertyCount; i++) { Assert.False(data.IsPropertyFlagged(i, propertyFlag)); Assert.False(data.IsPropertyFlagged(i, unusedFlag1)); Assert.False(data.IsPropertyFlagged(i, unusedFlag2)); } }