EightBitNet/EightBit/EightBit.UnitTest/ChipUnitTest.cs
Adrian Conlon 853b6e2b08 Correct some straightforward analysis issues.
Signed-off-by: Adrian Conlon <Adrian.conlon@gmail.com>
2019-07-01 00:15:25 +01:00

196 lines
4.9 KiB
C#

// <copyright file="ChipUnitTest.cs" company="Adrian Conlon">
// Copyright (c) Adrian Conlon. All rights reserved.
// </copyright>
namespace EightBit
{
using Microsoft.VisualStudio.TestTools.UnitTesting;
[TestClass]
public class ChipUnitTest
{
[TestMethod]
public void TestLowByte()
{
const ushort input = 0xf00f;
var low = Chip.LowByte(input);
Assert.AreEqual(0xf, low);
}
[TestMethod]
public void TestHighByte()
{
const ushort input = 0xf00f;
var high = Chip.HighByte(input);
Assert.AreEqual(0xf0, high);
}
[TestMethod]
public void TestClearBit()
{
byte flags = 0xff;
flags = Chip.ClearBit(flags, 0x80);
Assert.AreEqual(0x7f, flags);
}
[TestMethod]
public void TestClearBitNonZero()
{
byte flags = 0xff;
flags = Chip.ClearBit(flags, 0x80, 1);
Assert.AreEqual(0x7f, flags);
}
[TestMethod]
public void TestClearBitZero()
{
byte flags = 0xff;
flags = Chip.ClearBit(flags, 0x80, 0);
Assert.AreEqual(0xff, flags);
}
[TestMethod]
public void TestClearBitFalse()
{
byte flags = 0xff;
flags = Chip.ClearBit(flags, 0x80, false);
Assert.AreEqual(0xff, flags);
}
[TestMethod]
public void TestClearBitTrue()
{
byte flags = 0xff;
flags = Chip.ClearBit(flags, 0x80, true);
Assert.AreEqual(0x7f, flags);
}
[TestMethod]
public void TestSetBit()
{
byte flags = 0x7f;
flags = Chip.SetBit(flags, 0x80);
Assert.AreEqual(0xff, flags);
}
[TestMethod]
public void TestSetBitNonZero()
{
byte flags = 0x7f;
flags = Chip.SetBit(flags, 0x80, 1);
Assert.AreEqual(0xff, flags);
}
[TestMethod]
public void TestSetBitZero()
{
byte flags = 0x7f;
flags = Chip.SetBit(flags, 0x80, 0);
Assert.AreEqual(0x7f, flags);
}
[TestMethod]
public void TestSetBitFalse()
{
byte flags = 0x7f;
flags = Chip.SetBit(flags, 0x80, false);
Assert.AreEqual(0x7f, flags);
}
[TestMethod]
public void TestSetBitTrue()
{
byte flags = 0x7f;
flags = Chip.SetBit(flags, 0x80, true);
Assert.AreEqual(0xff, flags);
}
[TestMethod]
public void TestLowerPart()
{
const ushort input = 0xf00f;
ushort lower = Chip.LowerPart(input);
Assert.AreEqual(0xf, lower);
}
[TestMethod]
public void TestHigherPart()
{
const ushort input = 0xf00f;
var higher = Chip.HigherPart(input);
Assert.AreEqual(0xf000, higher);
}
[TestMethod]
public void TestDemoteByte()
{
const ushort input = 0xf00f;
var demoted = Chip.DemoteByte(input);
Assert.AreEqual(0xf0, demoted);
}
[TestMethod]
public void TestPromoteByte()
{
const byte input = 0xf0;
var promoted = Chip.PromoteByte(input);
Assert.AreEqual(0xf000, promoted);
}
[TestMethod]
public void TestLowNibble()
{
const byte input = 0xab;
var nibble = Chip.LowNibble(input);
Assert.AreEqual(0xb, nibble);
}
[TestMethod]
public void TestHighNibble()
{
const byte input = 0xab;
var nibble = Chip.HighNibble(input);
Assert.AreEqual(0xa, nibble);
}
[TestMethod]
public void TestDemoteNibble()
{
const byte input = 0xab;
var nibble = Chip.DemoteNibble(input);
Assert.AreEqual(0xa, nibble);
}
[TestMethod]
public void TestPromoteNibble()
{
const byte input = 0xab;
var nibble = Chip.PromoteNibble(input);
Assert.AreEqual(0xb0, nibble);
}
[TestMethod]
public void TestHigherNibble()
{
const byte input = 0xab;
var nibble = Chip.HigherNibble(input);
Assert.AreEqual(0xa0, nibble);
}
[TestMethod]
public void TestLowerNibble()
{
const byte input = 0xab;
var nibble = Chip.LowerNibble(input);
Assert.AreEqual(0xb, nibble);
}
[TestMethod]
public void TestMakeWord()
{
var word = Chip.MakeWord(0xcd, 0xab);
Assert.AreEqual(0xabcd, word);
}
}
}