# EvalExpectedToolCall

> Tracon documentation. Tracon is a .NET package family that adds a control
> plane on Microsoft Agent Framework, published as NuGet packages that run
> inside your own ASP.NET Core application.
>
> Page: https://tracon.dev/api/tracon.evalexpectedtoolcall/
> Summary: EvalExpectedToolCall: A tool call an EvalCase expects the agent to make.

<div class="api-provenance">Namespace Tracon · Assembly <code>Tracon.Abstractions.dll</code></div>

A tool call an [EvalCase](/api/tracon.evalcase/) expects the agent to make.

```csharp
public sealed record EvalExpectedToolCall : IEquatable<EvalExpectedToolCall>
```

<dl class="api-relations"><dt>Inheritance</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.object">object</a> ← <a href="/api/tracon.evalexpectedtoolcall/">EvalExpectedToolCall</a></dd><dt>Implements</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.iequatable-1">IEquatable&lt;EvalExpectedToolCall&gt;</a></dd><dt>Inherited Members</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object?, object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object?, object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a></dd></dl>

## Remarks

The `toolCallArgsMatch` check reads it. The case passes that check when,
for every expected call, the run called a tool of that [EvalExpectedToolCall.Name](/api/tracon.evalexpectedtoolcall/#Tracon_EvalExpectedToolCall_Name)
(letter case does not matter) and - when [EvalExpectedToolCall.Arguments](/api/tracon.evalexpectedtoolcall/#Tracon_EvalExpectedToolCall_Arguments) is given -
one such call carried every listed argument with an equal value.

## Constructors

### <a id="Tracon_EvalExpectedToolCall__ctor"></a> EvalExpectedToolCall\(\)

```csharp
public EvalExpectedToolCall()
```

## Properties

### <a id="Tracon_EvalExpectedToolCall_Arguments"></a> Arguments

The arguments the call must carry, or [null](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null) to check only
that the tool was called.

```csharp
public IReadOnlyDictionary<string, JsonElement>? Arguments { get; init; }
```

#### Property Value

 [IReadOnlyDictionary](https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlydictionary\-2)<[string](https://learn.microsoft.com/dotnet/api/system.string), [JsonElement](https://learn.microsoft.com/dotnet/api/system.text.json.jsonelement)\>?

#### Remarks

The listed arguments are a subset: the call may carry others. An argument
name matches without regard to letter case. A value matches by its JSON
meaning: `2` equals `2.0`, an object equals an object with the
same properties in any order, and white space between tokens does not
matter. A nested object or array matches exactly - the subset rule applies
to the top-level argument names only.

A `null` value expects the argument to be absent or `null`: the
check does not see a `null` argument a model sent.

### <a id="Tracon_EvalExpectedToolCall_Name"></a> Name

The tool name. Compared without regard to letter case.

```csharp
public required string Name { get; init; }
```

#### Property Value

 [string](https://learn.microsoft.com/dotnet/api/system.string)

## Methods

### <a id="Tracon_EvalExpectedToolCall_Equals_System_Object_"></a> Equals\(object?\)

```csharp
public override bool Equals(object? obj)
```

#### Parameters

`obj` [object](https://learn.microsoft.com/dotnet/api/system.object)?

#### Returns

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### <a id="Tracon_EvalExpectedToolCall_Equals_Tracon_EvalExpectedToolCall_"></a> Equals\(EvalExpectedToolCall?\)

```csharp
public bool Equals(EvalExpectedToolCall? other)
```

#### Parameters

`other` [EvalExpectedToolCall](/api/tracon.evalexpectedtoolcall/)?

#### Returns

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### <a id="Tracon_EvalExpectedToolCall_GetHashCode"></a> GetHashCode\(\)

```csharp
public override int GetHashCode()
```

#### Returns

 [int](https://learn.microsoft.com/dotnet/api/system.int32)

### <a id="Tracon_EvalExpectedToolCall_ToString"></a> ToString\(\)

```csharp
public override string ToString()
```

#### Returns

 [string](https://learn.microsoft.com/dotnet/api/system.string)

## Operators

### <a id="Tracon_EvalExpectedToolCall_op_Equality_Tracon_EvalExpectedToolCall_Tracon_EvalExpectedToolCall_"></a> operator ==\(EvalExpectedToolCall?, EvalExpectedToolCall?\)

```csharp
public static bool operator ==(EvalExpectedToolCall? left, EvalExpectedToolCall? right)
```

#### Parameters

`left` [EvalExpectedToolCall](/api/tracon.evalexpectedtoolcall/)?

`right` [EvalExpectedToolCall](/api/tracon.evalexpectedtoolcall/)?

#### Returns

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### <a id="Tracon_EvalExpectedToolCall_op_Inequality_Tracon_EvalExpectedToolCall_Tracon_EvalExpectedToolCall_"></a> operator \!=\(EvalExpectedToolCall?, EvalExpectedToolCall?\)

```csharp
public static bool operator !=(EvalExpectedToolCall? left, EvalExpectedToolCall? right)
```

#### Parameters

`left` [EvalExpectedToolCall](/api/tracon.evalexpectedtoolcall/)?

`right` [EvalExpectedToolCall](/api/tracon.evalexpectedtoolcall/)?

#### Returns

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)
