// Инициализация потоком public DataStreamTable(HashSet <SemilatticeStreamValue> stream) { if (stream == null) { Table = new Dictionary <string, SemilatticeValue>(); } else { Table = DataStreamValue.CreateTableByStream(stream); } }
static public void TestForStreamValueOperator() { var set1 = new HashSet <SemilatticeStreamValue>() { new SemilatticeStreamValue("a", new SemilatticeValue(SemilatticeValueEnum.CONST, "12")), new SemilatticeStreamValue("b", new SemilatticeValue(SemilatticeValueEnum.CONST, "13")), new SemilatticeStreamValue("c", new SemilatticeValue(SemilatticeValueEnum.CONST, "14")) }; var dataStreamValue1 = new DataStreamValue(set1); var set2 = new HashSet <SemilatticeStreamValue>() { new SemilatticeStreamValue("a", new SemilatticeValue(SemilatticeValueEnum.CONST, "12")), new SemilatticeStreamValue("b", new SemilatticeValue(SemilatticeValueEnum.CONST, "13")), new SemilatticeStreamValue("c", new SemilatticeValue(SemilatticeValueEnum.CONST, "14")) }; var dataStreamValue2 = new DataStreamValue(set2); var dataStreamValue3 = dataStreamValue1 ^ dataStreamValue2; var table3 = DataStreamValue.CreateTableByStream(dataStreamValue3.Stream); Debug.Assert(table3["a"] == new SemilatticeValue(SemilatticeValueEnum.CONST, "12")); Debug.Assert(table3["b"] == new SemilatticeValue(SemilatticeValueEnum.CONST, "13")); Debug.Assert(table3["c"] == new SemilatticeValue(SemilatticeValueEnum.CONST, "14")); set1 = new HashSet <SemilatticeStreamValue>() { new SemilatticeStreamValue("a", new SemilatticeValue(SemilatticeValueEnum.CONST, "12")), new SemilatticeStreamValue("b", new SemilatticeValue(SemilatticeValueEnum.CONST, "13")), new SemilatticeStreamValue("c", new SemilatticeValue(SemilatticeValueEnum.CONST, "14")) }; dataStreamValue1 = new DataStreamValue(set1); set2 = new HashSet <SemilatticeStreamValue>() { new SemilatticeStreamValue("a", new SemilatticeValue(SemilatticeValueEnum.CONST, "14")), new SemilatticeStreamValue("b", new SemilatticeValue(SemilatticeValueEnum.CONST, "13")), new SemilatticeStreamValue("c", new SemilatticeValue(SemilatticeValueEnum.UNDEF)) }; dataStreamValue2 = new DataStreamValue(set2); dataStreamValue3 = dataStreamValue1 ^ dataStreamValue2; table3 = DataStreamValue.CreateTableByStream(dataStreamValue3.Stream); Debug.Assert(table3["a"] == new SemilatticeValue(SemilatticeValueEnum.NAC)); Debug.Assert(table3["b"] == new SemilatticeValue(SemilatticeValueEnum.CONST, "13")); Debug.Assert(table3["c"] == new SemilatticeValue(SemilatticeValueEnum.CONST, "14")); }
static public void TestForOperator() { var constDistribOperator = new ConstDistribOperator(); var set1 = new HashSet <SemilatticeStreamValue>() { new SemilatticeStreamValue("a", new SemilatticeValue(SemilatticeValueEnum.CONST, "12")), new SemilatticeStreamValue("b", new SemilatticeValue(SemilatticeValueEnum.CONST, "13")), new SemilatticeStreamValue("c", new SemilatticeValue(SemilatticeValueEnum.CONST, "14")) }; var set2 = new HashSet <SemilatticeStreamValue>() { new SemilatticeStreamValue("a", new SemilatticeValue(SemilatticeValueEnum.CONST, "14")), new SemilatticeStreamValue("b", new SemilatticeValue(SemilatticeValueEnum.CONST, "13")), new SemilatticeStreamValue("c", new SemilatticeValue(SemilatticeValueEnum.UNDEF)) }; var set3 = constDistribOperator.Collect(set1, set2); var table3 = DataStreamValue.CreateTableByStream(set3); Debug.Assert(table3["a"] == new SemilatticeValue(SemilatticeValueEnum.NAC)); Debug.Assert(table3["b"] == new SemilatticeValue(SemilatticeValueEnum.CONST, "13")); Debug.Assert(table3["c"] == new SemilatticeValue(SemilatticeValueEnum.CONST, "14")); }