public void TestSerializeCLAClassifier() { CLAClassifier classifier = new CLAClassifier(new int[] { 1 }, 0.1, 0.1, 0); int recordNum = 0; Map <String, Object> classification = new Map <string, object>(); classification.Add("bucketIdx", 4); classification.Add("actValue", 34.7); Classification <double> result = classifier.Compute <double>(recordNum, classification, new int[] { 1, 5, 9 }, true, true); recordNum += 1; classification.Add("bucketIdx", 5); classification.Add("actValue", 41.7); result = classifier.Compute <double>(recordNum, classification, new int[] { 0, 6, 9, 11 }, true, true); recordNum += 1; classification.Add("bucketIdx", 5); classification.Add("actValue", 44.9); result = classifier.Compute <double>(recordNum, classification, new int[] { 6, 9 }, true, true); recordNum += 1; classification.Add("bucketIdx", 4); classification.Add("actValue", 42.9); result = classifier.Compute <double>(recordNum, classification, new int[] { 1, 5, 9 }, true, true); recordNum += 1; // Serialize the Metrics too just to be sure everything can be serialized SerialConfig config = new SerialConfig("testSerializeCLAClassifier", SerialConfig.SERIAL_TEST_DIR); IPersistenceAPI api = Persistence.Get(config); api.Write(classifier); // Deserialize the Metrics CLAClassifier serializedClassifier = api.Read <CLAClassifier>(); Assert.IsNotNull(serializedClassifier); //Using the deserialized classifier, continue test classification.Add("bucketIdx", 4); classification.Add("actValue", 34.7); result = serializedClassifier.Compute <double>(recordNum, classification, new int[] { 1, 5, 9 }, true, true); recordNum += 1; Assert.IsTrue(Arrays.AreEqual(new int[] { 1 }, result.StepSet())); Assert.AreEqual(35.520000457763672, result.GetActualValue(4), 0.00001); Assert.AreEqual(42.020000457763672, result.GetActualValue(5), 0.00001); Assert.AreEqual(6, result.GetStatCount(1)); Assert.AreEqual(0.0, result.GetStat(1, 0), 0.00001); Assert.AreEqual(0.0, result.GetStat(1, 1), 0.00001); Assert.AreEqual(0.0, result.GetStat(1, 2), 0.00001); Assert.AreEqual(0.0, result.GetStat(1, 3), 0.00001); Assert.AreEqual(0.12300123, result.GetStat(1, 4), 0.00001); Assert.AreEqual(0.87699877, result.GetStat(1, 5), 0.00001); }
public void TestSerialization() { _classifier = new CLAClassifier(new[] { 1 }, 0.1, 0.1, 0); int recordNum = 0; Map <string, object> classification = new Map <string, object>(); classification.Add("bucketIdx", 4); classification.Add("actValue", 34.7); Classification <double> result = _classifier.Compute <double>(recordNum, classification, new[] { 1, 5, 9 }, true, true); recordNum += 1; classification.Add("bucketIdx", 5); classification.Add("actValue", 41.7); result = _classifier.Compute <double>(recordNum, classification, new[] { 0, 6, 9, 11 }, true, true); recordNum += 1; classification.Add("bucketIdx", 5); classification.Add("actValue", 44.9); result = _classifier.Compute <double>(recordNum, classification, new[] { 6, 9 }, true, true); recordNum += 1; classification.Add("bucketIdx", 4); classification.Add("actValue", 42.9); result = _classifier.Compute <double>(recordNum, classification, new[] { 1, 5, 9 }, true, true); recordNum += 1; // Configure serializer SerialConfig config = new SerialConfig("testSerializerClassifier", SerialConfig.SERIAL_TEST_DIR); IPersistenceAPI api = Persistence.Get(config); // 1. Serialize byte[] data = api.Write(_classifier, "testSerializeClassifier"); // 2. Deserialize CLAClassifier serialized = api.Read <CLAClassifier>(data); // Using the deserialized classifier, continue test classification.Add("bucketIdx", 4); classification.Add("actValue", 34.7); result = serialized.Compute <double>(recordNum, classification, new[] { 1, 5, 9 }, true, true); recordNum += 1; Assert.IsTrue(Arrays.AreEqual(new[] { 1 }, result.StepSet())); Assert.AreEqual(35.520000457763672, result.GetActualValue(4), 0.00001); Assert.AreEqual(42.020000457763672, result.GetActualValue(5), 0.00001); Assert.AreEqual(6, result.GetStatCount(1)); Assert.AreEqual(0.0, result.GetStat(1, 0), 0.00001); Assert.AreEqual(0.0, result.GetStat(1, 1), 0.00001); Assert.AreEqual(0.0, result.GetStat(1, 2), 0.00001); Assert.AreEqual(0.0, result.GetStat(1, 3), 0.00001); Assert.AreEqual(0.12300123, result.GetStat(1, 4), 0.00001); Assert.AreEqual(0.87699877, result.GetStat(1, 5), 0.00001); }
public void TestComputeComplex() { _classifier = new CLAClassifier(new[] { 1 }, 0.1, 0.1, 0); int recordNum = 0; Map <string, object> classification = new Map <string, object>(); classification.Add("bucketIdx", 4); classification.Add("actValue", 34.7); Classification <double> result = _classifier.Compute <double>(recordNum, classification, new[] { 1, 5, 9 }, true, true); recordNum += 1; classification.Add("bucketIdx", 5); classification.Add("actValue", 41.7); result = _classifier.Compute <double>(recordNum, classification, new[] { 0, 6, 9, 11 }, true, true); recordNum += 1; classification.Add("bucketIdx", 5); classification.Add("actValue", 44.9); result = _classifier.Compute <double>(recordNum, classification, new[] { 6, 9 }, true, true); recordNum += 1; classification.Add("bucketIdx", 4); classification.Add("actValue", 42.9); result = _classifier.Compute <double>(recordNum, classification, new[] { 1, 5, 9 }, true, true); recordNum += 1; classification.Add("bucketIdx", 4); classification.Add("actValue", 34.7); result = _classifier.Compute <double>(recordNum, classification, new[] { 1, 5, 9 }, true, true); recordNum += 1; Assert.IsTrue(Arrays.AreEqual(new[] { 1 }, result.StepSet())); Assert.AreEqual(35.520000457763672, result.GetActualValue(4), 0.00001); Assert.AreEqual(42.020000457763672, result.GetActualValue(5), 0.00001); Assert.AreEqual(6, result.GetStatCount(1)); Assert.AreEqual(0.0, result.GetStat(1, 0), 0.00001); Assert.AreEqual(0.0, result.GetStat(1, 1), 0.00001); Assert.AreEqual(0.0, result.GetStat(1, 2), 0.00001); Assert.AreEqual(0.0, result.GetStat(1, 3), 0.00001); Assert.AreEqual(0.12300123, result.GetStat(1, 4), 0.00001); Assert.AreEqual(0.87699877, result.GetStat(1, 5), 0.00001); }