/*
Copyright (c) by respective owners including Yahoo!, Microsoft, and
individual contributors. All rights reserved. Released under a BSD (revised)
license as described in the file LICENSE.
*/
#pragma once
#include "vw_example.h"
namespace VW
{
ref class VowpalWabbitExample;
///
/// Interface for label comparators.
///
public interface class IVowpalWabbitLabelComparator
{
public:
///
/// Compares labels of and .
///
/// Returns null if labels are equivalent, otherwise returns the difference description.
String^ Diff(VowpalWabbitExample^ ex1, VowpalWabbitExample^ ex2);
};
///
/// A label comparer for simple labels.
///
public ref class VowpalWabbitSimpleLabelComparator sealed : IVowpalWabbitLabelComparator
{
public:
///
/// Compares labels of and .
///
/// Returns null if labels are equivalent, otherwise returns the difference description.
virtual String^ Diff(VowpalWabbitExample^ ex1, VowpalWabbitExample^ ex2) sealed;
};
///
/// A label comparer for contextual bandit label.
///
public ref class VowpalWabbitContextualBanditLabelComparator sealed : IVowpalWabbitLabelComparator
{
public:
///
/// Compares labels of and .
///
/// Returns null if labels are equivalent, otherwise returns the difference description.
virtual String^ Diff(VowpalWabbitExample^ ex1, VowpalWabbitExample^ ex2) sealed;
};
///
/// Label comparator factory.
///
public ref class VowpalWabbitLabelComparator sealed abstract
{
public:
///
/// Simple label comparator.
///
static initonly IVowpalWabbitLabelComparator^ Simple = gcnew VowpalWabbitSimpleLabelComparator;
///
/// Contextual bandit label comparator.
///
static initonly IVowpalWabbitLabelComparator^ ContextualBandit = gcnew VowpalWabbitContextualBanditLabelComparator;
};
}