private SpssVariable CreateSpssVariable(String datatype, String name, String label, int columnWidth)
        {
            SpssVariable v = null;

            switch (datatype.ToLower())
            {
            case "string":
                v             = new SpssStringVariable();
                v.ColumnWidth = columnWidth;
                break;

            case "numeric":
                v             = new SpssNumericVariable();
                v.ColumnWidth = columnWidth;
                break;

            case "date":
                //v = new SpssStringVariable();
                v = new SpssDateVariable();
                break;

            default:
                v = new SpssNumericVariable();
                break;
            }
            if (name.EndsWith("hv") && datatype != "String")
            {
                v             = new SpssStringVariable();
                v.ColumnWidth = 255;
            }
            v.Name  = name;
            v.Label = label;
            return(v);
        }
Exemple #2
0
        public static void CreateMetaData(SpssDataDocument doc)
        {
            // Define dictionary
            SpssStringVariable v1 = new SpssStringVariable();

            v1.Name  = "v1";
            v1.Label = "What is your name?";
            doc.Variables.Add(v1);
            SpssNumericVariable v2 = new SpssNumericVariable();

            v2.Name  = "v2";
            v2.Label = "How old are you?";
            doc.Variables.Add(v2);
            SpssNumericVariable v3 = new SpssNumericVariable();

            v3.Name  = "v3";
            v3.Label = "What is your gender?";
            v3.ValueLabels.Add(1, "Male");
            v3.ValueLabels.Add(2, "Female");
            doc.Variables.Add(v3);
            SpssDateVariable v4 = new SpssDateVariable();

            v4.Name  = "v4";
            v4.Label = "What is your birthdate?";
            doc.Variables.Add(v4);
            // Add some data
            doc.CommitDictionary();
        }
Exemple #3
0
        public void AddVariableToNewFile()
        {
            SpssVariable var = new SpssStringVariable();

            var.Name = "var1";
            this.docWrite.Variables.Add(var);
            Assert.Single(this.docWrite.Variables);
        }
Exemple #4
0
        public void AddVariableToNewFile()
        {
            SpssVariable var = new SpssStringVariable();

            var.Name = "var1";
            docWrite.Variables.Add(var);
            Assert.Equal(1, docWrite.Variables.Count);
        }
Exemple #5
0
 public void GetLongStringValueLabels()
 {
     using (SpssDataDocument docRead = SpssDataDocument.Open(TestBase.GoodFilename, SpssFileAccess.Read))
     {
         SpssStringVariable var = (SpssStringVariable)docRead.Variables["longStr"];
         // long strings can never have value labels
         Assert.Equal(0, var.ValueLabels.Count);
     }
 }
Exemple #6
0
        public void VarLabelNeverNull()
        {
            SpssVariable var = new SpssStringVariable();

            Assert.NotNull(var.Label);
            var.Label = null;
            Assert.NotNull(var.Label);
            Assert.Equal(string.Empty, var.Label);
        }
Exemple #7
0
 public void SetStringTooLong()
 {
     using (SpssDataDocument docAppend = SpssDataDocument.Open(TestBase.AppendFilename, SpssFileAccess.Append))
     {
         SpssStringVariable var = (SpssStringVariable)docAppend.Variables["charLabels"];
         Debug.Assert(var.Length == 8);
         SpssCase row = docAppend.Cases.New();
         Assert.Throws <ArgumentOutOfRangeException>(() => row["charLabels"] = new string('a', var.Length + 1));
     }
 }
Exemple #8
0
        public void SetStringValueLabels()
        {
            SpssStringVariable var = new SpssStringVariable();

            var.ValueLabels.Add("h", "hello");
            var.ValueLabels.Add("H", "hi");
            var.ValueLabels.Add("b", "bye");
            Assert.Equal("hello", var.ValueLabels["h"]);
            Assert.Equal("hi", var.ValueLabels["H"]);
            Assert.Equal(3, var.ValueLabels.Count);
        }
Exemple #9
0
        public void AddVarWithSameName()
        {
            SpssVariable var1 = new SpssStringVariable();

            var1.Name = "var1";
            this.docWrite.Variables.Add(var1);

            SpssVariable var2 = new SpssStringVariable();

            var2.Name = "Var1";
            Assert.Throws <SpssVariableNameConflictException>(() => this.docWrite.Variables.Add(var2));
        }
Exemple #10
0
        public void AddVariableAfterCommit()
        {
            try
            {
                this.CommitVariableToNewFile();
            }
            catch (Exception)
            {
                Skip.If(true, "AddVariableToNewFileAndCommit() failed.");
            }
            SpssVariable var = new SpssStringVariable();

            var.Name = "anothervar";
            Assert.Throws <InvalidOperationException>(() => this.docWrite.Variables.Add(var));
        }
Exemple #11
0
        public static void ReadSpssFile()
        {
            using (var doc = SpssDataDocument.Open("t.sav", SpssFileAccess.Append)) {
                SpssNumericVariable accuracy = new SpssNumericVariable {
                    Name             = $"Accuracy",
                    Label            = $"Distance in pixels from target",
                    MeasurementLevel = MeasurementLevelCode.SPSS_MLVL_RAT
                };
                doc.Variables.Add(accuracy);

                SpssStringVariable var = (SpssStringVariable)doc.Variables["someLabel"];

                SpssCase row = doc.Cases.New();
                row[$"Accuracy"] = new string('a', var.Length + 1);
            }
        }
Exemple #12
0
        public void RenameVarToConflictingName()
        {
            SpssVariable var1 = new SpssStringVariable();

            var1.Name = "var1";
            this.docWrite.Variables.Add(var1);

            SpssVariable var2 = new SpssStringVariable();

            var2.Name = "var2";
            this.docWrite.Variables.Add(var2);

            // Now rename one variable to match the name of the other.
            // Capitalization differences should still cause an exception.
            Assert.Throws <SpssVariableNameConflictException>(() => var2.Name = "Var1");
        }
 public void AddVariableToNewFile()
 {
     SpssVariable var = new SpssStringVariable();
     var.Name = "var1";
     docWrite.Variables.Add(var);
     Assert.Equal(1, docWrite.Variables.Count);
 }
Exemple #14
0
        public void VarLabelTooLong()
        {
            SpssVariable var = new SpssStringVariable();

            Assert.Throws <ArgumentOutOfRangeException>(() => var.Label = new string('a', SpssSafeWrapper.SPSS_MAX_VARLABEL + 1));
        }
Exemple #15
0
        public void VarNameToNull()
        {
            SpssVariable var = new SpssStringVariable();

            Assert.Throws <ArgumentNullException>(() => var.Name = null);
        }
Exemple #16
0
        public void NewStringVariable()
        {
            SpssStringVariable var = new SpssStringVariable();

            var.Name = "new string";
        }
        public void RenameVarToConflictingName()
        {
            SpssVariable var1 = new SpssStringVariable();
            var1.Name = "var1";
            docWrite.Variables.Add(var1);

            SpssVariable var2 = new SpssStringVariable();
            var2.Name = "var2";
            docWrite.Variables.Add(var2);

            // Now rename one variable to match the name of the other.
            // Capitalization differences should still cause an exception.
            Assert.Throws<SpssVariableNameConflictException>(() => var2.Name = "Var1");
        }
        public void AddVarWithSameName()
        {
            SpssVariable var1 = new SpssStringVariable();
            var1.Name = "var1";
            docWrite.Variables.Add(var1);

            SpssVariable var2 = new SpssStringVariable();
            var2.Name = "Var1";
            Assert.Throws<SpssVariableNameConflictException>(() => docWrite.Variables.Add(var2));
        }
 public void AddVariableAfterCommit()
 {
     try
     {
         CommitVariableToNewFile();
     }
     catch (Exception)
     {
         Skip.If(true, "AddVariableToNewFileAndCommit() failed.");
     }
     SpssVariable var = new SpssStringVariable();
     var.Name = "anothervar";
     Assert.Throws<InvalidOperationException>(() => docWrite.Variables.Add(var));
 }
Exemple #20
0
        public static void CreateMetaData(SpssDataDocument doc, SpssFormat format = SpssFormat.Long)
        {
            SpssNumericVariable vID = new SpssNumericVariable();

            vID.Name             = "UserID";
            vID.Label            = "The user's ID";
            vID.MeasurementLevel = MeasurementLevelCode.SPSS_MLVL_RAT;
            doc.Variables.Add(vID);


            if (format == SpssFormat.Long)
            {
                SpssNumericVariable attemptNumber = new SpssNumericVariable();
                attemptNumber.Name             = $"AttemptNumber";
                attemptNumber.Label            = $"The continuous number of this attempt";
                attemptNumber.MeasurementLevel = MeasurementLevelCode.SPSS_MLVL_RAT;
                doc.Variables.Add(attemptNumber);

                SpssNumericVariable time = new SpssNumericVariable();
                time.Name             = $"Efficiency";
                time.Label            = $"Time taken in seconds for the attempt";
                time.MeasurementLevel = MeasurementLevelCode.SPSS_MLVL_RAT;
                doc.Variables.Add(time);

                SpssStringVariable hit = new SpssStringVariable();
                hit.Name  = $"Effectiveness";
                hit.Label = $"Whether the user hit the target or not";
                hit.ValueLabels.Add("Miss", "Miss");
                hit.ValueLabels.Add("Hit", "Hit");
                hit.MeasurementLevel = MeasurementLevelCode.SPSS_MLVL_NOM;
                doc.Variables.Add(hit);

                SpssNumericVariable accuracy = new SpssNumericVariable();
                accuracy.Name             = $"Accuracy";
                accuracy.Label            = $"Distance in pixels from target";
                accuracy.MeasurementLevel = MeasurementLevelCode.SPSS_MLVL_RAT;
                doc.Variables.Add(accuracy);

                SpssStringVariable gridSize = new SpssStringVariable();
                gridSize.Name  = $"TargetSize";
                gridSize.Label = $"Target (grid) size for attempt";
                gridSize.ValueLabels.Add("Small", "Small");
                gridSize.ValueLabels.Add("Large", "Large");
                gridSize.MeasurementLevel = MeasurementLevelCode.SPSS_MLVL_NOM;
                doc.Variables.Add(gridSize);

                SpssStringVariable direction = new SpssStringVariable();
                direction.Name  = $"Direction";
                direction.Label = $"Direction for attempt";
                direction.ValueLabels.Add("Push", "Push");
                direction.ValueLabels.Add("Pull", "Pull");
                direction.MeasurementLevel = MeasurementLevelCode.SPSS_MLVL_NOM;
                doc.Variables.Add(direction);


                SpssStringVariable technique = new SpssStringVariable();
                technique.Name  = $"Technique";
                technique.Label = $"The technique used for the attempt";
                technique.ValueLabels.Add("Pinch", "Pinch");
                technique.ValueLabels.Add("Swipe", "Swipe");
                technique.ValueLabels.Add("Throw", "Throw");
                technique.ValueLabels.Add("Tilt", "Tilt");
                technique.MeasurementLevel = MeasurementLevelCode.SPSS_MLVL_NOM;
                doc.Variables.Add(technique);

                SpssStringVariable experiment = new SpssStringVariable();
                experiment.Name  = $"Experiment";
                experiment.Label = $"The experiment in which the attempt was conducted in";
                // Target, Field, Old, Accuracy
                experiment.ValueLabels.Add("Target", "Target");
                experiment.ValueLabels.Add("Field", "Field");
                experiment.ValueLabels.Add("Old", "Old");
                experiment.ValueLabels.Add("Accuracy", "Accuracy");
                experiment.MeasurementLevel = MeasurementLevelCode.SPSS_MLVL_NOM;
                doc.Variables.Add(experiment);
            }

            doc.CommitDictionary();
        }